Displaying 20 results from an estimated 61 matches for "virtio_mdev_f_version_1".
2019 Oct 18
2
[PATCH V4 5/6] virtio: introduce a mdev based transport
...lease_dev;
> + vm_dev->vdev.config = &virtio_mdev_config_ops;
> + vm_dev->mdev = mdev;
> + INIT_LIST_HEAD(&vm_dev->virtqueues);
> + spin_lock_init(&vm_dev->lock);
> +
> + vm_dev->version = ops->get_mdev_features(mdev);
> + if (vm_dev->version != VIRTIO_MDEV_F_VERSION_1) {
> + dev_err(dev, "VIRTIO_MDEV_F_VERSION_1 is mandatory\n");
> + return -ENXIO;
> + }
Hm, so how is that mdev features interface supposed to work? If
VIRTIO_MDEV_F_VERSION_1 is a bit, I would expect this code to test for
its presence, and not for identity.
What will happen...
2019 Oct 18
2
[PATCH V4 5/6] virtio: introduce a mdev based transport
...lease_dev;
> + vm_dev->vdev.config = &virtio_mdev_config_ops;
> + vm_dev->mdev = mdev;
> + INIT_LIST_HEAD(&vm_dev->virtqueues);
> + spin_lock_init(&vm_dev->lock);
> +
> + vm_dev->version = ops->get_mdev_features(mdev);
> + if (vm_dev->version != VIRTIO_MDEV_F_VERSION_1) {
> + dev_err(dev, "VIRTIO_MDEV_F_VERSION_1 is mandatory\n");
> + return -ENXIO;
> + }
Hm, so how is that mdev features interface supposed to work? If
VIRTIO_MDEV_F_VERSION_1 is a bit, I would expect this code to test for
its presence, and not for identity.
What will happen...
2019 Oct 21
1
[PATCH V4 5/6] virtio: introduce a mdev based transport
..._mdev_config_ops;
> >> + vm_dev->mdev = mdev;
> >> + INIT_LIST_HEAD(&vm_dev->virtqueues);
> >> + spin_lock_init(&vm_dev->lock);
> >> +
> >> + vm_dev->version = ops->get_mdev_features(mdev);
> >> + if (vm_dev->version != VIRTIO_MDEV_F_VERSION_1) {
> >> + dev_err(dev, "VIRTIO_MDEV_F_VERSION_1 is mandatory\n");
> >> + return -ENXIO;
> >> + }
> > Hm, so how is that mdev features interface supposed to work? If
> > VIRTIO_MDEV_F_VERSION_1 is a bit, I would expect this code to test for
> &...
2019 Nov 05
1
[PATCH V8 4/6] mdev: introduce virtio device and its device ops
...t.com>
> + */
> +#ifndef MDEV_VIRTIO_OPS_H
> +#define MDEV_VIRTIO_OPS_H
> +
> +#include <linux/interrupt.h>
> +#include <linux/mdev.h>
> +#include <uapi/linux/vhost.h>
> +
> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> +#define VIRTIO_MDEV_F_VERSION_1 0x1
This entire concept of VIRTIO_MDEV_F_VERSION_1 is gone now, right?
Let's remove it here and below. Thanks,
Alex
> +
> +struct virtio_mdev_callback {
> + irqreturn_t (*callback)(void *data);
> + void *private;
> +};
> +
> +/**
> + * struct mdev_virtio_device_ops -...
2019 Oct 21
0
[PATCH V4 5/6] virtio: introduce a mdev based transport
...->vdev.config = &virtio_mdev_config_ops;
>> + vm_dev->mdev = mdev;
>> + INIT_LIST_HEAD(&vm_dev->virtqueues);
>> + spin_lock_init(&vm_dev->lock);
>> +
>> + vm_dev->version = ops->get_mdev_features(mdev);
>> + if (vm_dev->version != VIRTIO_MDEV_F_VERSION_1) {
>> + dev_err(dev, "VIRTIO_MDEV_F_VERSION_1 is mandatory\n");
>> + return -ENXIO;
>> + }
> Hm, so how is that mdev features interface supposed to work? If
> VIRTIO_MDEV_F_VERSION_1 is a bit, I would expect this code to test for
> its presence, and not for id...
2019 Nov 04
2
[PATCH V7 4/6] mdev: introduce virtio device and its device ops
...t.com>
> + */
> +#ifndef MDEV_VIRTIO_OPS_H
> +#define MDEV_VIRTIO_OPS_H
> +
> +#include <linux/interrupt.h>
> +#include <linux/mdev.h>
> +#include <uapi/linux/vhost.h>
> +
> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> +#define VIRTIO_MDEV_F_VERSION_1 0x1
> +
> +struct virtio_mdev_callback {
> + irqreturn_t (*callback)(void *data);
> + void *private;
> +};
> +
> +/**
> + * struct mdev_virtio_device_ops - Structure to be registered for each
> + * mdev device to register the device for virtio/vhost drivers.
> + *
>...
2019 Nov 04
2
[PATCH V7 4/6] mdev: introduce virtio device and its device ops
...t.com>
> + */
> +#ifndef MDEV_VIRTIO_OPS_H
> +#define MDEV_VIRTIO_OPS_H
> +
> +#include <linux/interrupt.h>
> +#include <linux/mdev.h>
> +#include <uapi/linux/vhost.h>
> +
> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> +#define VIRTIO_MDEV_F_VERSION_1 0x1
> +
> +struct virtio_mdev_callback {
> + irqreturn_t (*callback)(void *data);
> + void *private;
> +};
> +
> +/**
> + * struct mdev_virtio_device_ops - Structure to be registered for each
> + * mdev device to register the device for virtio/vhost drivers.
> + *
>...
2019 Oct 23
2
[PATCH v2] vhost: introduce mdev based hardware backend
...> vhost-mdev does not support MQ.
The mdev is a MDEV_CLASS_ID_VHOST mdev device. When the parent
is being developed, it should know the currently supported features
of vhost-mdev.
> And this allows old kenrel to work with new
> parent drivers.
The new drivers should provide things like VIRTIO_MDEV_F_VERSION_1
to be compatible with the old kernels. When VIRTIO_MDEV_F_VERSION_1
is provided/negotiated, the behaviours should be consistent.
>
> So basically we have three choices here:
>
> 1) Implement what vhost-user did and implement a generic vhost-mdev (but may
> still have lots of devic...
2019 Oct 23
2
[PATCH v2] vhost: introduce mdev based hardware backend
...> vhost-mdev does not support MQ.
The mdev is a MDEV_CLASS_ID_VHOST mdev device. When the parent
is being developed, it should know the currently supported features
of vhost-mdev.
> And this allows old kenrel to work with new
> parent drivers.
The new drivers should provide things like VIRTIO_MDEV_F_VERSION_1
to be compatible with the old kernels. When VIRTIO_MDEV_F_VERSION_1
is provided/negotiated, the behaviours should be consistent.
>
> So basically we have three choices here:
>
> 1) Implement what vhost-user did and implement a generic vhost-mdev (but may
> still have lots of devic...
2019 Oct 18
2
[PATCH V4 4/6] mdev: introduce virtio device and its device ops
...gt;
> + */
> +#ifndef _LINUX_VIRTIO_MDEV_H
> +#define _LINUX_VIRTIO_MDEV_H
> +
> +#include <linux/interrupt.h>
> +#include <linux/mdev.h>
> +#include <uapi/linux/vhost.h>
> +
> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> +#define VIRTIO_MDEV_F_VERSION_1 0x1
> +
> +struct virtio_mdev_callback {
> + irqreturn_t (*callback)(void *data);
> + void *private;
> +};
> +
> +/**
> + * struct vfio_mdev_device_ops - Structure to be registered for each
> + * mdev device to register the device to virtio-mdev module.
> + *
> + *...
2019 Oct 18
2
[PATCH V4 4/6] mdev: introduce virtio device and its device ops
...gt;
> + */
> +#ifndef _LINUX_VIRTIO_MDEV_H
> +#define _LINUX_VIRTIO_MDEV_H
> +
> +#include <linux/interrupt.h>
> +#include <linux/mdev.h>
> +#include <uapi/linux/vhost.h>
> +
> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> +#define VIRTIO_MDEV_F_VERSION_1 0x1
> +
> +struct virtio_mdev_callback {
> + irqreturn_t (*callback)(void *data);
> + void *private;
> +};
> +
> +/**
> + * struct vfio_mdev_device_ops - Structure to be registered for each
> + * mdev device to register the device to virtio-mdev module.
> + *
> + *...
2019 Oct 23
2
[PATCH v2] vhost: introduce mdev based hardware backend
...dev should filter out the unsupported
features. But in the meantime, I think drivers also shouldn't
expose unsupported features.
>
>
> >
> > > And this allows old kenrel to work with new
> > > parent drivers.
> > The new drivers should provide things like VIRTIO_MDEV_F_VERSION_1
> > to be compatible with the old kernels. When VIRTIO_MDEV_F_VERSION_1
> > is provided/negotiated, the behaviours should be consistent.
>
>
> To be clear, I didn't mean a change in virtio-mdev API, I meant:
>
> 1) old vhost-mdev kernel driver that filters out MQ
&...
2019 Oct 23
2
[PATCH v2] vhost: introduce mdev based hardware backend
...dev should filter out the unsupported
features. But in the meantime, I think drivers also shouldn't
expose unsupported features.
>
>
> >
> > > And this allows old kenrel to work with new
> > > parent drivers.
> > The new drivers should provide things like VIRTIO_MDEV_F_VERSION_1
> > to be compatible with the old kernels. When VIRTIO_MDEV_F_VERSION_1
> > is provided/negotiated, the behaviours should be consistent.
>
>
> To be clear, I didn't mean a change in virtio-mdev API, I meant:
>
> 1) old vhost-mdev kernel driver that filters out MQ
&...
2019 Nov 05
1
[PATCH V7 4/6] mdev: introduce virtio device and its device ops
...ne MDEV_VIRTIO_OPS_H
> >> +
> >> +#include <linux/interrupt.h>
> >> +#include <linux/mdev.h>
> >> +#include <uapi/linux/vhost.h>
> >> +
> >> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> >> +#define VIRTIO_MDEV_F_VERSION_1 0x1
> >> +
> >> +struct virtio_mdev_callback {
> >> + irqreturn_t (*callback)(void *data);
> >> + void *private;
> >> +};
> >> +
> >> +/**
> >> + * struct mdev_virtio_device_ops - Structure to be registered for each
> >&g...
2019 Nov 05
0
[PATCH V7 4/6] mdev: introduce virtio device and its device ops
...f MDEV_VIRTIO_OPS_H
>> +#define MDEV_VIRTIO_OPS_H
>> +
>> +#include <linux/interrupt.h>
>> +#include <linux/mdev.h>
>> +#include <uapi/linux/vhost.h>
>> +
>> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
>> +#define VIRTIO_MDEV_F_VERSION_1 0x1
>> +
>> +struct virtio_mdev_callback {
>> + irqreturn_t (*callback)(void *data);
>> + void *private;
>> +};
>> +
>> +/**
>> + * struct mdev_virtio_device_ops - Structure to be registered for each
>> + * mdev device to register the device for...
2019 Oct 23
2
[PATCH V5 4/6] mdev: introduce virtio device and its device ops
...gt;
> + */
> +#ifndef _LINUX_VIRTIO_MDEV_H
> +#define _LINUX_VIRTIO_MDEV_H
> +
> +#include <linux/interrupt.h>
> +#include <linux/mdev.h>
> +#include <uapi/linux/vhost.h>
> +
> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> +#define VIRTIO_MDEV_F_VERSION_1 0x1
> +
> +struct virtio_mdev_callback {
> + irqreturn_t (*callback)(void *data);
> + void *private;
> +};
> +
> +/**
> + * struct vfio_mdev_device_ops - Structure to be registered for each
> + * mdev device to register the device for virtio/vhost drivers.
> + *
> +...
2019 Oct 23
2
[PATCH V5 4/6] mdev: introduce virtio device and its device ops
...gt;
> + */
> +#ifndef _LINUX_VIRTIO_MDEV_H
> +#define _LINUX_VIRTIO_MDEV_H
> +
> +#include <linux/interrupt.h>
> +#include <linux/mdev.h>
> +#include <uapi/linux/vhost.h>
> +
> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> +#define VIRTIO_MDEV_F_VERSION_1 0x1
> +
> +struct virtio_mdev_callback {
> + irqreturn_t (*callback)(void *data);
> + void *private;
> +};
> +
> +/**
> + * struct vfio_mdev_device_ops - Structure to be registered for each
> + * mdev device to register the device for virtio/vhost drivers.
> + *
> +...
2019 Oct 18
1
[PATCH V4 4/6] mdev: introduce virtio device and its device ops
...Get the feature of virtio mdev device
> >> + * @mdev: mediated device
> >> + * Returns the mdev features (API) support by
> >> + * the device.
> > What kind of 'features' are supposed to go in there? Are these bits,
> > like you defined for VIRTIO_MDEV_F_VERSION_1 above?
>
>
> It's the API or mdev features other than virtio features. It could be
> used by driver to determine the capability of the mdev device. Besides
> _F_VERSION_1, we may add dirty page tracking etc which means we need new
> device ops.
Ok, so that's suppos...
2019 Oct 24
1
[PATCH V5 4/6] mdev: introduce virtio device and its device ops
..._LINUX_VIRTIO_MDEV_H
> >> +
> >> +#include <linux/interrupt.h>
> >> +#include <linux/mdev.h>
> >> +#include <uapi/linux/vhost.h>
> >> +
> >> +#define VIRTIO_MDEV_DEVICE_API_STRING "virtio-mdev"
> >> +#define VIRTIO_MDEV_F_VERSION_1 0x1
> >> +
> >> +struct virtio_mdev_callback {
> >> + irqreturn_t (*callback)(void *data);
> >> + void *private;
> >> +};
> >> +
> >> +/**
> >> + * struct vfio_mdev_device_ops - Structure to be registered for each
> >>...
2019 Oct 23
0
[PATCH v2] vhost: introduce mdev based hardware backend
...When the parent
> is being developed, it should know the currently supported features
> of vhost-mdev.
How can parent know MQ is not supported by vhost-mdev?
>
>> And this allows old kenrel to work with new
>> parent drivers.
> The new drivers should provide things like VIRTIO_MDEV_F_VERSION_1
> to be compatible with the old kernels. When VIRTIO_MDEV_F_VERSION_1
> is provided/negotiated, the behaviours should be consistent.
To be clear, I didn't mean a change in virtio-mdev API, I meant:
1) old vhost-mdev kernel driver that filters out MQ
2) new parent driver that support M...