Subject: Re: Changes to firewire code
To: Lennart Augustsson <lennart@mail.augustsson.net>
From: None <jchacon@genuity.net>
List: tech-kern
Date: 04/29/2001 06:14:17
For now I moved it to splbio since that's more natural in this case than
splnet where it was before.

The main issue is we really need spl(my interrupt) for cases like this since
all I really care about is blocking the interrupt at a few points (less than
10 or so now in the code).

The other thing, is spl's shouldn't be treated as levels (I had this pounded
into me as I learned it :-). i.e. from the man page "Note that a strict 
hierarchy is not brequired.  "

At this point almost nothing uses this as a synch point since all the 
actual processing takes place at spl0 inside the kthread and that just calls 
registered callbacks from the sub devices. Those devices would then need to 
deal with appropriate spl issues for any data they're manipulating (like the 
if_fw code shoving/pulling packets from the IP queue's, etc). Testing so far
doesn't show any problems with the if_fw interface interacting badly with
anything else using the IP stack.

James

>
>jchacon@genuity.net wrote:
>
>> 2. Move everything to splbio and let the underlying devices raise spl as
>>    appropriate for their specific function (i.e. the if_fw code needs to raise
>>    splnet when moving packets around).
>
>Should the processing be at splsoftSomething so you know that it's
>lower than anything else?  Otherwise the code won't interact properly
>with code that wants to process interrupts at a levelloer than splbio.
>(I had exactly this problem in the USB code.)
>
>    -- Lennart
>
>
>
>
>
>