2003-11-30 10:51:39

by Prakash K. Cheemplavam

[permalink] [raw]
Subject: libata and pm

Hi,

I wonder whether libata can easily be made compatible with swsup or pmdisk.

Currently my tries stop with the message:

PM: Preparing system for suspend
Stopping tasks:
=================================================exiting...========
stopping tasks failed (1 tasks remaining)
Restarting tasks...<6> Strange, katad-1 not stopped
done


I think that katad belongs to libata.

Cheers,

Prakash


2003-11-30 16:02:26

by Jeff Garzik

[permalink] [raw]
Subject: Re: libata and pm

===== drivers/scsi/libata-core.c 1.7 vs edited =====
--- 1.7/drivers/scsi/libata-core.c Mon Nov 24 11:19:30 2003
+++ edited/drivers/scsi/libata-core.c Sun Nov 30 11:01:26 2003
@@ -2567,6 +2567,9 @@

timeout = ata_thread_iter(ap);

+ if (current->flags & PF_FREEZE)
+ refrigerator(PF_IOTHREAD);
+
if (signal_pending (current))
flush_signals(current);


Attachments:
patch (402.00 B)

2003-11-30 16:56:56

by Prakash K. Cheemplavam

[permalink] [raw]
Subject: Re: libata and pm

Jeff Garzik wrote:
> Prakash K. Cheemplavam wrote:
>
>> Hi,
>>
>> I wonder whether libata can easily be made compatible with swsup or
>> pmdisk.
>>
>> Currently my tries stop with the message:
>>
>> PM: Preparing system for suspend
>> Stopping tasks:
>> =================================================exiting...========
>> stopping tasks failed (1 tasks remaining)
>> Restarting tasks...<6> Strange, katad-1 not stopped
>> done
>>
>>
>> I think that katad belongs to libata.
>
>
> I'm curious if this [completely untested] patch works? :)

Well, it works as it should -I guess-,ie. swsusp proceeds, but (as
expected) after all it doesn't work with scsi and swsusp gives a kernel
panic. But that is another matter. ;-)

Nevertheless I got following wanrings on compile (second one was already
there):

drivers/scsi/libata-core.c: In function `ata_thread':
drivers/scsi/libata-core.c:2571: Warnung: implicit declaration of
function `refrigerator'
drivers/scsi/libata-core.c: At top level:
drivers/scsi/libata-core.c:2141: Warnung: `ata_qc_push' defined but not used

(Furthermore the patch didn't want to apply, so I had to do it by hand.)

Thx,

Prakash





2003-11-30 17:02:52

by Jeff Garzik

[permalink] [raw]
Subject: Re: libata and pm

Prakash K. Cheemplavam wrote:
> Jeff Garzik wrote:
>
>> Prakash K. Cheemplavam wrote:
>>
>>> Hi,
>>>
>>> I wonder whether libata can easily be made compatible with swsup or
>>> pmdisk.
>>>
>>> Currently my tries stop with the message:
>>>
>>> PM: Preparing system for suspend
>>> Stopping tasks:
>>> =================================================exiting...========
>>> stopping tasks failed (1 tasks remaining)
>>> Restarting tasks...<6> Strange, katad-1 not stopped
>>> done
>>>
>>>
>>> I think that katad belongs to libata.
>>
>>
>>
>> I'm curious if this [completely untested] patch works? :)
>
>
> Well, it works as it should -I guess-,ie. swsusp proceeds, but (as
> expected) after all it doesn't work with scsi and swsusp gives a kernel
> panic. But that is another matter. ;-)
>
> Nevertheless I got following wanrings on compile (second one was already
> there):
>
> drivers/scsi/libata-core.c: In function `ata_thread':
> drivers/scsi/libata-core.c:2571: Warnung: implicit declaration of
> function `refrigerator'
> drivers/scsi/libata-core.c: At top level:
> drivers/scsi/libata-core.c:2141: Warnung: `ata_qc_push' defined but not
> used
>
> (Furthermore the patch didn't want to apply, so I had to do it by hand.)


Duh, I'm silly... you need #include <linux/suspend.h> at the top of that
file, too. I'm amazed swsusp proceeds at all :)

Jeff