On 21 Nov 2014, at 11:02, Marko Zec <z...@fer.hr> wrote:

>> I had convinced myself for UDP many years ago that it was ok to
>> remove it.  People have touched the code however so it’s definitively
>> worth re-checking again.
>> 
>> For TCP we clearly cannot do it (yet, and couldn’t back then).   But
>> TCP was the only of the few cases I had left unfixed back then.
>> Can’t remember what the others were (was like 3 or 4 of them;  could
>> also be some of the fixes were indeed committed back then.
> 
> Now that we've found ourselves in this discussion, I'm really
> becoming curious why exactly do we need UMA_ZONE_NOFREE for network
> stack zones at all?   Admittedly, I always thought that the primary
> purpose of UMA_ZONE_NOFREE was to prevent uma_reclaim() from paging out
> _used_ zone pages, but reviewing the uma code reveals that this might
> not be the case, i.e. that NOFREE only prevents _unused_ pages to be
> freed by uma_reclaim().
> 
> Moreover, all uma_zalloc() calls as far as I can see are flagged as
> M_NOWAIT and are followed by checks for allocation failures, so that
> part seems to be covered.
> 
> So, what's really the problem which UMA_ZONE_NOFREE flagging is supposed
> to solve these days? (you claim that we clearly need it for TCP - why)?

Bjoern and I chatted for the last twenty or so minutes about the code, and 
believe that as things stand, it is *not* safe to turn off UMA_ZONE_NOFREE for 
TCP due to a teardown race in TCP that has been known about and discussed for 
several years, but is some work to resolve and that we've not yet found time to 
do so. The XXXRW's in tcp_timer.c are related to this. We're pondering ways to 
fix it but think this is not something that can be rushed.

Robert
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to