svn commit: r300949 - head/sys/netpfil/ipfw
Don Lewis
truckman at FreeBSD.org
Sun May 29 07:23:58 UTC 2016
Author: truckman
Date: Sun May 29 07:23:56 2016
New Revision: 300949
URL: https://svnweb.freebsd.org/changeset/base/300949
Log:
Cast some expressions that multiply a long long constant by a
floating point constant to int64_t. This avoids the runtime
conversion of the the other operand in a set of comparisons from
int64_t to floating point and doing the comparisions in floating
point.
Suggested by: lidl
Submitted by: Rasool Al-Saadi <ralsaadi at swin.edu.au>
MFC after: 2 weeks (with r300779)
Modified:
head/sys/netpfil/ipfw/dn_aqm_pie.c
head/sys/netpfil/ipfw/dn_sched_fq_pie.c
Modified: head/sys/netpfil/ipfw/dn_aqm_pie.c
==============================================================================
--- head/sys/netpfil/ipfw/dn_aqm_pie.c Sun May 29 07:14:51 2016 (r300948)
+++ head/sys/netpfil/ipfw/dn_aqm_pie.c Sun May 29 07:23:56 2016 (r300949)
@@ -244,17 +244,17 @@ calculate_drop_prob(void *x)
p *= (PIE_MAX_PROB << 12) / AQM_TIME_1S;
/* auto-tune drop probability */
- if (prob< PIE_MAX_PROB * 0.000001)
+ if (prob < (int64_t)(PIE_MAX_PROB * 0.000001))
p >>= 11 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.00001)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.00001))
p >>= 9 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.0001)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.0001))
p >>= 7 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.001)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.001))
p >>= 5 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.01)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.01))
p >>= 3 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.1)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.1))
p >>= 1 + PIE_FIX_POINT_BITS+12;
else
p >>= PIE_FIX_POINT_BITS+12;
Modified: head/sys/netpfil/ipfw/dn_sched_fq_pie.c
==============================================================================
--- head/sys/netpfil/ipfw/dn_sched_fq_pie.c Sun May 29 07:14:51 2016 (r300948)
+++ head/sys/netpfil/ipfw/dn_sched_fq_pie.c Sun May 29 07:23:56 2016 (r300949)
@@ -407,17 +407,17 @@ fq_calculate_drop_prob(void *x)
p *= (PIE_MAX_PROB << 12) / AQM_TIME_1S;
/* auto-tune drop probability */
- if (prob< PIE_MAX_PROB * 0.000001)
+ if (prob < (int64_t)(PIE_MAX_PROB * 0.000001))
p >>= 11 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.00001)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.00001))
p >>= 9 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.0001)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.0001))
p >>= 7 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.001)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.001))
p >>= 5 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.01)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.01))
p >>= 3 + PIE_FIX_POINT_BITS+12;
- else if (prob < PIE_MAX_PROB * 0.1)
+ else if (prob < (int64_t)(PIE_MAX_PROB * 0.1))
p >>= 1 + PIE_FIX_POINT_BITS+12;
else
p >>= PIE_FIX_POINT_BITS+12;
More information about the svn-src-head
mailing list