Date: Wed, 9 Feb 2011 16:47:09 +0300 From: Sergey Kandaurov <pluknet@gmail.com> To: rihad <rihad@mail.ru> Cc: freebsd-net@freebsd.org Subject: Re: Slow Intel 10GbE CX4 adapter behaviour Message-ID: <AANLkTikb28NjnFu3xf8m%2BeWPOWRtVaXt%2BJQ13K9f_iCV@mail.gmail.com> In-Reply-To: <4D52603D.4070604@mail.ru> References: <4D522657.10500@mail.ru> <4D52603D.4070604@mail.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On 9 February 2011 12:37, rihad <rihad@mail.ru> wrote: > Problem solved, I'm so embarrassed :) The issue on 7.2 mentioned above with > ixgbe (tons of "fragmentation failed" errors) was real. The issue in 8.3-RC3 > was because dummynet wasn't being loaded at all... so no traffic could pass > on it, despite dummynet_load="YES" being set in /boot/loader.conf. So I > turned it on in /etc/rc.conf : dummynet_enable="YES" and loaded it "kldload > dummynet" in order to do without a reboot. Works like a charm so far. Thanks > to all! Looks like loading dummynet.ko via /boot/loader.conf doesn't work because dummynet.ko depends on dummynet.ko but of the different version. There are even more strange things: 1) dummynet.ko declares itself as version 1: /sys/netinet/ipfw/ip_dummynet.c: MODULE_VERSION(dummynet, 1); 2) dummynet.ko compiles into itself the various schedulers: fifo, prio, rr, etc; 3) these schedulers presumably think they are compiled standalone, so they are explicitly and strongly depend on dummynet of version 3 (why?): /sys/netinet/ipfw/dn_sched.h: MODULE_DEPEND(name, dummynet, 3, 3, 3); * That makes loader to error like "dummynet: loading required module 'dummynet'". and, if loading dummynet.ko in loader prompt manually, then "module 'dummynet' exists but with wrong version"] This shall fix the problem: rebuilding only dummynet should be enough. %%% Index: /sys/netinet/ipfw/ip_dummynet.c =================================================================== --- /sys/netinet/ipfw/ip_dummynet.c (revision 218026) +++ /sys/netinet/ipfw/ip_dummynet.c (working copy) @@ -2294,7 +2294,7 @@ #define DN_MODEV_ORD (SI_ORDER_ANY - 128) /* after ipfw */ DECLARE_MODULE(dummynet, dummynet_mod, DN_SI_SUB, DN_MODEV_ORD); MODULE_DEPEND(dummynet, ipfw, 2, 2, 2); -MODULE_VERSION(dummynet, 1); +MODULE_VERSION(dummynet, 3); /* * Starting up. Done in order after dummynet_modevent() has been called. %%% -- wbr, pluknet
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikb28NjnFu3xf8m%2BeWPOWRtVaXt%2BJQ13K9f_iCV>