On Sat, 2016-01-23 at 21:46 -0600, Christoph Lameter wrote:
> On Sun, 24 Jan 2016, Mike Galbraith wrote:
> 
> > By switching cross-core, I'm referring to scheduling of communicating
> > tasks.
> 
> ??? Its cancelling a work request. That is a "communicating task"?

No no no, pipe-test is two tasks playing ping-pong via a pipe.  They
are about as synchronous as it gets, so each task goes idle at high
frequency.  Idle is fastpath.

> > Here's the sleeping lock for -rt:
> > 
> > [    2.279582] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.5.0-rt3 #7
> > [    2.280444] Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.20C 
> > 09/23/2013
> > [    2.281316]  ffff88040b00d640 ffff88040b01fe10 ffffffff812d20e2 
> > 0000000000000000
> > [    2.282202]  ffff88040b01fe30 ffffffff81081095 ffff88041ec4cee0 
> > ffff88041ec501e0
> > [    2.283073]  ffff88040b01fe48 ffffffff815ff910 ffff88041ec4cee0 
> > ffff88040b01fe88
> > [    2.283941] Call Trace:
> > [    2.284797]  [] dump_stack+0x49/0x67
> > [    2.285658]  [] ___might_sleep+0xf5/0x180
> > [    2.286521]  [] rt_spin_lock+0x20/0x50
> > [    2.287382]  [] try_to_grab_pending+0x69/0x240
> > [    2.288239]  [] cancel_delayed_work+0x26/0xe0
> 
> OMG cancelling a work request causes a sleeping lock to be taken?

Yup.  In -rt, spinlocks that are not raw are transformed into rtmutex.

        -Mike

Reply via email to