Re: [PATCH] libata, freezer: avoid block device removal while system is frozen

Tejun Heo
2013-12-17T12:35:05Z

Hello, Rafael.

On Tue, Dec 17, 2013 at 03:34:00AM +0100, Rafael J. Wysocki wrote:
> No, it isn't. [I guess it was originally, but it has not been the case
> for a very long time.] It is about getting user space interactions (all of

Heh... no wonder people are all so confused about this thing.

> the sysfs/ioctl/mmap/read/write/you-name-it thingies user space can do to
> devices) when we're calling device suspend/resume routines. The reason is
> that otherwise all of them would have had to do a "oh, are we suspending by
> the way?" check pretty much on every code path that can be triggered by
> user space.

Freezing userland is fine. I have no problem with that but up until
now the only use case that seems fundamentally valid to me is freezing
IO processing kthread in a driver as a cheap way to implement
suspend/resume. At this point, given the general level of confusion,
it seems to be costing more than benefiting.

> > Does that mean that it's safe to unfreeze before invoking resume?
>
> No, it isn't.

So, are you saying it's really about giving device drivers easy way to
implement suspend/resume? If that's the case, let's please make it
*way* more specific and clear - ie. things like helpers to implement
suspend/resume hooks trivially or whatnot. Freezable kthreads (and
now workqueues) have been becoming a giant mess for a while now.

Thanks.

--
tejun