It seems that the XFS code (probably page_buf.c) doesn't have any support
for ACPI sleep states (S3 a.k.a. Suspend-To-RAM, and S4 a.k.a.
Suspend-To-Disk, or software suspend - swsusp).
The problem seems to concentrate on pagebufd (and pagebuf/0) not beeing
able to enter refrigerator (suspend) properly. Upon entering the S4 state,
2.5.59-61 (as well as 2.4.x-xfs) suspend subsystem fails to stop those
kernel threads, and refuses to suspend. After such a trial, pagebufd seems
to start sucking up the CPU power greatly, but otherwise works correctly
(at least I think so, I failed to notice any filesystem corruption). The S3
state (only supported in 2.5) actually disregards the warnings of not being
able to stop pagebufd (part of dmesg attached) and works smoothly, but
after resume the pagebufd still uses up the processor.
I wouldn't bother the list, if the swsusp and ACPI sleep code wasn't
integrated into the official kernel. Anyway, there exist some patches for
2.4.20 kernels and a recent version of XFS that deal with that issue
perfectly (at least for me, I haven't ecountered any XFS-related problems
so far using those). One I'm currently using is here:
The patch seems trivial (as most patches for swsusp + journalled
filesystems are), but alas, I'm no kernel hacker and the structure of
page_buf.c in 2.5 has changed substantially, so I'm not able to patch it by
myself. Thanks in advance for any help or hints,
Karol 'sziwan' Kozimor
Description: Text document