Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Aug 2018 19:05:32 +0200
From:      Stefan Esser <se@freebsd.org>
To:        Patrick Kelsey <pkelsey@FreeBSD.org>
Cc:        "svn-src-head@freebsd.org" <svn-src-head@FreeBSD.org>
Subject:   Re: svn commit: r338253 - head/sbin/pfctl
Message-ID:  <24fcddc1-5570-943b-c3d4-b712e3ca64e3@freebsd.org>
In-Reply-To: <201808231610.w7NGASxr000790@repo.freebsd.org>
References:  <201808231610.w7NGASxr000790@repo.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 23.08.18 um 18:10 schrieb Patrick Kelsey:
> Author: pkelsey
> Date: Thu Aug 23 16:10:28 2018
> New Revision: 338253
> URL: https://svnweb.freebsd.org/changeset/base/338253
> 
> Log:
>   Extend tbrsize heuristic in pfctl(8) to provide a sensible value for
>   higher bandwidth interfaces.  The new value is used above 2.5 Gbps,
>   which is the highest standard rate that could be used prior to
>   r338209, so the default behavior for all existing systems should
>   remain the same.
>   
>   The value of 128 chosen is a balance between being big enough to
>   reduce potential precision/quantization effects stemming from frequent
>   bucket refills over small time intervals and being small enough to
>   prevent a greedy driver from burst dequeuing more packets than it has
>   available hardware ring slots for whenever altq transitions from idle
>   to backlogged.
>   
>   Reviewed by:	jmallett, kp
>   MFC after:	2 weeks
>   Sponsored by:	RG Nets
>   Differential Revision: https://reviews.freebsd.org/D16852
> 
> Modified:
>   head/sbin/pfctl/pfctl_altq.c
> 
> Modified: head/sbin/pfctl/pfctl_altq.c
> ==============================================================================
> --- head/sbin/pfctl/pfctl_altq.c	Thu Aug 23 15:01:27 2018	(r338252)
> +++ head/sbin/pfctl/pfctl_altq.c	Thu Aug 23 16:10:28 2018	(r338253)
> @@ -299,8 +299,10 @@ eval_pfaltq(struct pfctl *pf, struct pf_altq *pa, stru
>  			size = 4;
>  		else if (rate <= 200 * 1000 * 1000)
>  			size = 8;
> -		else
> +		else if (rate <= 2500 * 1000 * 1000)
>  			size = 24;
> +		else
> +			size = 128;
>  		size = size * getifmtu(pa->ifname);
>  		pa->tbrsize = size;
>  	}
> 

This breaks the build on my amd64 box:

/usr/svn/base/head/sbin/pfctl/pfctl_altq.c:302:32: error: overflow in
expression; result is -1794967296 with type 'int' [-Werror,-Winteger-overflow]
                else if (rate <= 2500 * 1000 * 1000)
                                             ^

While "rate" is unsigned long, the expression being calculated is not ...

Regards, STefan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?24fcddc1-5570-943b-c3d4-b712e3ca64e3>