tech-kern archive

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

Re: RCU (or equivalent) for NetBSD?



On Mar 3, 2013, at 12:43 PM, Dennis Ferguson 
<dennis.c.ferguson%gmail.com@localhost> wrote:

> 
> On 3 Mar, 2013, at 19:26 , "J. Hannken-Illjes" 
> <hannken%eis.cs.tu-bs.de@localhost> wrote:
>>> The basic functions seem to be a perfect fit.
>>> 
>>> The only bit I'm confused about is what the implication of
>>> 
>>>  The read operations may happen from software interrupt at the
>>>  IPL_SOFTCLOCK symbolic level.
>>> 
>>> is for an application that wants to use this interface.  Processing of 
>>> packets
>>> arriving from hardware interfaces is traditionally run at IPL_SOFTNET, is 
>>> the
>>> above telling me a reader can't use pserialize(9) if it is running at that
>>> level?
>> 
>> The opposite: pserialize may be used from soft interrupt context.
> 
> I assume it can also be used in process context, that is in code running as
> a result of a system call (which is the context the other half of packets
> processed through the network stack on a host are handled in).
> 
> If it is the case that pserialize can be used from soft interrupt context
> at any priority level, however, then why does the man page call out 
> IPL_SOFTCLOCK
> in particular?  IPL_SOFTNET is usually a higher priority and in theory can 
> interrupt
> IPL_SOFTCLOCK processing; is that really okay?

Currently it protects at IPL_SOFTSERIAL.  Not a problem at all as
soft interrupts are not preemptive.  Process context is also ok.

Technically pserialize_read_enter / pserialize_read_exit are
implemented as "s = splsoftserial()" / "splx(s)".

--
J. Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig 
(Germany)



Home | Main Index | Thread Index | Old Index