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

Reply via email to