Re: FYI: My current suspend bigdiff

Jens Axboe
2003-11-30T17:22:08Z

On Sun, Nov 30 2003, Pavel Machek wrote:
> Hi!
>
> > >Well... it could work with scsi. You can try it, but be carefull. [If
> > >it goes wrong it might eat your data.]
> >
> > Thats why I use xfs on my main system to test... And I tried with libata
> > and it won't work as it complains that the "katad" process cannot be
> > stopped, so swsusp immediatly comes back.
>
> I do not know how much more support is needed to allow powermanagment
> for libata, but this one should be easy...
>
> [Hmm, I hope it compiles, I certainly do not use libata for now.]
> Pavel
>
> --- clean/drivers/scsi/libata-core.c 2003-11-28 17:06:39.000000000 +0100
> +++ linux/drivers/scsi/libata-core.c 2003-11-30 18:16:02.000000000 +0100
> @@ -34,6 +34,7 @@
> #include <linux/delay.h>
> #include <linux/timer.h>
> #include <linux/interrupt.h>
> +#include <linux/suspend.h>
> #include <scsi/scsi.h>
> #include "scsi.h"
> #include "hosts.h"
> @@ -2564,6 +2565,8 @@
>
> while (1) {
> cond_resched();
> + if (current->flags & PF_FREEZE)
> + refrigerator(PF_IOTHREAD);

Curious - can't this be put some place a bit smarter, so we don't have
to update every single "driver" with a kernel thread out there (like in
the scheduler)? Seems pretty fragile to rely on this. Plus, when you
change this in the future there'll be N drivers to update again.

--
Jens Axboe