[Devel] Re: [PATCH 1/7] introduce atomic_dec_and_lock_irqsave()
Roman Zippel
zippel at linux-m68k.org
Wed Aug 30 10:25:07 PDT 2006
Hi,
On Wed, 30 Aug 2006, Dipankar Sarma wrote:
> > > uidhash_lock can be taken from irq context. For example, delayed_put_task_struct()
> > > does __put_task_struct()->free_uid().
> >
> > AFAICT it's called via rcu, does that mean anything released via rcu has
> > to be protected against interrupts?
>
> No. You need protection only if you have are using some
> data that can also be used by the RCU callback. For example,
> if your RCU callback just calls kfree(), you don't have to
> do a spin_lock_bh().
In this case kfree() does its own interrupt synchronization. I didn't
realize before that rcu had this (IMO serious) limitation. I think there
should be two call_rcu() variants, one that queues the callback in a soft
irq and a second which queues it in a thread context.
bye, Roman
More information about the Devel
mailing list