Date: Mon, 9 Oct 2006 15:23:43 +0300 (EEST) From: Dmitry Pryanishnikov <dmitry@atlantis.dp.ua> To: "Andrey V. Elsukov" <bu7cher@yandex.ru> Cc: freebsd-ipfw@freebsd.org Subject: Queue size maximum too low [Was: ipfw versions - /usr/src/sbin] Message-ID: <20061009150437.X6632@atlantis.atlantis.dp.ua> In-Reply-To: <45264233.3050406@yandex.ru> References: <200610060938.k969cCiO020772@Maggie.Linux-Consulting.com> <45264233.3050406@yandex.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
Hello!
On Fri, 6 Oct 2006, Andrey V. Elsukov wrote:
>> the 100 need to be changed to 10,000 to allow for a bigger queue according
>> to the customer that wants to use ipfw + dummynet for
>> testing gigE thruput
>
> I think this is not good idea. This limit will be checked later in
> kernel, and if you'll set qsize value greater that 100 - kernel will
> correct this to 50. (if i correctly understood a kernel sources..)
Well, frankly, the following code (as in RELENG_6) annoys me a lot:
src/sys/netinet/ip_dummynet.c:
set_fs_parms(struct dn_flow_set *x, struct dn_flow_set *src)
{
x->flags_fs = src->flags_fs;
x->qsize = src->qsize;
x->plr = src->plr;
x->flow_mask = src->flow_mask;
if (x->flags_fs & DN_QSIZE_IS_BYTES) {
if (x->qsize > 1024*1024)
x->qsize = 1024*1024 ;
} else {
if (x->qsize == 0)
x->qsize = 50 ;
if (x->qsize > 100)
x->qsize = 50 ;
}
So the absolute maximum for the pipe's queue size is either 1Mbyte or 100
packets. If one wants to provide fixed maximum _delay_ by the pipe (e.g., full
pipe gives increasing delays up to, say, 5 sec, before dropping packets),
[s]he should set pipe's queue size in bytes to bw * delay (bw is in
bytes/sec), which gives that with this (artificial IMHO) 1Mbyte queue limit
we can provide max. delay of 5 seconds for bw of 209715.2 bytes/sec (approx.
1.6Mbit/s), which is _way_ too low by today's standards. We've got _a lot_
kernel memory to burn on modern machines. So my question is:
what (except this limit) prevents large queues (> 1 Mbytes) from functioning
correctly? If I just remove this limit, will I hit some other limits in
dummynet code (except overall KVA or UMA zone limit)?
Sincerely, Dmitry
--
Atlantis ISP, System Administrator
e-mail: dmitry@atlantis.dp.ua
nic-hdl: LYNX-RIPE
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20061009150437.X6632>
