Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-16 Thread Johannes Thumshirn
On Wed, 2015-10-14 at 11:18 -0700, Christoph Hellwig wrote: > On Wed, Oct 14, 2015 at 08:45:56AM -0700, James Bottomley wrote: > > OK, so I really need you to separate the problems. Fixing the bug [..] > > Johannes, can you test the patch below? I've tested your patch and it doesn't show the l

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-15 Thread Johannes Thumshirn
On Wed, 2015-10-14 at 16:22 -0400, Ewan Milne wrote: > On Wed, 2015-10-14 at 07:30 -0700, James Bottomley wrote: > > On Wed, 2015-10-14 at 15:50 +0200, Johannes Thumshirn wrote: > > > Removing a SCSI target via scsi_remove_target() suspected to be > > > racy. When a > > > sibling get's removed from

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread Ewan Milne
On Wed, 2015-10-14 at 07:30 -0700, James Bottomley wrote: > On Wed, 2015-10-14 at 15:50 +0200, Johannes Thumshirn wrote: > > Removing a SCSI target via scsi_remove_target() suspected to be racy. When a > > sibling get's removed from the list it can occassionly happen that one CPU > > is > > stuck

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread Christoph Hellwig
On Wed, Oct 14, 2015 at 08:45:56AM -0700, James Bottomley wrote: > OK, so I really need you to separate the problems. Fixing the bug > you're reporting does not require a complete rework of the locking > infrastructure; it just requires replacing the traversal macro with the > safe version, can yo

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread Johannes Thumshirn
Zitat von James Bottomley : On Wed, 2015-10-14 at 16:39 +0200, Johannes Thumshirn wrote: On Wed, 2015-10-14 at 07:30 -0700, James Bottomley wrote: > On Wed, 2015-10-14 at 15:50 +0200, Johannes Thumshirn wrote: > > Removing a SCSI target via scsi_remove_target() suspected to be > > racy. When a

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread Johannes Thumshirn
Zitat von Christoph Hellwig : On Wed, Oct 14, 2015 at 04:39:07PM +0200, Johannes Thumshirn wrote: removal. This is what my initial proposal did as well. Christoph wanted me to decouple the whole process from the host_lock though and this is what this patches do as well now. I think we've talk

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread Christoph Hellwig
On Wed, Oct 14, 2015 at 04:39:07PM +0200, Johannes Thumshirn wrote: > removal. This is what my initial proposal did as well. Christoph wanted > me to decouple the whole process from the host_lock though and this is > what this patches do as well now. I think we've talked past each other, I didn't

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread James Bottomley
On Wed, 2015-10-14 at 16:39 +0200, Johannes Thumshirn wrote: > On Wed, 2015-10-14 at 07:30 -0700, James Bottomley wrote: > > On Wed, 2015-10-14 at 15:50 +0200, Johannes Thumshirn wrote: > > > Removing a SCSI target via scsi_remove_target() suspected to be > > > racy. When a > > > sibling get's remo

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread Johannes Thumshirn
On Wed, 2015-10-14 at 07:30 -0700, James Bottomley wrote: > On Wed, 2015-10-14 at 15:50 +0200, Johannes Thumshirn wrote: > > Removing a SCSI target via scsi_remove_target() suspected to be > > racy. When a > > sibling get's removed from the list it can occassionly happen that > > one CPU is > > stu

Re: [PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread James Bottomley
On Wed, 2015-10-14 at 15:50 +0200, Johannes Thumshirn wrote: > Removing a SCSI target via scsi_remove_target() suspected to be racy. When a > sibling get's removed from the list it can occassionly happen that one CPU is > stuck endlessly looping around this code block > > list_for_each_entry(starg

[PATCH 0/3] SCSI: Fix hard lockup in scsi_remove_target()

2015-10-14 Thread Johannes Thumshirn
Removing a SCSI target via scsi_remove_target() suspected to be racy. When a sibling get's removed from the list it can occassionly happen that one CPU is stuck endlessly looping around this code block list_for_each_entry(starget, &shost->__targets, siblings) { if (starget->state == STARGE