Skip site navigation (1)Skip section navigation (2)
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>