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
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel