cvs commit: src/sys/netinet ip_dummynet.c
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
> 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! :)
More information about the cvs-all