Den 2013-10-08 21:56, skrev Toralf Förster: > Well, the quick&dirty hack below at least works for the moment to > overcome the soft lookup and the hang/unresponsiveness of the 32 bit > user mode linux guest : > > > diff --git a/mm/page-writeback.c b/mm/page-writeback.c > index f5236f8..7e9483c 100644 > --- a/mm/page-writeback.c > +++ b/mm/page-writeback.c > @@ -1503,6 +1503,8 @@ static void balance_dirty_pages(struct > address_space *mapping, > } > > pause: > + if (pause < 0) > + break;
can we combine in the debug printk() mentioned below, that prints out pages_dirtied and task_ratelimit: >> if (pause < 0) { >> printk("pages_dirtied = %lu\n", pages_dirtied); >> printk("task_ratelimit = %lu\n", task_ratelimit); >> printk("pause = %ld\n", pause); break; >> } I have not read the source, so what is the definition of HZ? Are pages_dirtied and task_ratelimit atomically safe under UML here, and are what datatype are they? (unsigned long)? The defininion of HZ will all in all decide what kind of multiplication and division we actually perform here; so let us hope it is not something like (signed char) >>>>> BUG_ON(pages_dirtied < 0); >>>>> BUG_ON(task_ratelimit < 0); These will never hit if pages_dirtied and task_ratelimit are unsigned. Stian Skjelstad ------------------------------------------------------------------------------ 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=60134071&iu=/4140/ostg.clktrk _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel