On Mon, Dec 20, 2010 at 5:46 PM, Mark Kettenis <[email protected]> wrote: >> Date: Mon, 20 Dec 2010 17:29:36 +0100 >> From: Mike Belopuhov <[email protected]> >> >> On Mon, Dec 20, 2010 at 5:11 PM, Mark Kettenis <[email protected]> wrote: >> >> Date: Mon, 20 Dec 2010 16:12:24 +0100 >> >> From: Claudio Jeker <[email protected]> >> >> >> >> With the change in rev. 1.99 of subr_pool() changing the limit >> >> will no longer set the high watermark as well. >> >> This causes i386 to stop forwading packets on very busy systems because >> >> the pool thread is not fast enough to replenish the pool. So reintroduce >> >> the pool_sethiwat() in this particular case as a workaround. >> > >> > Sorry, claudio, but I think you need to fix the driver(s) that have >> > this issue. Even with adjusting the pool limits you may still end up >> > with an empty ring, and the driver should be able to restart itself if >> > mbufs come available again. A potential way to fix this is to start a >> > timeout if you end up with an empty ring because of mbug allocation >> > failures, and attempt to refill the ring when the timout fires. >> > >> >> i think we should restore the behavior to what it was before until >> we'll have drivers fixed. > > Probably; but shouldn't we just revert the subr_pool.c change in that case? >
no, that change is correct in any case :)
