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>