RE: Boot regression (was "Re: [PATCH] genhd: Do not hold event lock when scheduling workqueue elements")

From: Dexuan Cui
Date: Tue Feb 14 2017 - 09:18:42 EST


> From: hch@xxxxxx [mailto:hch@xxxxxx]
>
> Hi Dexuan,
>
> can you try the hack below for now? I disable the TUR call from
> sd_check_events, which I think your VM is hanging on. The checks
> it does on the sense data look a bit fishy, but so far I've not
> identified a possible root cause.
>
> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
> index 40b4038c019e..1502e87c2be9 100644
> --- a/drivers/scsi/sd.c
> +++ b/drivers/scsi/sd.c
> @@ -1457,9 +1457,13 @@ static unsigned int sd_check_events(struct
> gendisk *disk, unsigned int clearing)
> retval = -ENODEV;
>
> if (scsi_block_when_processing_errors(sdp)) {
> +#if 0
> sshdr = kzalloc(sizeof(*sshdr), GFP_KERNEL);
> retval = scsi_test_unit_ready(sdp, SD_TIMEOUT,
> SD_MAX_RETRIES,
> sshdr);
> +#else
> + retval = 0;
> +#endif
> }
>
> /* failed to execute TUR, assume media not present */

Unluckily, the issue is still there.
Please see the attachment for the new log.
It looks somewhere we're still sending the cmd "Test Unit Ready", which
somehow hangs.

Thanks,
-- Dexuan

Attachment: putty.log
Description: putty.log