Re: soft lockup in the target processing thread

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 2011-12-21 at 13:20 -0500, Christoph Hellwig wrote:
> On Mon, Dec 12, 2011 at 09:34:11AM -0800, Roland Dreier wrote:
> > On Mon, Dec 12, 2011 at 6:09 AM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
> > > [ ?968.116635] ?[<ffffffff8175465c>] transport_processing_thread+0x13c/0x4a0
> > 
> > If you look at transport_processing_thread(), you'll notice that the
> > only time it
> > goes to sleep in wait_event is if dev->dev_queue_obj.queue_cnt is 0.
> > 
> > So as long as there is work being queued up, the thread will continue to run,
> > even for the 22s you saw in your soft lockup report.
> 
> Indeed, you mentioned it before, but the raw_spin_unlock in the thread
> confused me.  Adding a cond_resched indeed fixed it.  But without the
> cond_resched the VM is indeed hung.  It's a single processor one, and
> thus doesn't manage to get anything else done until we yield.
> 

So yeah, it makes sense that a single processor guest is causing
problems during yield when se_device->depth_left == 0.

Anyways, since we are removing se_device TCQ depth checking all-together
for v3.3, it should be a moot point now with the following:

target: Drop se device TCQ queue depth usage from I/O path
http://git.kernel.org/?p=linux/kernel/git/nab/target-pending.git;a=commitdiff;h=65586d51e0986be574118286c3d0007e903a2add

However for v3.2-final + stable, I'm happy to accept a patch using
cond_resched() to address this case for UP usage.

Thanks,

--nab

--
To unsubscribe from this list: send the line "unsubscribe target-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux SCSI]     [Kernel Newbies]     [Linux SCSI Target Infrastructure]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Device Mapper]

  Powered by Linux