mbox series

[RFC,0/5] NVMe passthrough: Support 64kB page host

Message ID 20201015115252.15582-1-eric.auger@redhat.com
Headers show
Series NVMe passthrough: Support 64kB page host | expand

Message

Eric Auger Oct. 15, 2020, 11:52 a.m. UTC
This series allows NVMe passthrough on aarch64 with 64kB page host.
Addresses and sizes of buffers which are VFIO DMA mapped are
aligned with the host page size.

nvme_register_buf() path is taken care of in this series
but it does not seem to prevent the use case from working.

Best Regards

Eric

This series can be found at:
https://github.com/eauger/qemu/tree/nvme_64k_rfc

This was tested on ARM only.

Eric Auger (5):
  block/nvme: use some NVME_CAP_* macros
  block/nvme: Change size and alignment of IDENTIFY response buffer
  block/nvme: Change size and alignment of queue
  block/nvme: Change size and alignment of prp_list_pages
  block/nvme: Align iov's va and size on host page size

 block/nvme.c | 43 +++++++++++++++++++++++--------------------
 1 file changed, 23 insertions(+), 20 deletions(-)

Comments

Philippe Mathieu-Daudé Oct. 15, 2020, 1:49 p.m. UTC | #1
On 10/15/20 1:52 PM, Eric Auger wrote:
> This series allows NVMe passthrough on aarch64 with 64kB page host.

> Addresses and sizes of buffers which are VFIO DMA mapped are

> aligned with the host page size.

> 

> nvme_register_buf() path is taken care of in this series

> but it does not seem to prevent the use case from working.

> 

> Best Regards

> 

> Eric

> 

> This series can be found at:

> https://github.com/eauger/qemu/tree/nvme_64k_rfc

> 

> This was tested on ARM only.

> 

> Eric Auger (5):

>    block/nvme: use some NVME_CAP_* macros

>    block/nvme: Change size and alignment of IDENTIFY response buffer

>    block/nvme: Change size and alignment of queue

>    block/nvme: Change size and alignment of prp_list_pages

>    block/nvme: Align iov's va and size on host page size


Since it is easier for me to rebase on top of your series,
I'm including it in my work (fixing the checkpatch errors)
and will repost block/nvme/ patches altogether.

Regards,

Phil.
Eric Auger Oct. 15, 2020, 4:15 p.m. UTC | #2
Hi Philippe,

On 10/15/20 3:49 PM, Philippe Mathieu-Daudé wrote:
> On 10/15/20 1:52 PM, Eric Auger wrote:

>> This series allows NVMe passthrough on aarch64 with 64kB page host.

>> Addresses and sizes of buffers which are VFIO DMA mapped are

>> aligned with the host page size.

>>

>> nvme_register_buf() path is taken care of in this series

>> but it does not seem to prevent the use case from working.

>>

>> Best Regards

>>

>> Eric

>>

>> This series can be found at:

>> https://github.com/eauger/qemu/tree/nvme_64k_rfc

>>

>> This was tested on ARM only.

>>

>> Eric Auger (5):

>>    block/nvme: use some NVME_CAP_* macros

>>    block/nvme: Change size and alignment of IDENTIFY response buffer

>>    block/nvme: Change size and alignment of queue

>>    block/nvme: Change size and alignment of prp_list_pages

>>    block/nvme: Align iov's va and size on host page size

> 

> Since it is easier for me to rebase on top of your series,

> I'm including it in my work (fixing the checkpatch errors)

> and will repost block/nvme/ patches altogether.


There should be one warning (line exceeding 80 chars) but no error. I
can easily rebase/respin if you prefer.

Thanks

Eric
> 

> Regards,

> 

> Phil.

> 

>
Philippe Mathieu-Daudé Oct. 15, 2020, 6:01 p.m. UTC | #3
On 10/15/20 6:15 PM, Auger Eric wrote:
> Hi Philippe,

> 

> On 10/15/20 3:49 PM, Philippe Mathieu-Daudé wrote:

>> On 10/15/20 1:52 PM, Eric Auger wrote:

>>> This series allows NVMe passthrough on aarch64 with 64kB page host.

>>> Addresses and sizes of buffers which are VFIO DMA mapped are

>>> aligned with the host page size.

>>>

>>> nvme_register_buf() path is taken care of in this series

>>> but it does not seem to prevent the use case from working.

>>>

>>> Best Regards

>>>

>>> Eric

>>>

>>> This series can be found at:

>>> https://github.com/eauger/qemu/tree/nvme_64k_rfc

>>>

>>> This was tested on ARM only.

>>>

>>> Eric Auger (5):

>>>     block/nvme: use some NVME_CAP_* macros

>>>     block/nvme: Change size and alignment of IDENTIFY response buffer

>>>     block/nvme: Change size and alignment of queue

>>>     block/nvme: Change size and alignment of prp_list_pages

>>>     block/nvme: Align iov's va and size on host page size

>>

>> Since it is easier for me to rebase on top of your series,

>> I'm including it in my work (fixing the checkpatch errors)

>> and will repost block/nvme/ patches altogether.

> 

> There should be one warning (line exceeding 80 chars) but no error. I

> can easily rebase/respin if you prefer.


Yes, warnings, no error. No need to respin.

> 

> Thanks

> 

> Eric

>>

>> Regards,

>>

>> Phil.

>>

>>

>