From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alan Stern Subject: Re: Is it supposed to be ok to call del_gendisk while userspace is frozen? Date: Wed, 3 Mar 2010 21:48:39 -0500 (EST) Message-ID: References: <201003040123.13617.rjw@sisk.pl> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <201003040123.13617.rjw@sisk.pl> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: linux-pm-bounces@lists.linux-foundation.org Errors-To: linux-pm-bounces@lists.linux-foundation.org To: "Rafael J. Wysocki" Cc: linux-kernel , Jens Axboe , Andrew Morton , linux-pm List-Id: linux-pm@vger.kernel.org On Thu, 4 Mar 2010, Rafael J. Wysocki wrote: > > Very well. Then we still need a solution to the original problem: > > Devices sometimes need to be unregistered during resume, but > > del_gendisk() blocks on the writeback thread, which is frozen until > > after the resume finishes. How do you suggest this be fixed? > > I thought about thawing the writeback thread earlier in such cases. > > Would that makes sense / is it doable at all? My thought exactly. This is the only approach that also solves the following race: A driver is unloaded at the same time as a suspend starts. The writeback thread gets frozen. Then before the rmmod thread is frozen, it calls del_gendisk. Delaying things by means of a workqueue (or the equivalent) might also work, but it doesn't seem as safe. For example, some important writebacks might end up getting delayed until too late. Alan Stern