Re: block: Always check queue limits for cloned requests
From: Markus Trippelsdorf
Date: Sun Nov 29 2015 - 11:15:41 EST
On 2015.11.29 at 16:43 +0100, Hannes Reinecke wrote:
> On 11/29/2015 12:49 PM, Markus Trippelsdorf wrote:
> > On 2015.11.26 at 08:11 -0500, Mike Snitzer wrote:
> >> On Thu, Nov 26 2015 at 2:46am -0500,
> >> Hannes Reinecke <hare@xxxxxxx> wrote:
> >>
> >>> When a cloned request is retried on other queues it always needs
> >>> to be checked against the queue limits of that queue.
> >>> Otherwise the calculations for nr_phys_segments might be wrong,
> >>> leading to a crash in scsi_init_sgtable().
> >>>
> >>> To clarify this the patch renames blk_rq_check_limits()
> >>> to blk_cloned_rq_check_limits() and removes the symbol
> >>> export, as the new function should only be used for
> >>> cloned requests and never exported.
> >>>
> >>> Cc: Mike Snitzer <snitzer@xxxxxxxxxx>
> >>> Cc: Ewan Milne <emilne@xxxxxxxxxx>
> >>> Cc: Jeff Moyer <jmoyer@xxxxxxxxxx>
> >>> Signed-off-by: Hannes Reinecke <hare@xxxxxxx>
> >>
> >> Patch looks good. Thanks for getting to the bottom of this.
> >>
> >> Jens, please add these extra tags when you pick this up:
> >>
> >> Fixes: e2a60da74 ("block: Clean up special command handling logic")
> >> Cc: stable@xxxxxxxxxxxxxxx # 3.7+
> >> Acked-by: Mike Snitzer <snitzer@xxxxxxxxxx>
> >
> > I'm still seeing the issue (BUG at drivers/scsi/scsi_lib.c:1096!) even
> > with this patch applied.
> >
> > markus@x4 linux % git describe
> > v4.4-rc2-215-g081f3698e606
> >
> Can you generate a crashdump?
> I would need to cross-check with the other dumps I'm having to figure
> out if this really is the same issue.
> There have been other reports (and fixes) which show we're fighting
> several distinct issues here.
Unfortunately no. The crash happens on the disk where I store my log
files. And after it happened the magic SysRq keys don't work anymore.
The crash only happens on my spinning rust drive that uses the cfq
scheduler. The SSDs (deadline) are fine.
The BUG happens reproducibly when building http://www.sagemath.org/ on
that drive.
--
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/