qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC PATCH v7 12/21] replay: recording and replaying cl


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC PATCH v7 12/21] replay: recording and replaying clock ticks
Date: Mon, 19 Jan 2015 12:51:45 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.3.0


On 16/01/2015 09:03, Pavel Dovgaluk wrote:
> There is one problem with protecting log file inside the replay code.
> We probably should have the following sequence of calls:
> 
> lock_replay_mutex
> replay_save_events
>     replay_run_event
> unlock_replay_mutex
> 
> But replay_run_event can also generate some log events and we will have 
> deadlock here.
> That is why we rely on global mutex.

I think replay_run_event should run with the lock _not_ taken, that is:

    qemu_mutex_lock(&lock);
    while (!QTAILQ_EMPTY(&events_list)) {
        Event *event = QTAILQ_FIRST(&events_list);
        QTAILQ_REMOVE(&events_list, event, events);
        qemu_mutex_unlock(&lock);
        replay_run_event(event);
        g_free(event);
        qemu_mutex_lock(&lock);
    }
    qemu_mutex_unlock(&lock);

Paolo



reply via email to

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