[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 0/6] block: Add VFIO based driver for NVMe de
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH v3 0/6] block: Add VFIO based driver for NVMe device |
Date: |
Thu, 6 Jul 2017 16:44:29 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 |
On 06/07/2017 16:36, Fam Zheng wrote:
> On Thu, 07/06 16:22, Paolo Bonzini wrote:
>>
>>
>> On 06/07/2017 16:06, address@hidden wrote:
>>> ERROR: Use of volatile is usually wrong: see
>>> Documentation/volatile-considered-harmful.txt
>>> #843: FILE: block/nvme.c:40:
>>> + volatile uint32_t *doorbell;
>>>
>>> ERROR: Use of volatile is usually wrong: see
>>> Documentation/volatile-considered-harmful.txt
>>> #869: FILE: block/nvme.c:66:
>>> +typedef volatile struct {
>>
>> Indeed volatile should not be necessary, since we use memory barriers
>> appropriately. But these are hardware registers (like, host hardware)
>> so I guess it's okay for this special case.
>
> I think I used it because we don't have ACCESS_ONCE (maybe we should?).
We have atomic_read and atomic_set (and Linux in fact tries not to use
ACCESS_ONCE anymore, it's been replaced by READ_ONCE and WRITE_ONCE so
it's really 1:1 with QEMU).
Paolo
- Re: [Qemu-devel] [PATCH v3 4/6] block/nvme: Implement .bdrv_dma_map and .bdrv_dma_unmap, (continued)