[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operati
From: |
John Snow |
Subject: |
Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation |
Date: |
Fri, 14 Sep 2018 10:00:53 -0400 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
On 09/14/2018 01:48 AM, Pavel Dovgalyuk wrote:
>> From: John Snow [mailto:address@hidden
>> On 09/12/2018 04:19 AM, Pavel Dovgalyuk wrote:
>>> This patch makes IDE trim BH deterministic, because it affects
>>> the device state. Therefore its invocation should be replayed
>>> instead of running at the random moment.
>>>
>>> Signed-off-by: Pavel Dovgalyuk <address@hidden>
>>> Reviewed-by: Paolo Bonzini <address@hidden>
>>> ---
>>> hw/ide/core.c | 3 ++-
>>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/hw/ide/core.c b/hw/ide/core.c
>>> index 2c62efc..04e22e7 100644
>>> --- a/hw/ide/core.c
>>> +++ b/hw/ide/core.c
>>> @@ -35,6 +35,7 @@
>>> #include "sysemu/block-backend.h"
>>> #include "qapi/error.h"
>>> #include "qemu/cutils.h"
>>> +#include "sysemu/replay.h"
>>>
>>> #include "hw/ide/internal.h"
>>> #include "trace.h"
>>> @@ -479,7 +480,7 @@ static void ide_issue_trim_cb(void *opaque, int ret)
>>> done:
>>> iocb->aiocb = NULL;
>>> if (iocb->bh) {
>>> - qemu_bh_schedule(iocb->bh);
>>> + replay_bh_schedule_event(iocb->bh);
>>> }
>>> }
>>>
>> Just passing by: Why do we need to change this call, but nothing else in
>> IDE?
>
> This call is responsible for a bug that was reproducible.
>
>> I don't mind conceptually, but it's odd to me that of all the calls I
>> make in this emulator that change state somewhere that this is the only
>> one you need to hijack for the replay feature.
>>
>> Is this a necessarily complete change?
>
> Maybe not. We can hardly analyze all peripheral devices code and fix all the
> calls.
> But I think we can improve that patch and at least look through ide core to
> fix other calls.
>
> Pavel Dovgalyuk
>
It just seems odd that if you're working on a replay mechanism that
requires you to intercept my QEMU API calls that you're only changing a
trim callback.
I'd kind of expect that you don't need to intercept any, unless these
are legacy calls that I shouldn't be making at all and you have a more
generic intercept somewhere deeper in the codebase.
In that case, I really ought to hustle off of my use of legacy calls.
What are the criteria for things you need to intercept/wrap?
- [Qemu-devel] [PATCH v6 20/25] replay: wake up vCPU when replaying, (continued)
- [Qemu-devel] [PATCH v6 20/25] replay: wake up vCPU when replaying, Pavel Dovgalyuk, 2018/09/12
- [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, Pavel Dovgalyuk, 2018/09/12
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, John Snow, 2018/09/13
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, Pavel Dovgalyuk, 2018/09/14
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, Pavel Dovgalyuk, 2018/09/14
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, John Snow, 2018/09/14
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, Pavel Dovgalyuk, 2018/09/17
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, John Snow, 2018/09/17
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation,
John Snow <=
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, Paolo Bonzini, 2018/09/14
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, Peter Maydell, 2018/09/14
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, Pavel Dovgalyuk, 2018/09/17
- Re: [Qemu-devel] [PATCH v6 21/25] replay: replay BH for IDE trim operation, Paolo Bonzini, 2018/09/17
[Qemu-devel] [PATCH v6 22/25] replay: add BH oneshot event for block layer, Pavel Dovgalyuk, 2018/09/12
[Qemu-devel] [PATCH v6 23/25] timer: introduce new virtual clock, Pavel Dovgalyuk, 2018/09/12