Re: cdrecord deadlocks linux 2.6.8.1 (problem in setscheduler)

From: Stephen Smalley (sds@private)
Date: Tue Oct 19 2004 - 11:52:19 PDT


On Tue, 2004-10-19 at 14:36, James Morris wrote:
> On Tue, 19 Oct 2004, Chris Wright wrote:
> 
> > > Hmmm...may have spoken too soon; looks like audit_log_end_irq can
> > > deadlock too when the runqueue lock is held.  Only option is to disable
> > > auditing of CAP_SYS_NICE and setscheduler?  Very unpleasant.
> > 
> > I assume this is due to wakeup code putting smth. on the runqueue?
> 
> This shouldn't happen from interrupt.

setscheduler() isn't being called from interrupt.  I changed the SELinux
setscheduler hook to call a wrapper function to use audit_log_irq_end(),
and exercising it immediately deadlocked the system. 
audit_log_irq_end() -> tasklet_schedule() -> raise_softirq_irqoff() ->
wakeup_softirqd() -> wake_up_process() is my current working guess,
couldn't get a dump after the lockup.  No response to sysrq-t.

-- 
Stephen Smalley <sds@private>
National Security Agency



This archive was generated by hypermail 2.1.3 : Tue Oct 19 2004 - 11:55:57 PDT