Messages in this thread | | | Date | Mon, 6 Sep 2004 02:26:01 +0200 | From | Herbert Poetzl <> | Subject | Re: RCU callback and scheduling while atomic! |
| |
On Tue, Aug 31, 2004 at 09:51:40PM +0530, Dipankar Sarma wrote: > On Tue, Aug 31, 2004 at 06:17:10PM +0200, Herbert Poetzl wrote: > > > > it seems that the RCU callback is not allowed > > to (re-)schedule, as it is done occasionally by > > put_namespace() for example, as I keep getting > > "bad: scheduling while atomic!", when I do so ... > > > > now the question: what is the 'correct' way to > > drop a reference to a namespace when freeing up > > a structure from an RCU callback? > > You are right about not allowing schedule from callbacks. The callbacks > are called from softirq context. > > Without your current code, it is difficult to say how to do this but here are > some guesses - > > 1. You could mark the freed up structure deleted on update, do > put_namspace() and do only the freeing in the rcu callback. > dentries do this. > > 2. If not performance critical, you could use a workqueue to > do the actual freeing including put_namespace(). Just wake up > from the rcu callback.
ah, okay, I see, although it isn't time critical, it seems to me that the first is the best choice in my case, thanks for the hints ...
> These may or may not be applicable to your case. More details will > help.
thanks, Herbert
> Thanks > Dipankar > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |