On Wed, Sep 2, 2020 at 3:15 PM Vivek Goyal <vgo...@redhat.com> wrote:
> Hi Gurchetan, > > Now Miklos has queued, these tree virtio patches for shared memory > region in his tree as part of virtiofs dax patch series. > > I am hoping this will get merged in 5.10 through his tree. > > > https://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse.git/log/?h=dax Terrific ... ! Maybe we can queue the version Miklos has in drm-misc-next to avoid merge conflicts ?!? There's a few checkpatch --strict fixes in the blob version, but I doubt anyone cares. > > Thanks > Vivek > > On Wed, Sep 02, 2020 at 02:08:28PM -0700, Gurchetan Singh wrote: > > From: Sebastien Boeuf <sebastien.bo...@intel.com> > > > > Virtio defines 'shared memory regions' that provide a continuously > > shared region between the host and guest. > > > > Provide a method to find a particular region on a device. > > > > Signed-off-by: Sebastien Boeuf <sebastien.bo...@intel.com> > > Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > > Acked-by: Michael S. Tsirkin <m...@redhat.com> > > Cc: k...@vger.kernel.org > > Cc: virtualizat...@lists.linux-foundation.org > > Cc: "Michael S. Tsirkin" <m...@redhat.com> > > --- > > include/linux/virtio_config.h | 17 +++++++++++++++++ > > 1 file changed, 17 insertions(+) > > > > diff --git a/include/linux/virtio_config.h > b/include/linux/virtio_config.h > > index 8fe857e27ef32..4b8e38c5c4d8c 100644 > > --- a/include/linux/virtio_config.h > > +++ b/include/linux/virtio_config.h > > @@ -11,6 +11,11 @@ > > > > struct irq_affinity; > > > > +struct virtio_shm_region { > > + u64 addr; > > + u64 len; > > +}; > > + > > /** > > * virtio_config_ops - operations for configuring a virtio device > > * Note: Do not assume that a transport implements all of the operations > > @@ -66,6 +71,7 @@ struct irq_affinity; > > * the caller can then copy. > > * @set_vq_affinity: set the affinity for a virtqueue (optional). > > * @get_vq_affinity: get the affinity for a virtqueue (optional). > > + * @get_shm_region: get a shared memory region based on the index. > > */ > > typedef void vq_callback_t(struct virtqueue *); > > struct virtio_config_ops { > > @@ -89,6 +95,8 @@ struct virtio_config_ops { > > const struct cpumask *cpu_mask); > > const struct cpumask *(*get_vq_affinity)(struct virtio_device > *vdev, > > int index); > > + bool (*get_shm_region)(struct virtio_device *vdev, > > + struct virtio_shm_region *region, u8 id); > > }; > > > > /* If driver didn't advertise the feature, it will never appear. */ > > @@ -251,6 +259,15 @@ int virtqueue_set_affinity(struct virtqueue *vq, > const struct cpumask *cpu_mask) > > return 0; > > } > > > > +static inline > > +bool virtio_get_shm_region(struct virtio_device *vdev, > > + struct virtio_shm_region *region, u8 id) > > +{ > > + if (!vdev->config->get_shm_region) > > + return false; > > + return vdev->config->get_shm_region(vdev, region, id); > > +} > > + > > static inline bool virtio_is_little_endian(struct virtio_device *vdev) > > { > > return virtio_has_feature(vdev, VIRTIO_F_VERSION_1) || > > -- > > 2.26.2 > > > >
_______________________________________________ dri-devel mailing list dri-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/dri-devel