Displaying 15 results from an estimated 15 matches for "vhost_iotlb_msg_v2".
2018 Aug 03
4
[PATCH net-next] vhost: switch to use new message format
...pe) {
+ switch (type) {
case VHOST_IOTLB_MSG:
- err = vhost_process_iotlb_msg(dev, &node.msg.iotlb);
- if (err)
- ret = err;
+ /* There maybe a hole after type for V1 message type,
+ * so skip it here.
+ */
+ offset = offsetof(struct vhost_msg, iotlb) - sizeof(int);
+ break;
+ case VHOST_IOTLB_MSG_V2:
+ offset = sizeof(__u32);
break;
default:
ret = -EINVAL;
- break;
+ goto done;
+ }
+
+ iov_iter_advance(from, offset);
+ ret = copy_from_iter(&msg, sizeof(msg), from);
+ if (ret != sizeof(msg))
+ goto done;
+ if (vhost_process_iotlb_msg(dev, &msg)) {
+ ret = -EFAULT;
+ goto d...
2018 Aug 03
4
[PATCH net-next] vhost: switch to use new message format
...pe) {
+ switch (type) {
case VHOST_IOTLB_MSG:
- err = vhost_process_iotlb_msg(dev, &node.msg.iotlb);
- if (err)
- ret = err;
+ /* There maybe a hole after type for V1 message type,
+ * so skip it here.
+ */
+ offset = offsetof(struct vhost_msg, iotlb) - sizeof(int);
+ break;
+ case VHOST_IOTLB_MSG_V2:
+ offset = sizeof(__u32);
break;
default:
ret = -EINVAL;
- break;
+ goto done;
+ }
+
+ iov_iter_advance(from, offset);
+ ret = copy_from_iter(&msg, sizeof(msg), from);
+ if (ret != sizeof(msg))
+ goto done;
+ if (vhost_process_iotlb_msg(dev, &msg)) {
+ ret = -EFAULT;
+ goto d...
2018 Aug 03
0
[PATCH net-next] vhost: switch to use new message format
...G:
> - err = vhost_process_iotlb_msg(dev, &node.msg.iotlb);
> - if (err)
> - ret = err;
> + /* There maybe a hole after type for V1 message type,
> + * so skip it here.
> + */
> + offset = offsetof(struct vhost_msg, iotlb) - sizeof(int);
> + break;
> + case VHOST_IOTLB_MSG_V2:
> + offset = sizeof(__u32);
> break;
> default:
> ret = -EINVAL;
> - break;
> + goto done;
> + }
> +
> + iov_iter_advance(from, offset);
> + ret = copy_from_iter(&msg, sizeof(msg), from);
> + if (ret != sizeof(msg))
> + goto done;
> + if (vhos...
2018 Aug 06
1
[PATCH net-next V2] vhost: switch to use new message format
...pe) {
+ switch (type) {
case VHOST_IOTLB_MSG:
- err = vhost_process_iotlb_msg(dev, &node.msg.iotlb);
- if (err)
- ret = err;
+ /* There maybe a hole after type for V1 message type,
+ * so skip it here.
+ */
+ offset = offsetof(struct vhost_msg, iotlb) - sizeof(int);
+ break;
+ case VHOST_IOTLB_MSG_V2:
+ offset = sizeof(__u32);
break;
default:
ret = -EINVAL;
- break;
+ goto done;
+ }
+
+ iov_iter_advance(from, offset);
+ ret = copy_from_iter(&msg, sizeof(msg), from);
+ if (ret != sizeof(msg))
+ goto done;
+ if (vhost_process_iotlb_msg(dev, &msg)) {
+ ret = -EFAULT;
+ goto d...
2020 Feb 05
2
[PATCH] vhost: introduce vDPA based backend
...S_RO????? 0x1
#define VHOST_ACCESS_WO????? 0x2
#define VHOST_ACCESS_RW????? 0x3
??? __u8 perm;
#define VHOST_IOTLB_MISS?????????? 1
#define VHOST_IOTLB_UPDATE???????? 2
#define VHOST_IOTLB_INVALIDATE???? 3
#define VHOST_IOTLB_ACCESS_FAIL??? 4
??? __u8 type;
};
#define VHOST_IOTLB_MSG 0x1
#define VHOST_IOTLB_MSG_V2 0x2
struct vhost_msg {
??? int type;
??? union {
??? ??? struct vhost_iotlb_msg iotlb;
??? ??? __u8 padding[64];
??? };
};
struct vhost_msg_v2 {
??? __u32 type;
??? __u32 reserved;
??? union {
??? ??? struct vhost_iotlb_msg iotlb;
??? ??? __u8 padding[64];
??? };
};
2020 Feb 05
2
[PATCH] vhost: introduce vDPA based backend
...S_RO????? 0x1
#define VHOST_ACCESS_WO????? 0x2
#define VHOST_ACCESS_RW????? 0x3
??? __u8 perm;
#define VHOST_IOTLB_MISS?????????? 1
#define VHOST_IOTLB_UPDATE???????? 2
#define VHOST_IOTLB_INVALIDATE???? 3
#define VHOST_IOTLB_ACCESS_FAIL??? 4
??? __u8 type;
};
#define VHOST_IOTLB_MSG 0x1
#define VHOST_IOTLB_MSG_V2 0x2
struct vhost_msg {
??? int type;
??? union {
??? ??? struct vhost_iotlb_msg iotlb;
??? ??? __u8 padding[64];
??? };
};
struct vhost_msg_v2 {
??? __u32 type;
??? __u32 reserved;
??? union {
??? ??? struct vhost_iotlb_msg iotlb;
??? ??? __u8 padding[64];
??? };
};
2020 Feb 05
2
[PATCH] vhost: introduce vDPA based backend
...??? __u8 perm;
>> #define VHOST_IOTLB_MISS?????????? 1
>> #define VHOST_IOTLB_UPDATE???????? 2
>> #define VHOST_IOTLB_INVALIDATE???? 3
>> #define VHOST_IOTLB_ACCESS_FAIL??? 4
>> ??? __u8 type;
>> };
>>
>> #define VHOST_IOTLB_MSG 0x1
>> #define VHOST_IOTLB_MSG_V2 0x2
>>
>> struct vhost_msg {
>> ??? int type;
>> ??? union {
>> ??? ??? struct vhost_iotlb_msg iotlb;
>> ??? ??? __u8 padding[64];
>> ??? };
>> };
>>
>> struct vhost_msg_v2 {
>> ??? __u32 type;
>> ??? __u32 reserved;
>...
2020 Feb 05
2
[PATCH] vhost: introduce vDPA based backend
...??? __u8 perm;
>> #define VHOST_IOTLB_MISS?????????? 1
>> #define VHOST_IOTLB_UPDATE???????? 2
>> #define VHOST_IOTLB_INVALIDATE???? 3
>> #define VHOST_IOTLB_ACCESS_FAIL??? 4
>> ??? __u8 type;
>> };
>>
>> #define VHOST_IOTLB_MSG 0x1
>> #define VHOST_IOTLB_MSG_V2 0x2
>>
>> struct vhost_msg {
>> ??? int type;
>> ??? union {
>> ??? ??? struct vhost_iotlb_msg iotlb;
>> ??? ??? __u8 padding[64];
>> ??? };
>> };
>>
>> struct vhost_msg_v2 {
>> ??? __u32 type;
>> ??? __u32 reserved;
>...
2020 Feb 05
1
[PATCH] vhost: introduce vDPA based backend
...;>>> #define VHOST_IOTLB_UPDATE???????? 2
>>>> #define VHOST_IOTLB_INVALIDATE???? 3
>>>> #define VHOST_IOTLB_ACCESS_FAIL??? 4
>>>> ??? __u8 type;
>>>> };
>>>>
>>>> #define VHOST_IOTLB_MSG 0x1
>>>> #define VHOST_IOTLB_MSG_V2 0x2
>>>>
>>>> struct vhost_msg {
>>>> ??? int type;
>>>> ??? union {
>>>> ??? ??? struct vhost_iotlb_msg iotlb;
>>>> ??? ??? __u8 padding[64];
>>>> ??? };
>>>> };
>>>>
>>>&...
2020 Feb 05
0
[PATCH] vhost: introduce vDPA based backend
...define VHOST_ACCESS_RW????? 0x3
> ??? __u8 perm;
> #define VHOST_IOTLB_MISS?????????? 1
> #define VHOST_IOTLB_UPDATE???????? 2
> #define VHOST_IOTLB_INVALIDATE???? 3
> #define VHOST_IOTLB_ACCESS_FAIL??? 4
> ??? __u8 type;
> };
>
> #define VHOST_IOTLB_MSG 0x1
> #define VHOST_IOTLB_MSG_V2 0x2
>
> struct vhost_msg {
> ??? int type;
> ??? union {
> ??? ??? struct vhost_iotlb_msg iotlb;
> ??? ??? __u8 padding[64];
> ??? };
> };
>
> struct vhost_msg_v2 {
> ??? __u32 type;
> ??? __u32 reserved;
> ??? union {
> ??? ??? struct vhost_iotlb_msg iot...
2020 Feb 05
2
[PATCH] vhost: introduce vDPA based backend
On 2020/2/5 ??10:05, Tiwei Bie wrote:
> On Tue, Feb 04, 2020 at 02:46:16PM +0800, Jason Wang wrote:
>> On 2020/2/4 ??2:01, Michael S. Tsirkin wrote:
>>> On Tue, Feb 04, 2020 at 11:30:11AM +0800, Jason Wang wrote:
>>>> 5) generate diffs of memory table and using IOMMU API to setup the dma
>>>> mapping in this method
>>> Frankly I think that's a
2020 Feb 05
2
[PATCH] vhost: introduce vDPA based backend
On 2020/2/5 ??10:05, Tiwei Bie wrote:
> On Tue, Feb 04, 2020 at 02:46:16PM +0800, Jason Wang wrote:
>> On 2020/2/4 ??2:01, Michael S. Tsirkin wrote:
>>> On Tue, Feb 04, 2020 at 11:30:11AM +0800, Jason Wang wrote:
>>>> 5) generate diffs of memory table and using IOMMU API to setup the dma
>>>> mapping in this method
>>> Frankly I think that's a
2020 Feb 05
0
[PATCH] vhost: introduce vDPA based backend
...?????????? 1
> > > #define VHOST_IOTLB_UPDATE???????? 2
> > > #define VHOST_IOTLB_INVALIDATE???? 3
> > > #define VHOST_IOTLB_ACCESS_FAIL??? 4
> > > ??? __u8 type;
> > > };
> > >
> > > #define VHOST_IOTLB_MSG 0x1
> > > #define VHOST_IOTLB_MSG_V2 0x2
> > >
> > > struct vhost_msg {
> > > ??? int type;
> > > ??? union {
> > > ??? ??? struct vhost_iotlb_msg iotlb;
> > > ??? ??? __u8 padding[64];
> > > ??? };
> > > };
> > >
> > > struct vhost_msg_v2...
2020 Sep 24
30
[RFC PATCH 00/24] Control VQ support in vDPA
Hi All:
This series tries to add the support for control virtqueue in vDPA.
Control virtqueue is used by networking device for accepting various
commands from the driver. It's a must to support multiqueue and other
configurations.
When used by vhost-vDPA bus driver for VM, the control virtqueue
should be shadowed via userspace VMM (Qemu) instead of being assigned
directly to Guest. This is
2020 Sep 24
30
[RFC PATCH 00/24] Control VQ support in vDPA
Hi All:
This series tries to add the support for control virtqueue in vDPA.
Control virtqueue is used by networking device for accepting various
commands from the driver. It's a must to support multiqueue and other
configurations.
When used by vhost-vDPA bus driver for VM, the control virtqueue
should be shadowed via userspace VMM (Qemu) instead of being assigned
directly to Guest. This is