[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] vl: Adjust the place of calling mlockall to
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v2] vl: Adjust the place of calling mlockall to speedup VM's startup |
Date: |
Fri, 26 Sep 2014 17:35:29 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.1.1 |
Il 26/09/2014 10:35, zhanghailiang ha scritto:
> Hi,
>
> This has been reviewed, Will anyone pick this up?;)
I think mst will. It's Jewish new year this week, so it will have to
wait for next week.
Paolo
> Thanks,
> zhanghailiang
> On 2014/9/23 18:42, zhanghailiang wrote:
>> If we configure mlock=on and memory policy=bind at the same time,
>> It will consume lots of time for system to treat with memory,
>> especially when call mbind behind mlockall.
>>
>> Adjust the place of calling mlockall, calling mbind before mlockall
>> can remarkably reduce the time of VM's startup.
>>
>> Acked-by: Michael S. Tsirkin <address@hidden>
>> Signed-off-by: zhanghailiang <address@hidden>
>> ---
>> v2:
>> - Add Acked-by
>> - change 'int' to 'bool' (Thanks Hu Tao)
>> ---
>> vl.c | 11 +++++------
>> 1 file changed, 5 insertions(+), 6 deletions(-)
>>
>> diff --git a/vl.c b/vl.c
>> index dc792fe..35e5de6 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -134,6 +134,7 @@ const char* keyboard_layout = NULL;
>> ram_addr_t ram_size;
>> const char *mem_path = NULL;
>> int mem_prealloc = 0; /* force preallocation of physical target
>> memory */
>> +bool enable_mlock = false;
>> int nb_nics;
>> NICInfo nd_table[MAX_NICS];
>> int autostart;
>> @@ -1421,12 +1422,8 @@ static void smp_parse(QemuOpts *opts)
>>
>> }
>>
>> -static void configure_realtime(QemuOpts *opts)
>> +static void realtime_init(void)
>> {
>> - bool enable_mlock;
>> -
>> - enable_mlock = qemu_opt_get_bool(opts, "mlock", true);
>> -
>> if (enable_mlock) {
>> if (os_mlock() < 0) {
>> fprintf(stderr, "qemu: locking memory failed\n");
>> @@ -3973,7 +3970,7 @@ int main(int argc, char **argv, char **envp)
>> if (!opts) {
>> exit(1);
>> }
>> - configure_realtime(opts);
>> + enable_mlock = qemu_opt_get_bool(opts, "mlock", true);
>> break;
>> case QEMU_OPTION_msg:
>> opts = qemu_opts_parse(qemu_find_opts("msg"),
>> optarg, 0);
>> @@ -4441,6 +4438,8 @@ int main(int argc, char **argv, char **envp)
>>
>> machine_class->init(current_machine);
>>
>> + realtime_init();
>> +
>> audio_init();
>>
>> cpu_synchronize_all_post_init();
>>
>
>
>
>