qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/1] block: add cache mode with direct IO and wi


From: Denis V. Lunev
Subject: Re: [Qemu-devel] [PATCH 1/1] block: add cache mode with direct IO and without flushes
Date: Mon, 19 Sep 2016 13:29:38 +0300
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.2.0

On 09/16/2016 11:22 AM, Kevin Wolf wrote:
> Am 16.09.2016 um 10:15 hat Denis V. Lunev geschrieben:
>> On 09/16/2016 11:08 AM, Kevin Wolf wrote:
>>> Am 15.09.2016 um 18:39 hat Denis V. Lunev geschrieben:
>>>> On 09/15/2016 07:09 PM, Kevin Wolf wrote:
>>>>> Am 15.09.2016 um 15:19 hat Denis V. Lunev geschrieben:
>>>>>> This mode could be very useful for flush bottlenecks evaluation and for
>>>>>> running non-persistent VMs, when host crash is considered not fatal.
>>>>>>
>>>>>> Signed-off-by: Denis V. Lunev <address@hidden>
>>>>>> CC: Kevin Wolf <address@hidden>
>>>>>> CC: Max Reitz <address@hidden>
>>>>> Why not just specify the individual options?
>>>>>
>>>>>     -drive file=...,cache.direct=on,cache.no-flush=on
>>>>>
>>>>> Kevin
>>>> then we need to have three options:
>>>>   cache.direct=on/off
>>>>   cache.flush=on/off (default on)
>>>>   cache.writethrough=on/off
>>>> What will have preference, old style option, new style option, rightmost
>>>> option?
>>> The individual options take precedence, see the code that handles the
>>> "cache=..." option in drive_init():
>>>
>>>     value = qemu_opt_get(all_opts, "cache");
>>>     if (value) {
>>>         int flags = 0;
>>>         bool writethrough;
>>>
>>>         if (bdrv_parse_cache_mode(value, &flags, &writethrough) != 0) {
>>>             error_report("invalid cache option");
>>>             return NULL;
>>>         }
>>>
>>>         /* Specific options take precedence */
>>>         if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_WB)) {
>>>             qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_WB,
>>>                               !writethrough, &error_abort);
>>>         }
>>>         if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_DIRECT)) {
>>>             qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_DIRECT,
>>>                               !!(flags & BDRV_O_NOCACHE), &error_abort);
>>>         }
>>>         if (!qemu_opt_get(all_opts, BDRV_OPT_CACHE_NO_FLUSH)) {
>>>             qemu_opt_set_bool(all_opts, BDRV_OPT_CACHE_NO_FLUSH,
>>>                               !!(flags & BDRV_O_NO_FLUSH), &error_abort);
>>>         }
>>>         qemu_opt_unset(all_opts, "cache");
>>>     }
>>>
>>> Kevin
>> thank for an idea!
> Just to be clear, everything that I mentioned is working today, so it's
> not just an idea that still needs to implemented.
>
> You just need to check the actual names of the options. Instead of your
> proposed writethrough/flush options, we have the reversed options
> writeback/no-flush.
>
> Kevin
oops, I have missed that. Thank you very much

Den



reply via email to

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