Received: by 2002:a25:ca44:0:0:0:0:0 with SMTP id a65csp1249039ybg; Wed, 29 Jul 2020 09:17:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxXx+UT2YibC9vYIsAnk60nDWZbgiuJBwAdumd0NMqNyt/KndlDNJZRZUPSbTlnN5gdCw6M X-Received: by 2002:aa7:d5d0:: with SMTP id d16mr1575129eds.212.1596039478727; Wed, 29 Jul 2020 09:17:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596039478; cv=none; d=google.com; s=arc-20160816; b=CBGzZdTDaOoGcVM4o18SjgFAfh3Rg29KmSNmnl4ekb41IehZ8Fe53xL1hxs4bsARDU SlHGVQN5EFfUmf3weIQ8ZBjsIGRUGtY/KctybuMEy6b5ryTX3iOyZ5x/rDDf+sYF96yt FaJm/4IHkrb+NS15lIAtOEOFYg9Bq/bs2dcCnl02GUcSKyL6iGGLNcVNTkCyywkaxMNp 00nT+FyrLEF6CFm0vM9pZ+aMB8rKsPrVFP+02oQ+wHcsqAQGOgmE+qZs7IneDKFCMDV4 6tf+dESyprNiaFkeOtyRC5UO9O4bSF0Wghs346J47bt1LzM4o6m2kyI0UEzlQx1FfAEy gKMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=FTJTAt/Hzoxv40bRj/mvQg7HX6DlX1eryDotJ4cBUtc=; b=y8Qbvp2yzs6hryL/AsQmr5R4mvU3KXBJA8V59KQgBmkAUqjhzff48pYBieuXo6PCyh o1v85TeYltOn1xSwurELQybmPM7KiKg7bh8SuyV6ChHRvYkkSgYUbfvvUkm6ZxZhHu92 kZ5uc6E4bIk3dQnm6zyKbvXqkjIS9L3vPkpXXMbODYTR7/A13tfGAUSWu2NTXTChzh/y Mgg5b3zJb4SLULy4RPWthLEjN7APGYljzSQUvSJ/KIaNI6svhRIruQvc2Pmh9BIKtsJ0 8ZxAK1kiViTtpCPFPuEzmRWZ98xtUIrXOZNXzBV2tspzSCelK/kbVMx0hHVxfCbTG80Y i9Tg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id q17si722969edg.164.2020.07.29.09.17.35; Wed, 29 Jul 2020 09:17:58 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726958AbgG2QRZ (ORCPT + 99 others); Wed, 29 Jul 2020 12:17:25 -0400 Received: from netrider.rowland.org ([192.131.102.5]:33941 "HELO netrider.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S1726341AbgG2QRZ (ORCPT ); Wed, 29 Jul 2020 12:17:25 -0400 Received: (qmail 1577145 invoked by uid 1000); 29 Jul 2020 12:17:23 -0400 Date: Wed, 29 Jul 2020 12:17:23 -0400 From: Alan Stern To: James Bottomley Cc: Martin Kepplinger , Bart Van Assche , Can Guo , martin.petersen@oracle.com, linux-scsi@vger.kernel.org, linux-kernel@vger.kernel.org, kernel@puri.sm Subject: Re: [PATCH] scsi: sd: add runtime pm to open / release Message-ID: <20200729161723.GB1575761@rowland.harvard.edu> References: <20200706164135.GE704149@rowland.harvard.edu> <20200728200243.GA1511887@rowland.harvard.edu> <20200729143213.GC1530967@rowland.harvard.edu> <1596033995.4356.15.camel@linux.ibm.com> <1596034432.4356.19.camel@HansenPartnership.com> <20200729154056.GA1575761@rowland.harvard.edu> <1596037774.4356.42.camel@HansenPartnership.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1596037774.4356.42.camel@HansenPartnership.com> User-Agent: Mutt/1.10.1 (2018-07-13) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jul 29, 2020 at 08:49:34AM -0700, James Bottomley wrote: > On Wed, 2020-07-29 at 11:40 -0400, Alan Stern wrote: > > On Wed, Jul 29, 2020 at 07:53:52AM -0700, James Bottomley wrote: > > > On Wed, 2020-07-29 at 07:46 -0700, James Bottomley wrote: > [...] > > > > That sense code means "NOT READY TO READY CHANGE, MEDIUM MAY HAVE > > > > CHANGED" so it sounds like it something we should be > > > > ignoring. Usually this signals a problem, like you changed the > > > > medium manually (ejected the CD). But in this case you can tell > > > > us to expect this by setting > > > > > > > > sdev->expecting_cc_ua > > > > > > > > And we'll retry. I think you need to set this on all resumed > > > > devices. > > > > > > Actually, it's not quite that easy, we filter out this ASC/ASCQ > > > combination from the check because we should never ignore medium > > > might have changed events on running devices. We could ignore it > > > if we had a flag to say the power has been yanked (perhaps an > > > additional sdev flag you set on resume) but we would still miss the > > > case where you really had powered off the drive and then changed > > > the media ... if you can regard this as the user's problem, then we > > > might have a solution. > > > > Indeed, I was going to make the same point. > > > > The only reasonable conclusion is that suspending these SD card > > readers isn't safe unless they don't contain a card -- or maybe just > > if the device file isn't open or mounted. > > For standard removable media, I could see issuing an eject before > suspend to emphasize the point. That's not a workable approach in general. For example, you wouldn't want to eject a CD just because it hadn't been used for a couple of minutes and the drive was therefore about to be suspended. > However, sd cards don't work like that > ... they're not ejectable except manually and mostly used as the HDD of > embedded, so the 99% use case is that the user will suspend and resume > the device with the same sdd insert. It does sound like a use case we > should support. Agreed. > > Although support for this sort of thing could be added to the > > kernel, for now it's best to rely on userspace doing the right > > thing. The kernel doesn't even know which devices suffer from this > > problem. > > Can we solve from userspace the case where the user hasn't changed the > media and the resume fails because we don't know? The difficulty is recognizing situations where the media really was changed while the device was suspended. Most devices, AFAIK, don't have any problem with this, but card readers often do. I suppose the kernel could just rely on users not to change media in drives while they are mounted. Then any problems that arise would be the users' fault. Yes, this is nothing more than passing the buck, but it's hard to come up with any better approach. Doesn't Windows do something like this? Alan Stern