cvs commit: src/sys/netinet ip_dummynet.c

Alfred Perlstein alfred at freebsd.org
Wed Aug 25 03:22:12 PDT 2004


* Pawel Jakub Dawidek <pjd at FreeBSD.org> [040825 02:31] wrote:
> pjd         2004-08-25 09:31:30 UTC
> 
>   FreeBSD src repository
> 
>   Modified files:
>     sys/netinet          ip_dummynet.c 
>   Log:
>   Allocate memory when dumping pipes with M_WAITOK flag.
>   On a system with huge number of pipes, M_NOWAIT failes almost always,
>   because of memory fragmentation.
>   My fix is different than the patch proposed by Pawel Malachowski,
>   because in FreeBSD 5.x we cannot sleep while holding dummynet mutex
>   (in 4.x there is no such lock).
>   My fix is also ugly, but there is no easy way to prepare nice and clean fix.

This is actually OK.  What I would do to make this a bit safer is
to loop, keeping track of the highest count seen, and allocating
size+SLACK amount of entries.

There's no need to abort if the list changes, but you can make the
code adapt to a changing list! :)

-Alfred


More information about the cvs-all mailing list