Thread (42 messages) flat view 42 messages, 5 authors, 2022-09-05

Re: [PATCH 2/2] vDPA: conditionally read fields in virtio-net dev

From: Zhu, Lingshan <hidden>
Date: 2022-08-18 07:58:40
Also in: kvm


On 8/18/2022 12:15 PM, Jason Wang wrote:
在 2022/8/17 18:37, Michael S. Tsirkin 写道:
quoted
On Wed, Aug 17, 2022 at 05:43:22PM +0800, Zhu, Lingshan wrote:
quoted
On 8/17/2022 5:39 PM, Michael S. Tsirkin wrote:
quoted
On Wed, Aug 17, 2022 at 05:13:59PM +0800, Zhu, Lingshan wrote:
quoted
On 8/17/2022 4:55 PM, Michael S. Tsirkin wrote:
quoted
On Wed, Aug 17, 2022 at 10:14:26AM +0800, Zhu, Lingshan wrote:
quoted
Yes it is a little messy, and we can not check _F_VERSION_1 
because of
transitional devices, so maybe this is the best we can do for now
I think vhost generally needs an API to declare config space 
endian-ness
to kernel. vdpa can reuse that too then.
Yes, I remember you have mentioned some IOCTL to set the endian-ness,
for vDPA, I think only the vendor driver knows the endian,
so we may need a new function vdpa_ops->get_endian().
In the last thread, we say maybe it's better to add a comment for 
now.
But if you think we should add a vdpa_ops->get_endian(), I can work
on it for sure!

Thanks
Zhu Lingshan
I think QEMU has to set endian-ness. No one else knows.
Yes, for SW based vhost it is true. But for HW vDPA, only
the device & driver knows the endian, I think we can not
"set" a hardware's endian.
QEMU knows the guest endian-ness and it knows that
device is accessed through the legacy interface.
It can accordingly send endian-ness to the kernel and
kernel can propagate it to the driver.

I wonder if we can simply force LE and then Qemu can do the endian 
conversion?
I think this is what we are doing now, force it to be LE, leave a comment.

QEMU will not set ENDIAN for vDPA devices, vhost_kernel_call() verifies
whether the backend is TYPE_KERNEL (we have TYPE_VDPA here),
so we can not rely on this code path.

Thanks
Zhu Lingshan
Thanks

quoted
quoted
So if you think we should add a vdpa_ops->get_endian(),
I will drop these comments in the next version of
series, and work on a new patch for get_endian().

Thanks,
Zhu Lingshan
Guests don't get endian-ness from devices so this seems pointless.
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help