qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v4 25/26] tcg: Check for overflow via highwater


From: Richard Henderson
Subject: Re: [Qemu-devel] [PATCH v4 25/26] tcg: Check for overflow via highwater mark
Date: Thu, 1 Oct 2015 06:11:17 +1000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0

On 10/01/2015 02:50 AM, Aurelien Jarno wrote:
On 2015-09-30 15:09, Richard Henderson wrote:
We currently pre-compute an worst case code size for any TB, which
works out to be 122kB.  Since the average TB size is near 1kB, this
wastes quite a lot of storage.

The code generation buffer is currently computed as 1/4 of the guest
RAM in softmmu mode (so 32MB for the default 128MB of RAM) or 32MB in
user mode. 122kB is therefore less than 0.4% of waster memory, I am not
therefore sure we need to add so much code just for that.

BTW, I wonder if it is really a good idea to scale the code generation
buffer with the size of the RAM, as the two do not seem that related. It
happens that at some point we don't really increases performances
anymore, and always defining it as 32MB might actually be a good idea.
Personally I am using a patch that limits it to 128MB.

It depends on the guest and the workload I suppose.

For alpha, which almost never flushes the buffer, allocating 2GB to the guest (and thus 512MB to the buffer) seems to reach a nice steady-state during a guest gcc bootstrap where no more code generation is required.

If I were to limit the buffer to significantly less, as you're suggesting, I believe that the working set would overflow the buffer, requiring more code generation.

I guess I could always use -tb-size myself to override...



r~




reply via email to

[Prev in Thread] Current Thread [Next in Thread]