Re: tun(4) in -CURRENT: No buffer space available - race condition patch

From: Marcin Cieslak <saper_at_saper.info>
Date: Mon, 4 Oct 2010 21:23:19 +0000 (UTC)
>> John Baldwin <jhb_at_freebsd.org> wrote:
> On Thursday, September 16, 2010 9:02:23 am Marcin Cieslak wrote:
>> Dnia 15.09.2010 John Baldwin <jhb_at_freebsd.org> napisaƂ/a:
>> > On Monday, September 13, 2010 9:10:01 pm Marcin Cieslak wrote:
>> >> Output queue of tun(4) gets full after some time when sending lots of data.
>> >> I have been observing this on -CURRENT at least since March this year.
>> >> 
>> >> Looks like it's a race condition (same in tun(4) and tap(4)), 
>> >> the following patch seems to address the issue:
>> >
>> > This is a good find.  I actually went through these drivers a bit further and 
>> > have a bit of a larger patch to extend the locking some.  Would you care to 
>> > test it?
>> 
>> Do you think those drivers could be taken out of Giant after this change?
>> I think that networking code path (via if_start etc.) is not using Giant
>> at all, only cdevsw routines are. Am I right?
>
> Oh, yes.  I've updated the patch to remove D_NEEDGIANT.

I just want to report back that may tun(4) tunnel has been rock-solid since
I applied the patch. Didn't have a chance to test tap(4) and it won't happen
for another week or so - I hope somebody else jumps in the meantime. 

Thank you!

//Marcin
Received on Mon Oct 04 2010 - 19:23:29 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:08 UTC