[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] CPUArchState: introduce per-cpu lock
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] CPUArchState: introduce per-cpu lock |
Date: |
Mon, 25 Jun 2012 11:04:09 +0100 |
On Sun, Jun 24, 2012 at 3:05 PM, liu ping fan <address@hidden> wrote:
> On Fri, Jun 22, 2012 at 8:36 PM, Stefan Hajnoczi <address@hidden> wrote:
>> On Thu, Jun 21, 2012 at 4:06 PM, Liu Ping Fan <address@hidden> wrote:
>>> diff --git a/cpu-defs.h b/cpu-defs.h
>>> index f49e950..7305822 100644
>>> --- a/cpu-defs.h
>>> +++ b/cpu-defs.h
>>> @@ -30,6 +30,7 @@
>>> #include "osdep.h"
>>> #include "qemu-queue.h"
>>> #include "targphys.h"
>>> +#include "qemu-thread-posix.h"
>>
>> This breaks Windows, you need qemu-thread.h.
>>
>>>
>>> #ifndef TARGET_LONG_BITS
>>> #error TARGET_LONG_BITS must be defined before including this header
>>> @@ -220,6 +221,7 @@ typedef struct CPUWatchpoint {
>>> CPU_COMMON_THREAD \
>>> struct QemuCond *halt_cond; \
>>> int thread_kicked; \
>>> + struct QemuMutex *cpu_lock; \
>>
>> It would be nicer to declare it QemuMutex cpu_lock (no pointer) so
>> that you don't need to worry about malloc/free.
>>
> Yes :), I have considered about it, and not quite sure. But I figure
> out the lock for per-device to break BQL will be like this for some
> reason.
> After all, have not decided yet.
Start simple. If you need it to be a pointer later that's fine but
for now I see no reason to do the malloc (especially since there is no
free!).
>>> diff --git a/main-loop.h b/main-loop.h
>>> index dce1cd9..d8d44a4 100644
>>> --- a/main-loop.h
>>> +++ b/main-loop.h
>>> @@ -323,6 +323,9 @@ void qemu_bh_delete(QEMUBH *bh);
>>> int qemu_add_child_watch(pid_t pid);
>>> #endif
>>>
>>> +void qemu_mutex_lock_cpu(void *_env);
>>> +void qemu_mutex_unlock_cpu(void *_env);
>>
>> Why void* instead of CPUArchState*?
>>
> Because we can hide the CPUArchState from apic.c
There's probably a nicer way of doing that than void*.
Stefan
[Qemu-devel] [PATCH 2/2] kvm: use per-cpu lock to free vcpu thread out of the big lock, Liu Ping Fan, 2012/06/21