tun(4) in -CURRENT: No buffer space available - race condition
patch
Marcin Cieslak
saper at saper.info
Mon Oct 4 21:23:29 UTC 2010
>> 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
More information about the freebsd-current
mailing list