qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 1/2] Vring: vring's listener's priority should h


From: liu ping fan
Subject: Re: [Qemu-devel] [PATCH 1/2] Vring: vring's listener's priority should higher than kvm
Date: Thu, 9 May 2013 16:54:53 +0800

On Thu, May 9, 2013 at 4:44 PM, Michael S. Tsirkin <address@hidden> wrote:
> On Thu, May 09, 2013 at 08:40:21AM +0800, Liu Ping Fan wrote:
>> From: Liu Ping Fan <address@hidden>
>>
>> Hosts threads which handle vring should have high MemoryListener priority
>> than kvm. For currently code, take the following scenario:
>>   kvm_region_add() run earlier before vhost_region_add(), then in guest,
>> vring's desc[i] can refer to addressX in the new region known by guest.
>> But vhost does not know this new region yet, and the vring handler will
>> fail.
>>
>> Signed-off-by: Liu Ping Fan <address@hidden>
>
> Is this seen in testing, or are you describing a theorecitical
> scenario? Please make this clear in the commit log.
>
A  theorecitical scenario.  I think vcpu thread and vhost are async,
so we need this method to sync.
>> ---
>>  hw/virtio/dataplane/hostmem.c |    2 +-
>>  hw/virtio/vhost.c             |    2 +-
>>  2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/hw/virtio/dataplane/hostmem.c b/hw/virtio/dataplane/hostmem.c
>> index 37292ff..67cbce1 100644
>> --- a/hw/virtio/dataplane/hostmem.c
>> +++ b/hw/virtio/dataplane/hostmem.c
>> @@ -158,7 +158,7 @@ void hostmem_init(HostMem *hostmem)
>>          .eventfd_del = hostmem_listener_eventfd_dummy,
>>          .coalesced_mmio_add = hostmem_listener_coalesced_mmio_dummy,
>>          .coalesced_mmio_del = hostmem_listener_coalesced_mmio_dummy,
>> -        .priority = 10,
>> +        .priority = 9,
>>      };
>>
>>      memory_listener_register(&hostmem->listener, &address_space_memory);
>> diff --git a/hw/virtio/vhost.c b/hw/virtio/vhost.c
>> index fbabf99..91c313b 100644
>> --- a/hw/virtio/vhost.c
>> +++ b/hw/virtio/vhost.c
>> @@ -856,7 +856,7 @@ int vhost_dev_init(struct vhost_dev *hdev, int devfd, 
>> const char *devpath,
>>          .log_global_stop = vhost_log_global_stop,
>>          .eventfd_add = vhost_eventfd_add,
>>          .eventfd_del = vhost_eventfd_del,
>> -        .priority = 10
>> +        .priority = 9
>>      };
>>      hdev->mem = g_malloc0(offsetof(struct vhost_memory, regions));
>>      hdev->n_mem_sections = 0;
>> --
>> 1.7.4.4



reply via email to

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