mbuf revision, testers/comments wanted.
Fabian Keil
freebsd-listen at fabiankeil.de
Fri Feb 6 08:52:56 PST 2009
Jeff Roberson <jroberson at jroberson.net> wrote:
> On Sun, 1 Feb 2009, Fabian Keil wrote:
>
> > Fabian Keil <freebsd-listen at fabiankeil.de> wrote:
> >
> >> Jeff Roberson <jroberson at jroberson.net> wrote:
> >>
> >>> http://people.freebsd.org/~jeff/mbuf_ref2.diff
> >>
> >>> I have been experimenting with different revisions to the mbuf api to
> >>> improve performance and simplify code. This patch is the first of
> >>> several proposed steps towards those goals. The aim of this patch is
> >>> two fold;
> >>
> >>> I would appreciate testing feedback from varied workloads to make
> >>> sure there are no bugs before I go forward with this. I have tested
> >>> only host oriented networking with a few drivers. It is not
> >>> anticipated that there will be any significant incompatibilities
> >>> introduced with this round but there is always that possibility.
> >
> >> 5)
> >> Finally, I tested the patch on an IBM ThinPad R51. The kernel
> >> hangs on boot, the last messages are (hand transcribed):
> >>
> >> iwi0: <Intel(R) PRO/Wireless 2200BG> mem 0xc0214000-0xc0214fff irq 11
> >> at device 2.0 on pci2 iwi0: Reserved 0x1000 bytes for rid 0x10 type 3
> >> at 0xc0214000 iwi0: could not allocate rx mbuf
> >> iwi0: could not allocate Rx ring
> >> bpfdetach: was not attached
> >
> > Never mind, kernel and user land weren't completely in
> > sync and this might be related to the recent wlan commits.
> > I'll retry with an up-to-date user land.
> >
>
> I have updated the patch here:
>
> http://people.freebsd.org/~jeff/mbuf_ref2.diff
Building world failed for me with:
cc -O2 -pipe -Wall -Wmissing-prototypes -Wno-uninitialized -Wstrict-prototypes -I/usr/src/sbin/pfctl/../../contrib/pf/pfctl -DE
k-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c /usr/src/sbin/pfctl/../../sys
f_ruleset.c
In file included from /usr/src/sbin/pfctl/../../sys/contrib/pf/net/pf_ruleset.c:48:
/usr/obj/usr/src/tmp/usr/include/sys/mbuf.h:131: error: expected specifier-qualifier-list before 'uma_zone_t'
*** Error code 1
Stop in /usr/src/sbin/pfctl.
*** Error code 1
Stop in /usr/src/sbin.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
Manually building from /usr/src/sbin worked, though.
After resuming with make buildworld NO_CLEAN=YES,
the next failure was:
===> usr.bin/netstat (all)
cc -O2 -pipe -fno-strict-aliasing -DIPSEC -DSCTP -DINET6 -DNETGRAPH -DIPX -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c /usr/src/usr.bin/netstat/if.c
cc -O2 -pipe -fno-strict-aliasing -DIPSEC -DSCTP -DINET6 -DNETGRAPH -DIPX -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c /usr/src/usr.bin/netstat/inet.c
cc -O2 -pipe -fno-strict-aliasing -DIPSEC -DSCTP -DINET6 -DNETGRAPH -DIPX -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c /usr/src/usr.bin/netstat/main.c
cc -O2 -pipe -fno-strict-aliasing -DIPSEC -DSCTP -DINET6 -DNETGRAPH -DIPX -fstack-protector -Wsystem-headers -Werror -Wall -Wno-format-y2k -W -Wno-unused-parameter -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-uninitialized -Wno-pointer-sign -c /usr/src/usr.bin/netstat/mbuf.c
In file included from /usr/src/usr.bin/netstat/mbuf.c:46:
/usr/obj/usr/src/tmp/usr/include/sys/mbuf.h:131: error: expected specifier-qualifier-list before 'uma_zone_t'
*** Error code 1
Stop in /usr/src/usr.bin/netstat.
*** Error code 1
Stop in /usr/src/usr.bin.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.
Again building from /usr/src/usr.bin worked.
Resuming stopped with yet another similar error
message but afterwards make buildworld NO_CLEAN=YES
finished successfully.
I haven't really investigated the problem yet,
but it might have something to do with my make flags:
fk at TP51 ~ $grep NO_ /etc/make.conf
NO_BLUETOOTH= # do not build Bluetooth related stuff
NO_FORTRAN= # do not build g77 and related libraries
NO_I4B= # do not build isdn4bsd package
NO_INET6= # do not build IPv6 related programs and libraries
NO_IPFILTER= # do not build IP Filter package
NO_KERBEROS= # do not build and install Kerberos 5 (KTH Heimdal)
NO_LPR= # do not build lpr and related programs
NO_MAILWRAPPER= # do not build the mailwrapper(8) MTA selector
#NO_NIS= # do not build NIS support and related programs.
NO_ATM=yes
NO_VINUM=yes
NO_OBJC=yes
NO_SHAREDOCS=yes
NO_PROFILE=yes
NO_PORTDOCS=yes
Commenting out the NO_INET6 line didn't make a difference.
I'm using your patch on an IBM ThinPad R51 since
three days and didn't notice any problems so far.
I also briefly tested it on an AMD64 system but as sound
stopped working I reverted to the old kernel after verifying
that ssh worked. This is a snd_emu10kx(4) problem, though.
Fabian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20090206/a32dca68/signature.pgp
More information about the freebsd-net
mailing list