Jason Wang
2020-Aug-06 07:27 UTC
[PATCH v2 19/24] vdpa: make sure set_features in invoked for legacy
On 2020/8/6 ??1:53, Michael S. Tsirkin wrote:> On Thu, Aug 06, 2020 at 11:23:05AM +0800, Jason Wang wrote: >> On 2020/8/5 ??7:40, Michael S. Tsirkin wrote: >>> On Wed, Aug 05, 2020 at 02:14:07PM +0800, Jason Wang wrote: >>>> On 2020/8/4 ??5:00, Michael S. Tsirkin wrote: >>>>> Some legacy guests just assume features are 0 after reset. >>>>> We detect that config space is accessed before features are >>>>> set and set features to 0 automatically. >>>>> Note: some legacy guests might not even access config space, if this is >>>>> reported in the field we might need to catch a kick to handle these. >>>> I wonder whether it's easier to just support modern device? >>>> >>>> Thanks >>> Well hardware vendors are I think interested in supporting legacy >>> guests. Limiting vdpa to modern only would make it uncompetitive. >> >> My understanding is that, IOMMU_PLATFORM is mandatory for hardware vDPA to >> work. > Hmm I don't really see why. Assume host maps guest memory properly, > VM does not have an IOMMU, legacy guest can just work.Yes, guest may not set IOMMU_PLATFORM.> > Care explaining what's wrong with this picture?The problem is virtio_vdpa, without IOMMU_PLATFORM it uses PA which can not work if IOMMU is enabled. Thanks> > >> So it can only work for modern device ... >> >> Thanks >> >> >>> >>>
Michael S. Tsirkin
2020-Aug-06 10:00 UTC
[PATCH v2 19/24] vdpa: make sure set_features in invoked for legacy
On Thu, Aug 06, 2020 at 03:27:38PM +0800, Jason Wang wrote:> > On 2020/8/6 ??1:53, Michael S. Tsirkin wrote: > > On Thu, Aug 06, 2020 at 11:23:05AM +0800, Jason Wang wrote: > > > On 2020/8/5 ??7:40, Michael S. Tsirkin wrote: > > > > On Wed, Aug 05, 2020 at 02:14:07PM +0800, Jason Wang wrote: > > > > > On 2020/8/4 ??5:00, Michael S. Tsirkin wrote: > > > > > > Some legacy guests just assume features are 0 after reset. > > > > > > We detect that config space is accessed before features are > > > > > > set and set features to 0 automatically. > > > > > > Note: some legacy guests might not even access config space, if this is > > > > > > reported in the field we might need to catch a kick to handle these. > > > > > I wonder whether it's easier to just support modern device? > > > > > > > > > > Thanks > > > > Well hardware vendors are I think interested in supporting legacy > > > > guests. Limiting vdpa to modern only would make it uncompetitive. > > > > > > My understanding is that, IOMMU_PLATFORM is mandatory for hardware vDPA to > > > work. > > Hmm I don't really see why. Assume host maps guest memory properly, > > VM does not have an IOMMU, legacy guest can just work. > > > Yes, guest may not set IOMMU_PLATFORM. > > > > > > Care explaining what's wrong with this picture? > > > The problem is virtio_vdpa, without IOMMU_PLATFORM it uses PA which can not > work if IOMMU is enabled. > > ThanksSo that's a virtio_vdpa limitation. In the same way, if a device does not have an on-device iommu *and* is not behind an iommu, then vdpa can't bind to it. But this virtio_vdpa specific hack does not belong in a generic vdpa code.> > > > > > > > So it can only work for modern device ... > > > > > > Thanks > > > > > > > > > > > > > >
Jason Wang
2020-Aug-07 03:00 UTC
[PATCH v2 19/24] vdpa: make sure set_features in invoked for legacy
On 2020/8/6 ??6:00, Michael S. Tsirkin wrote:> On Thu, Aug 06, 2020 at 03:27:38PM +0800, Jason Wang wrote: >> On 2020/8/6 ??1:53, Michael S. Tsirkin wrote: >>> On Thu, Aug 06, 2020 at 11:23:05AM +0800, Jason Wang wrote: >>>> On 2020/8/5 ??7:40, Michael S. Tsirkin wrote: >>>>> On Wed, Aug 05, 2020 at 02:14:07PM +0800, Jason Wang wrote: >>>>>> On 2020/8/4 ??5:00, Michael S. Tsirkin wrote: >>>>>>> Some legacy guests just assume features are 0 after reset. >>>>>>> We detect that config space is accessed before features are >>>>>>> set and set features to 0 automatically. >>>>>>> Note: some legacy guests might not even access config space, if this is >>>>>>> reported in the field we might need to catch a kick to handle these. >>>>>> I wonder whether it's easier to just support modern device? >>>>>> >>>>>> Thanks >>>>> Well hardware vendors are I think interested in supporting legacy >>>>> guests. Limiting vdpa to modern only would make it uncompetitive. >>>> My understanding is that, IOMMU_PLATFORM is mandatory for hardware vDPA to >>>> work. >>> Hmm I don't really see why. Assume host maps guest memory properly, >>> VM does not have an IOMMU, legacy guest can just work. >> >> Yes, guest may not set IOMMU_PLATFORM. >> >> >>> Care explaining what's wrong with this picture? >> >> The problem is virtio_vdpa, without IOMMU_PLATFORM it uses PA which can not >> work if IOMMU is enabled. >> >> Thanks > So that's a virtio_vdpa limitation.Probably not, I think this goes back to the long debate of whether to use DMA API unconditionally. If we did that, we can support legacy virtio driver. The vDPA device needs to provide a DMA device and the virtio core and perform DMA API with that device which should work for all of the cases. But a big question is, do upstream care about out of tree virtio drivers? Thanks> In the same way, if a device > does not have an on-device iommu *and* is not behind an iommu, > then vdpa can't bind to it. > > But this virtio_vdpa specific hack does not belong in a generic vdpa code. > >>> >>>> So it can only work for modern device ... >>>> >>>> Thanks >>>> >>>> >>>>>
Maybe Matching Threads
- [PATCH v2 19/24] vdpa: make sure set_features in invoked for legacy
- [PATCH v2 19/24] vdpa: make sure set_features in invoked for legacy
- [PATCH v2 19/24] vdpa: make sure set_features in invoked for legacy
- [PATCH v2 19/24] vdpa: make sure set_features in invoked for legacy
- [PATCH v2 19/24] vdpa: make sure set_features in invoked for legacy