Re: [5.0-rc5 regression] "scsi: kill off the legacy IO path" causes 5 minute delay during boot on Sun Blade 2500

From: James Bottomley
Date: Mon Feb 11 2019 - 11:28:46 EST


On Mon, 2019-02-11 at 08:46 -0700, Jens Axboe wrote:
> On 2/11/19 8:42 AM, James Bottomley wrote:
> > On Mon, 2019-02-11 at 08:28 -0700, Jens Axboe wrote:
> > > On 2/11/19 8:25 AM, James Bottomley wrote:
> > > > On Sun, 2019-02-10 at 09:35 -0700, Jens Axboe wrote:
> > > > > On 2/10/19 9:25 AM, James Bottomley wrote:
[...]
> > > > > > That check wasn't changed by the code removal.
> > > > >
> > > > > As I said above, for sd. This isn't true for non-disks.
> > > >
> > > > Yes, but the behaviour above doesn't change across a switch to
> > > > MQ, so I don't quite understand how it bisects back to that
> > > > change. If we're not gathering entropy for the device now, we
> > > > wouldn't have been before the switch, so the entropy
> > > > characteristics shouldn't have changed.
> > >
> > > But it does, as I also wrote in that first email. The legacy
> > > queue flags had QUEUE_FLAG_ADD_RANDOM set by default, the MQ ones
> > > do not. Hence any non-sd device would previously ALWAYS have
> > > ADD_RANDOM set, now none of them do. Also see the patch I sent.
> >
> > So your theory is that the disk in question never gets to the
> > rotational check? because the check will clear the flag if it's
> > non-rotational and set it if it's not, so the default state of the
> > flag shouldn't matter.
>
> No, my point is about non-disks, devices that aren't driven by sd.
> The behavior for sd hasn't changed, as it sets/clears it
> unconditionally.

I agree, but I don't think any of them were significant entropy
contributors before: things like nvme have always been outside of this
and sr and st don't really contribute much to the seek load during boot
because they're probed but not used by the boot sequence, so I can't
see how they would cause this behaviour. I suppose it could be target
probing, but even that seems unlikely because it should be dwarfed by
the number of root disk reads during boot.

For the rng to take an additional 5 minutes to initialize, we must have
lost a significant entropy source somewhere.

James

> That's not true for something driven by sr, for instance, and
> anything else non-sd. For those we defaulted to adding randomness for
> !scsi-mq, and default to not adding randomness for scsi-mq.
>
> The patch I included would have the same behavior for scsi-mq as we
> had for non-mq.