Re: [Bug 4298] swsusp fails to suspend if CONFIG_DEBUG_PAGEALLOC isalso enabled

From: Andrew Morton
Date: Sun Mar 06 2005 - 23:02:00 EST


Pavel Machek <pavel@xxxxxx> wrote:
>
> Hi!
>
> > Problem Description:
> > swsusp normally works, but if I enable CONFIG_DEBUG_PAGEALLOC, it breaks --
> > after "PM: snapshotting memory", swsusp never gets to the "critical section" and
> > it kind of bounces back from the suspend attempt, for lack of a better way for
> > me to describe the effect.
>
> Okay, that is because low-level assembly requires PSE (4mb pages for
> kernel) and DEBUG_PAGEALLOC disables that capability.
>
> If you feel like rewriting assembly code to turn off paging (and thus
> working with PSE), go ahead, but I do not think it is worth the
> trouble.
>
> OTOH we should at least tell people what went wrong, some people seen
> same problem on VIA cpus... Please apply,
>

Isn't some Kconfig solution appropriate here?

>
> --- clean/include/asm-i386/suspend.h 2004-12-25 13:35:02.000000000 +0100
> +++ linux/include/asm-i386/suspend.h 2005-03-02 01:05:33.000000000 +0100
> @@ -10,10 +10,12 @@
> arch_prepare_suspend(void)
> {
> /* If you want to make non-PSE machine work, turn off paging
> - in do_magic. swsusp_pg_dir should have identity mapping, so
> + in swsusp_arch_suspend. swsusp_pg_dir should have identity mapping, so
> it could work... */
> - if (!cpu_has_pse)
> + if (!cpu_has_pse) {
> + printk(KERN_ERR "PSE is required for swsusp.\n");
> return -EPERM;
> + }
> return 0;
> }
>
> --
> People were complaining that M$ turns users into beta-testers...
> ...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/