On Sun, Oct 6, 2013 at 4:17 PM, Toralf Förster <[email protected]> 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 -- [email protected]
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
------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60134791&iu=/4140/ostg.clktrk
_______________________________________________
User-mode-linux-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel