From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 14 Feb 2017 14:47:36 +0100 From: "hch@lst.de" To: Dexuan Cui Cc: "hch@lst.de" , Jens Axboe , Bart Van Assche , "hare@suse.com" , "hare@suse.de" , "Martin K. Petersen" , "linux-kernel@vger.kernel.org" , "linux-block@vger.kernel.org" , "jth@kernel.org" , Nick Meier , "Alex Ng (LIS)" , Long Li , "Adrian Suhov (Cloudbase Solutions SRL)" , "Chris Valean (Cloudbase Solutions SRL)" Subject: Re: Boot regression (was "Re: [PATCH] genhd: Do not hold event lock when scheduling workqueue elements") Message-ID: <20170214134736.GA19620@lst.de> References: <1486436195.2791.1.camel@sandisk.com> <9199d528-f220-5b77-d657-c510ca210067@kernel.dk> <20170208180314.GA17838@lst.de> <20170209130800.GA12057@lst.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: List-ID: 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 */