2010-04-22 23:41:01

by Matt Reimer

[permalink] [raw]
Subject: Re: [linux-pm] Is it supposed to be ok to call del_gendisk while userspace is frozen?

On Thu, Mar 4, 2010 at 1:15 PM, Pavel Machek <[email protected]> wrote:
> Hi!
>
>> > 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.
>
> Delaying writebacks during sleep should be ok... That's why we do
> sync() after userspace is frozen -- nothing really important should be
> waiting for writeback after that point.

Has this been fixed, or has a consensus about how to fix this been
achieved? I'm hitting the same problem and have some time to work on a
fix.

Matt


2010-04-23 05:17:23

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [linux-pm] Is it supposed to be ok to call del_gendisk while userspace is frozen?

On Friday 23 April 2010, Matt Reimer wrote:
> On Thu, Mar 4, 2010 at 1:15 PM, Pavel Machek <[email protected]> wrote:
> > Hi!
> >
> >> > 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.
> >
> > Delaying writebacks during sleep should be ok... That's why we do
> > sync() after userspace is frozen -- nothing really important should be
> > waiting for writeback after that point.
>
> Has this been fixed,

No, it hasn't.

> or has a consensus about how to fix this been
> achieved? I'm hitting the same problem and have some time to work on a
> fix.

Generally, it looks like del_gendisk should thaw writeback threads, but not
during suspend, only during resume.

Rafael