[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] issues of region cache and iommu reset
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] issues of region cache and iommu reset |
Date: |
Thu, 30 Mar 2017 11:02:02 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
On 29/03/2017 23:28, Michael S. Tsirkin wrote:
>> Something like this?
>>
>> diff --git a/hw/virtio/virtio.c b/hw/virtio/virtio.c
>> index 03592c5..73e69ac 100644
>> --- a/hw/virtio/virtio.c
>> +++ b/hw/virtio/virtio.c
>> @@ -176,6 +176,10 @@ err_used:
>> address_space_cache_destroy(&new->desc);
>> err_desc:
>> g_free(new);
>> + atomic_rcu_set(&vq->vring.caches, NULL);
>> + if (old) {
>> + call_rcu(old, virtio_free_region_cache, rcu);
>> + }
>> }
>>
>> /* virt queue functions */
> I would be worried about call_rcu here - this means
> something can hang on to and use the old cache,
> and reset really must act as a sync/flush point.
The flush is done later in virtio_reset. Here it's just reacting
asynchronously to the IOMMU reset.
I'm thinking of adding a global generation count for IOMMU mappings, and
forcing an update when the IOMMU mappings have changed.
Paolo
- Re: [Qemu-devel] issues of region cache and iommu reset, (continued)
- Re: [Qemu-devel] issues of region cache and iommu reset, Paolo Bonzini, 2017/03/29
- Re: [Qemu-devel] issues of region cache and iommu reset, Jason Wang, 2017/03/29
- Re: [Qemu-devel] issues of region cache and iommu reset, Paolo Bonzini, 2017/03/29
- Re: [Qemu-devel] issues of region cache and iommu reset, Jason Wang, 2017/03/29
- Re: [Qemu-devel] issues of region cache and iommu reset, Michael S. Tsirkin, 2017/03/29
- Re: [Qemu-devel] issues of region cache and iommu reset, Cornelia Huck, 2017/03/29
- Re: [Qemu-devel] issues of region cache and iommu reset, Michael S. Tsirkin, 2017/03/29
- Re: [Qemu-devel] issues of region cache and iommu reset,
Paolo Bonzini <=
- Re: [Qemu-devel] issues of region cache and iommu reset, Peter Xu, 2017/03/29