Displaying 14 results from an estimated 14 matches for "virtio_mdev_queue_sel".
2019 Sep 10
2
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...y */
> > > +#define VIRTIO_MDEV_DRIVER_FEATURES 0x020
> > > +
> > > +/* Activated features set selector - Write Only */
> > > +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024
> > > +
> > > +/* Queue selector - Write Only */
> > > +#define VIRTIO_MDEV_QUEUE_SEL 0x030
> > > +
> > > +/* Maximum size of the currently selected queue - Read Only */
> > > +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034
> > > +
> > > +/* Queue size for the currently selected queue - Write Only */
> > > +#define VIRTIO_MDEV_QUEUE_NU...
2019 Sep 10
2
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...y */
> > > +#define VIRTIO_MDEV_DRIVER_FEATURES 0x020
> > > +
> > > +/* Activated features set selector - Write Only */
> > > +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024
> > > +
> > > +/* Queue selector - Write Only */
> > > +#define VIRTIO_MDEV_QUEUE_SEL 0x030
> > > +
> > > +/* Maximum size of the currently selected queue - Read Only */
> > > +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034
> > > +
> > > +/* Queue size for the currently selected queue - Write Only */
> > > +#define VIRTIO_MDEV_QUEUE_NU...
2019 Sep 10
2
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...t; + struct virtio_mdev_callback cb;
> + struct virtqueue *vq;
> + unsigned long flags;
> + u32 align, num;
> + u64 addr;
> + int err;
> +
> + if (!name)
> + return NULL;
> +
> + /* Select the queue we're interested in */
> + virtio_mdev_writel(vm_dev->mdev, VIRTIO_MDEV_QUEUE_SEL, index);
> +
> + /* Queue shouldn't already be set up. */
> + if (virtio_mdev_readl(vm_dev->mdev, VIRTIO_MDEV_QUEUE_READY)) {
> + err = -ENOENT;
> + goto error_available;
> + }
> +
> + /* Allocate and fill out our active queue description */
> + info = kmalloc(si...
2019 Sep 10
2
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...t; + struct virtio_mdev_callback cb;
> + struct virtqueue *vq;
> + unsigned long flags;
> + u32 align, num;
> + u64 addr;
> + int err;
> +
> + if (!name)
> + return NULL;
> +
> + /* Select the queue we're interested in */
> + virtio_mdev_writel(vm_dev->mdev, VIRTIO_MDEV_QUEUE_SEL, index);
> +
> + /* Queue shouldn't already be set up. */
> + if (virtio_mdev_readl(vm_dev->mdev, VIRTIO_MDEV_QUEUE_READY)) {
> + err = -ENOENT;
> + goto error_available;
> + }
> +
> + /* Allocate and fill out our active queue description */
> + info = kmalloc(si...
2019 Sep 10
0
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...nt = mdev->parent;
+ struct virtio_mdev_vq_info *info;
+ struct virtio_mdev_callback cb;
+ struct virtqueue *vq;
+ unsigned long flags;
+ u32 align, num;
+ u64 addr;
+ int err;
+
+ if (!name)
+ return NULL;
+
+ /* Select the queue we're interested in */
+ virtio_mdev_writel(vm_dev->mdev, VIRTIO_MDEV_QUEUE_SEL, index);
+
+ /* Queue shouldn't already be set up. */
+ if (virtio_mdev_readl(vm_dev->mdev, VIRTIO_MDEV_QUEUE_READY)) {
+ err = -ENOENT;
+ goto error_available;
+ }
+
+ /* Allocate and fill out our active queue description */
+ info = kmalloc(sizeof(*info), GFP_KERNEL);
+ if (!info) {
+ e...
2019 Sep 10
0
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...>> + * (32 bits per set) - Write Only */
>> +#define VIRTIO_MDEV_DRIVER_FEATURES 0x020
>> +
>> +/* Activated features set selector - Write Only */
>> +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024
>> +
>> +/* Queue selector - Write Only */
>> +#define VIRTIO_MDEV_QUEUE_SEL 0x030
>> +
>> +/* Maximum size of the currently selected queue - Read Only */
>> +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034
>> +
>> +/* Queue size for the currently selected queue - Write Only */
>> +#define VIRTIO_MDEV_QUEUE_NUM 0x038
>> +
>> +/* Rea...
2019 Sep 11
2
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...activated by the driver (guest)
> + * (32 bits per set) - Write Only */
> +#define VIRTIO_MDEV_DRIVER_FEATURES 0x020
> +
> +/* Activated features set selector - Write Only */
> +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024
> +
> +/* Queue selector - Write Only */
> +#define VIRTIO_MDEV_QUEUE_SEL 0x030
> +
> +/* Maximum size of the currently selected queue - Read Only */
> +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034
> +
> +/* Queue size for the currently selected queue - Write Only */
> +#define VIRTIO_MDEV_QUEUE_NUM 0x038
> +
> +/* Ready bit for the currently selecte...
2019 Sep 11
2
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...activated by the driver (guest)
> + * (32 bits per set) - Write Only */
> +#define VIRTIO_MDEV_DRIVER_FEATURES 0x020
> +
> +/* Activated features set selector - Write Only */
> +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024
> +
> +/* Queue selector - Write Only */
> +#define VIRTIO_MDEV_QUEUE_SEL 0x030
> +
> +/* Maximum size of the currently selected queue - Read Only */
> +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034
> +
> +/* Queue size for the currently selected queue - Write Only */
> +#define VIRTIO_MDEV_QUEUE_NUM 0x038
> +
> +/* Ready bit for the currently selecte...
2019 Sep 10
8
[RFC PATCH 0/4] mdev based hardware virtio offloading support
Hi all:
There are hardware that can do virtio datapath offloading while having
its own control path. This path tries to implement a mdev based
unified API to support using kernel virtio driver to drive those
devices. This is done by introducing a new mdev transport for virtio
(virtio_mdev) and register itself as a new kind of mdev driver. Then
it provides a unified way for kernel virtio driver to
2019 Sep 11
0
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...gt;> +#define VIRTIO_MDEV_DRIVER_FEATURES 0x020
>>>> +
>>>> +/* Activated features set selector - Write Only */
>>>> +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024
>>>> +
>>>> +/* Queue selector - Write Only */
>>>> +#define VIRTIO_MDEV_QUEUE_SEL 0x030
>>>> +
>>>> +/* Maximum size of the currently selected queue - Read Only */
>>>> +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034
>>>> +
>>>> +/* Queue size for the currently selected queue - Write Only */
>>>> +#define VIRTIO_M...
2019 Sep 11
1
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...20
> > > > > +
> > > > > +/* Activated features set selector - Write Only */
> > > > > +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024
> > > > > +
> > > > > +/* Queue selector - Write Only */
> > > > > +#define VIRTIO_MDEV_QUEUE_SEL 0x030
> > > > > +
> > > > > +/* Maximum size of the currently selected queue - Read Only */
> > > > > +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034
> > > > > +
> > > > > +/* Queue size for the currently selected queue - Write On...
2019 Sep 11
0
[RFC PATCH 3/4] virtio: introudce a mdev based transport
...>> + * (32 bits per set) - Write Only */
>> +#define VIRTIO_MDEV_DRIVER_FEATURES 0x020
>> +
>> +/* Activated features set selector - Write Only */
>> +#define VIRTIO_MDEV_DRIVER_FEATURES_SEL 0x024
>> +
>> +/* Queue selector - Write Only */
>> +#define VIRTIO_MDEV_QUEUE_SEL 0x030
>> +
>> +/* Maximum size of the currently selected queue - Read Only */
>> +#define VIRTIO_MDEV_QUEUE_NUM_MAX 0x034
>> +
>> +/* Queue size for the currently selected queue - Write Only */
>> +#define VIRTIO_MDEV_QUEUE_NUM 0x038
>> +
>> +/* Rea...
2019 Sep 10
1
[RFC PATCH 4/4] docs: Sample driver to demonstrate how to implement virtio-mdev framework
...mvnet->device_features_sel = *val;
> + break;
> + case VIRTIO_MDEV_DRIVER_FEATURES:
> + mvnet->driver_features[mvnet->driver_features_sel] = *val;
> + break;
> + case VIRTIO_MDEV_DRIVER_FEATURES_SEL:
> + mvnet->driver_features_sel = *val;
> + break;
> + case VIRTIO_MDEV_QUEUE_SEL:
> + mvnet->queue_sel = *val;
> + break;
> + case VIRTIO_MDEV_QUEUE_NUM:
> + mvnet->num = *val;
> + break;
> + case VIRTIO_MDEV_QUEUE_READY:
> + vq->ready = *val;
> + if (vq->ready) {
> + spin_lock(&mvnet->lock);
> + mvnet_queue_ready(mvnet...
2019 Sep 10
0
[RFC PATCH 4/4] docs: Sample driver to demonstrate how to implement virtio-mdev framework
...ase VIRTIO_MDEV_DEVICE_FEATURES_SEL:
+ mvnet->device_features_sel = *val;
+ break;
+ case VIRTIO_MDEV_DRIVER_FEATURES:
+ mvnet->driver_features[mvnet->driver_features_sel] = *val;
+ break;
+ case VIRTIO_MDEV_DRIVER_FEATURES_SEL:
+ mvnet->driver_features_sel = *val;
+ break;
+ case VIRTIO_MDEV_QUEUE_SEL:
+ mvnet->queue_sel = *val;
+ break;
+ case VIRTIO_MDEV_QUEUE_NUM:
+ mvnet->num = *val;
+ break;
+ case VIRTIO_MDEV_QUEUE_READY:
+ vq->ready = *val;
+ if (vq->ready) {
+ spin_lock(&mvnet->lock);
+ mvnet_queue_ready(mvnet, queue_sel);
+ spin_unlock(&mvnet->lock)...