Source-Changes-D archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys



On Fri, Aug 12, 2016 at 11:04 PM, Nick Hudson <skrll%netbsd.org@localhost> wrote:
> On 07/28/16 10:03, Ryota Ozaki wrote:
>>
>> Module Name:    src
>> Committed By:   ozaki-r
>> Date:           Thu Jul 28 09:03:51 UTC 2016
>>
>> Modified Files:
>>         src/sys/netinet: if_arp.c in.c
>>         src/sys/netinet6: in6.c nd6_nbr.c
>>
>> Log Message:
>> Fix panic on adding/deleting IP addresses under network load
>>
>> Adding and deleting IP addresses aren't serialized with other network
>> opeartions, e.g., forwarding packets. So if we add or delete an IP
>> address under network load, a kernel panic may happen on manipulating
>> network-related shared objects such as rtentry and rtcache.
>>
>> To avoid such panicks, we still need to hold softnet_lock in in_control
>> and in6_control that are called via ioctl and do network-related
>> operations
>> including IP address additions/deletions.
>>
>> Fix PR kern/51356
>
>
> Hi,
>
> This is contributory to the problems in
>
>     http://gnats.netbsd.org/49065
>
>     http://gnats.netbsd.org/50491
>
>     http://gnats.netbsd.org/51395
>
> Where softnet_lock is held by something that sleeps, e.g. a usb transfer.
>
>     http://mail-index.netbsd.org/tech-net/2015/12/06/msg005443.html
>
> This patch
>
>     http://www.netbsd.org/~skrll/usb.softint.diff
>
> helps, but I'm not sure it deals with all the problems in the network stack.
> Is this something you intend to address?

No. The commit prevents parallel accesses on shared data (rtentry, ifaddr,
etc.). The issue of USB transfers seem to be a deadlock between softints
of the network stack and USB interrupt processing.

I think we can commit your patch if it fixes the PRs and doesn't break
anything.

Of course we should get rid of softnet_lock at some point.

Thanks,
  ozaki-r


Home | Main Index | Thread Index | Old Index