> From: Jason Wang <[email protected]> > Sent: Monday, May 15, 2023 1:12 AM > > 在 2023/5/11 22:31, Parav Pandit 写道: > >> From: Jason Wang <[email protected]> > >> Sent: Thursday, May 11, 2023 3:17 AM > >>> a configq/cmdq discussion is for new features for PF, VF, and > >>> SF/SIOV devices to work in _non_ backward compatible way, because > >>> for new features there is no such thing as backward compatibility > >>> between guest driver and the device. > >> Ok, so what command did configq/cmdq have? > >> I thought it was similar to transport virtqueue, but it looks more like a > control virtqueue here. > > Yes, it is more like a cvq to do device attributes discovery and > > configuration. > > Just that its generic enough. > > For example > > creating VQ that spans multiple physical addresses. > > Discovery and enabling new device attributes which are rarely accessed or > accessed during device init/cleanup time. > > > > The fundamental difference between cfgvq to tvq is: > > Cfgvq is between the member virtio device and its driver. > > Tvq=aq is on group owner of the virtio device. > > > >>>>> Compatibility is coming at a cost which is not scaling. > >>>>> If you attempt to scale, it breaks the future path forward to go > >>>>> without > >> mediation. > >>>>>>> So eve growing these fields and optionally placement on configq > >>>>>>> doesn't really help and device builder to build it efficiently > >>>>>>> (without much predictability). > >>>>>> Config queue is not the only choice, we have a lot of other > >>>>>> choices (for example PASID may help to reduce the on-chip resources). > >>>>>> > >>>>> PASID is for process isolation security construct, it is not for > transportation. > >>>> I meant with PASID you don't even need a BAR. > >>>> > >>> Not sure I fully understand, but my guess is, this is coming from > >>> mediation thought process. > >> Not actually. I meant, for example without PASID, for modern devices, > >> the common cfg structure must be placed on a BAR through MMIO. > >> > >> But with the help of PASID, it could stay in the memory and the > >> device can fetch it via DMA. The help to reduce the resources for > >> registers. > >> > > Yes, it can stay in memory and device can fetch via DMA using a VQ using its > own q from guest driver. > > Why does it need PASID? > > > Let me clarify my understanding. > > If we want a per VF virtqueue that is used by the hypervisor. We need PASID. > Otherwise not.
Yes, we are on same page, only when such device is mediated by hypervisor. Without mediation PASID is not required.
