On Sun, Oct 6, 2013 at 4:17 PM, Toralf Förster <toralf.foerster@xxxxxx> wrote: > The UML stopped here : > ... > if (unlikely(task_ratelimit == 0)) { > period = max_pause; > pause = max_pause; > BUG_ON(pause < 0); > goto pause; > } > BUG_ON(pages_dirtied < 0); > BUG_ON(task_ratelimit < 0); > period = HZ * pages_dirtied / task_ratelimit; > BUG_ON(period < 0); <----------------------here So pages_dirtied becomes that big compared to task_ratelimit (both are "unsigned long"), that period (which is "long", just like "pause") overflows into a negative number. This is indeed much more likely to happen on 32-bit. > The back trace is : > #9 0x08411c64 in balance_dirty_pages (pages_dirtied=9, mapping=<optimized out>) at mm/page-writeback.c:1471 But here pages_dirtied is only 9?? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds -- To unsubscribe from this list: send the line "unsubscribe trinity" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html