On 2011-08-01 21:57, Jan Kiszka wrote:
> On 2011-08-01 21:26, Anthony PERARD wrote:
>> The code_gen_buffer is not use by Xen and can be really big (several
>> GB). Even if the host RAM is not used, this buffer just burn the address
>> space of the QEMU process.
>>
>> So to "avoid" this allocation, the asked tb_size is set to the minimum.
>>
>> The other way to do that would be to not call code_gen_alloc when Xen is
>> enabled.
>>
>> Signed-off-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
>> ---
>> vl.c | 8 ++++++++
>> 1 files changed, 8 insertions(+), 0 deletions(-)
>>
>> diff --git a/vl.c b/vl.c
>> index d8c7c01..bd60a89 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -3106,6 +3106,14 @@ int main(int argc, char **argv, char **envp)
>> }
>> }
>>
>> + if (xen_enabled()) {
>> + /* Allocate only the minimum amount of memory for the
>> code_gen_buffer.
>> + * Xen does not use it and we need the virtual address space for the
>> + * MapCache.
>> + */
>> + tb_size = 1;
>> + }
>> +
>
> The same applies to kvm, please generalize.
Actually, qemu-kvm avoids this overhead today by making code_gen_alloc
return immediately when kvm is on. Also not very beautiful.
Can't we simply skip cpu_exec_init_all for any accel != TCG, e.g. by
moving that call to tcg_init?
Jan
--
Siemens AG, Corporate Technology, CT T DE IT 1
Corporate Competence Center Embedded Linux
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|