[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue
From: |
Xie, Huawei |
Subject: |
Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue? |
Date: |
Wed, 28 Aug 2013 15:30:02 +0000 |
I know it is PFN, that is why I want to use the high 12bit for combined write
in another reply, to fully address 64 bit address.
Is the 16TB address space what it is originally designed for? If it is, that
will basically solve the problem. I will try later.
Thanks for reminder
-----Original Message-----
From: Laszlo Ersek [mailto:address@hidden
Sent: Wednesday, August 28, 2013 7:46 PM
To: Xie, Huawei
Cc: Stefan Hajnoczi; address@hidden; address@hidden; Stefan Hajnoczi
Subject: Re: [Qemu-devel] Would virtio support 64 bit address for vring
virtqueue?
On 08/28/13 11:22, Xie, Huawei wrote:
> Hi Stefan:
> I think you mention the descriptor address? I mean the vring PFN register.
> /* A 32-bit r/w PFN for the currently selected queue */
> #define VIRTIO_PCI_QUEUE_PFN 8
>
> And the linux driver sample code:
> iowrite32(virt_to_phys(info->queue) >> VIRTIO_PCI_QUEUE_ADDR_SHIFT,
> vp_dev->ioaddr + VIRTIO_PCI_QUEUE_PFN);
>
> -----Original Message-----
> From: Stefan Hajnoczi [mailto:address@hidden
> Sent: Wednesday, August 28, 2013 4:07 PM
> To: Xie, Huawei
> Cc: address@hidden; address@hidden; Stefan Hajnoczi
> Subject: Re: [Qemu-devel] Would virtio support 64 bit address for vring
> virtqueue?
>
> On Wed, Aug 28, 2013 at 03:18:39AM +0000, Xie, Huawei wrote:
>> I am developing virtio user space poll mode network driver. We allocate
>> vring physical memory from huge page. On VMs with less than 4GB memory, it
>> works well. But on VMs with like 8GB memory, huge page are all allocated
>> from high end memory.
>> So would virtio support 64bit address for vring virtqueue?
>
> The vring takes guest physical addresses and the C type is __u64 (see
> /usr/include/linux/virtio_ring.h). 64-bit addresses are fine.
If you mean Queue Address field in the Virtio Header (section 2.2.2 in the
virtio-0.9.5 specification), then please see 2.3 Virtqueue Configuration, step
3. You have to divide the guest-phys address by 4096 and store the quotient.
The Queue Address field takes a page frame number, not a page frame address.
This allows it to address up to 2^32 * 4096 == 16T bytes of RAM.
Laszlo
- [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Xie, Huawei, 2013/08/27
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Stefan Hajnoczi, 2013/08/28
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Xie, Huawei, 2013/08/28
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Laszlo Ersek, 2013/08/28
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Christian Borntraeger, 2013/08/28
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?,
Xie, Huawei <=
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Anthony Liguori, 2013/08/28
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, H. Peter Anvin, 2013/08/28
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Anthony Liguori, 2013/08/28
- Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Richard Henderson, 2013/08/28
Re: [Qemu-devel] Would virtio support 64 bit address for vring virtqueue?, Xie, Huawei, 2013/08/28