Messages in this thread Patch in this message | | | From | "Rafael J. Wysocki" <> | Subject | Re: Fw: 2.6.9-rc1-mm4: swsusp + AMD64 = LOCKUP on CPU0 | Date | Wed, 8 Sep 2004 14:51:55 +0200 |
| |
On Wednesday 08 of September 2004 14:01, Andi Kleen wrote: > Pavel Machek <pavel@ucw.cz> writes: > > > Hi! > > > > > One for you guys on lkml ;) > > > > It simply takes long to count pages (O(n^2) algorithm), so watchdog > > triggers. I have better algorithm locally, but would like merge to > > linus first. (I posted it to lkml some days ago, I can attach the > > bigdiff). > > > > Just disable the watchdog. Suspend *is* going to take time with > > disabled interrupts. > > > As a short term workaround you could also add touch_nmi_watchdog()s > in that loop.
You mean like that:
--- swsusp.c.orig 2004-09-08 14:30:29.049656984 +0200 +++ swsusp.c 2004-09-08 14:41:42.133332712 +0200 @@ -38,6 +38,7 @@ #include <linux/module.h> #include <linux/mm.h> +#include <linux/nmi.h> #include <linux/suspend.h> #include <linux/smp_lock.h> #include <linux/file.h> @@ -561,6 +562,7 @@ for_each_zone(zone) { if (!is_highmem(zone)) { + touch_nmi_watchdog(); for (zone_pfn = 0; zone_pfn < zone->spanned_pages; ++zone_pfn) nr_copy_pages += saveable(zone, &zone_pfn); } @@ -576,6 +578,7 @@ for_each_zone(zone) { if (!is_highmem(zone)) + touch_nmi_watchdog(); for (zone_pfn = 0; zone_pfn < zone->spanned_pages; ++zone_pfn) { if (saveable(zone, &zone_pfn)) { struct page * page; --- Just guessing. :-)
Greets, RJW
-- - Would you tell me, please, which way I ought to go from here? - That depends a good deal on where you want to get to. -- Lewis Carroll "Alice's Adventures in Wonderland" - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |