Displaying 20 results from an estimated 49 matches for "vhost_get_vq_desc_batch".
2020 Jan 07
2
vhost changes (batched) in linux-next after 12/13 trigger random crashes in KVM guests after reboot
...ectable.
>
> I pushed a new tag "batch-v2".
> It's same code but with this bisect should get more information.
I get the following with this tag
drivers/vhost/net.c: In function ?vhost_net_tx_get_vq_desc?:
drivers/vhost/net.c:574:7: error: implicit declaration of function ?vhost_get_vq_desc_batch?; did you mean ?vhost_get_vq_desc?? [-Werror=implicit-function-declaration]
574 | r = vhost_get_vq_desc_batch(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
| ^~~~~~~~~~~~~~~~~~~~~~~
| vhost_get_vq_desc
2020 Jan 07
2
vhost changes (batched) in linux-next after 12/13 trigger random crashes in KVM guests after reboot
...ectable.
>
> I pushed a new tag "batch-v2".
> It's same code but with this bisect should get more information.
I get the following with this tag
drivers/vhost/net.c: In function ?vhost_net_tx_get_vq_desc?:
drivers/vhost/net.c:574:7: error: implicit declaration of function ?vhost_get_vq_desc_batch?; did you mean ?vhost_get_vq_desc?? [-Werror=implicit-function-declaration]
574 | r = vhost_get_vq_desc_batch(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
| ^~~~~~~~~~~~~~~~~~~~~~~
| vhost_get_vq_desc
2020 Jan 07
6
vhost changes (batched) in linux-next after 12/13 trigger random crashes in KVM guests after reboot
...v2".
>>> It's same code but with this bisect should get more information.
>>
>> I get the following with this tag
>>
>> drivers/vhost/net.c: In function ?vhost_net_tx_get_vq_desc?:
>> drivers/vhost/net.c:574:7: error: implicit declaration of function ?vhost_get_vq_desc_batch?; did you mean ?vhost_get_vq_desc?? [-Werror=implicit-function-declaration]
>> 574 | r = vhost_get_vq_desc_batch(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
>> | ^~~~~~~~~~~~~~~~~~~~~~~
>> | vhost_get_vq_desc
>>
>
> Not sure why but I pushed...
2020 Jan 07
6
vhost changes (batched) in linux-next after 12/13 trigger random crashes in KVM guests after reboot
...v2".
>>> It's same code but with this bisect should get more information.
>>
>> I get the following with this tag
>>
>> drivers/vhost/net.c: In function ?vhost_net_tx_get_vq_desc?:
>> drivers/vhost/net.c:574:7: error: implicit declaration of function ?vhost_get_vq_desc_batch?; did you mean ?vhost_get_vq_desc?? [-Werror=implicit-function-declaration]
>> 574 | r = vhost_get_vq_desc_batch(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
>> | ^~~~~~~~~~~~~~~~~~~~~~~
>> | vhost_get_vq_desc
>>
>
> Not sure why but I pushed...
2019 Oct 11
8
[PATCH RFC v1 0/2] vhost: ring format independence
...ems to already perform exactly the same as the original
code already based on a microbenchmark. More testing would be very much
appreciated.
Biggest TODO before this first step is ready to go in is to
batch indirect descriptors as well.
Integrating into vhost-net is basically
s/vhost_get_vq_desc/vhost_get_vq_desc_batch/ -
or add a module parameter like I did in the test module.
Michael S. Tsirkin (2):
vhost: option to fetch descriptors through an independent struct
vhost: batching fetches
drivers/vhost/test.c | 19 ++-
drivers/vhost/vhost.c | 333 +++++++++++++++++++++++++++++++++++++++++-
drivers/vhos...
2019 Oct 11
8
[PATCH RFC v1 0/2] vhost: ring format independence
...ems to already perform exactly the same as the original
code already based on a microbenchmark. More testing would be very much
appreciated.
Biggest TODO before this first step is ready to go in is to
batch indirect descriptors as well.
Integrating into vhost-net is basically
s/vhost_get_vq_desc/vhost_get_vq_desc_batch/ -
or add a module parameter like I did in the test module.
Michael S. Tsirkin (2):
vhost: option to fetch descriptors through an independent struct
vhost: batching fetches
drivers/vhost/test.c | 19 ++-
drivers/vhost/vhost.c | 333 +++++++++++++++++++++++++++++++++++++++++-
drivers/vhos...
2019 Oct 12
2
[PATCH RFC v1 2/2] vhost: batching fetches
...+}
> +
> /* This looks in the virtqueue and for the first available buffer, and converts
> * it to an iovec for convenient access. Since descriptors consist of some
> * number of output then some number of input descriptors, it's actually two
> @@ -2562,6 +2588,8 @@ int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
> if (ret)
> return ret;
>
> + /* Note: indirect descriptors are not batched */
> + /* TODO: batch up to a limit */
> last = peek_split_desc(vq);
> id = last->id;
>
> @@ -2584,12 +2612,12 @@ int vhost_get_vq_desc_batch(str...
2019 Oct 12
2
[PATCH RFC v1 2/2] vhost: batching fetches
...+}
> +
> /* This looks in the virtqueue and for the first available buffer, and converts
> * it to an iovec for convenient access. Since descriptors consist of some
> * number of output then some number of input descriptors, it's actually two
> @@ -2562,6 +2588,8 @@ int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
> if (ret)
> return ret;
>
> + /* Note: indirect descriptors are not batched */
> + /* TODO: batch up to a limit */
> last = peek_split_desc(vq);
> id = last->id;
>
> @@ -2584,12 +2612,12 @@ int vhost_get_vq_desc_batch(str...
2020 Jun 10
2
[PATCH RFC v6 02/11] vhost: use batched get_vq_desc version
...actually two
> @@ -2540,7 +2342,7 @@ static int fetch_descs(struct vhost_virtqueue *vq)
> * This function returns the descriptor number found, or vq->num (which is
> * never a valid descriptor number) if none was found. A negative code is
> * returned on error. */
> -int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
> +int vhost_get_vq_desc(struct vhost_virtqueue *vq,
> struct iovec iov[], unsigned int iov_size,
> unsigned int *out_num, unsigned int *in_num,
> struct vhost_log *log, unsigned int *log_num)
> @@ -2549,7 +2351,7 @@ int vhost...
2020 Jun 10
2
[PATCH RFC v6 02/11] vhost: use batched get_vq_desc version
...actually two
> @@ -2540,7 +2342,7 @@ static int fetch_descs(struct vhost_virtqueue *vq)
> * This function returns the descriptor number found, or vq->num (which is
> * never a valid descriptor number) if none was found. A negative code is
> * returned on error. */
> -int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
> +int vhost_get_vq_desc(struct vhost_virtqueue *vq,
> struct iovec iov[], unsigned int iov_size,
> unsigned int *out_num, unsigned int *in_num,
> struct vhost_log *log, unsigned int *log_num)
> @@ -2549,7 +2351,7 @@ int vhost...
2019 Oct 13
6
[PATCH RFC v4 0/5] vhost: ring format independence
This adds infrastructure required for supporting
multiple ring formats.
The idea is as follows: we convert descriptors to an
independent format first, and process that converting to
iov later.
The point is that we have a tight loop that fetches
descriptors, which is good for cache utilization.
This will also allow all kind of batching tricks -
e.g. it seems possible to keep SMAP disabled while
2019 Oct 13
4
[PATCH RFC v3 0/4] vhost: ring format independence
This adds infrastructure required for supporting
multiple ring formats.
The idea is as follows: we convert descriptors to an
independent format first, and process that converting to
iov later.
The point is that we have a tight loop that fetches
descriptors, which is good for cache utilization.
This will also allow all kind of batching tricks -
e.g. it seems possible to keep SMAP disabled while
2019 Oct 12
2
[PATCH RFC v2 0/2] vhost: ring format independence
...This seems to perform exactly the same as the original
code already based on a microbenchmark.
More testing would be very much appreciated.
Biggest TODO before this first step is ready to go in is to
batch indirect descriptors as well.
Integrating into vhost-net is basically
s/vhost_get_vq_desc/vhost_get_vq_desc_batch/ -
or add a module parameter like I did in the test module.
Changes from v1:
- typo fixes
Michael S. Tsirkin (2):
vhost: option to fetch descriptors through an independent struct
vhost: batching fetches
drivers/vhost/test.c | 19 ++-
drivers/vhost/vhost.c | 333 +++++++++++++++++++++++++...
2020 Jan 07
0
vhost changes (batched) in linux-next after 12/13 trigger random crashes in KVM guests after reboot
...'s same code but with this bisect should get more information.
> >>
> >> I get the following with this tag
> >>
> >> drivers/vhost/net.c: In function ?vhost_net_tx_get_vq_desc?:
> >> drivers/vhost/net.c:574:7: error: implicit declaration of function ?vhost_get_vq_desc_batch?; did you mean ?vhost_get_vq_desc?? [-Werror=implicit-function-declaration]
> >> 574 | r = vhost_get_vq_desc_batch(tvq, tvq->iov, ARRAY_SIZE(tvq->iov),
> >> | ^~~~~~~~~~~~~~~~~~~~~~~
> >> | vhost_get_vq_desc
> >>
> >
>...
2020 Jun 11
0
[PATCH RFC v8 02/11] vhost: use batched get_vq_desc version
...input descriptors, it's actually two
@@ -2540,7 +2338,7 @@ static int fetch_descs(struct vhost_virtqueue *vq)
* This function returns the descriptor number found, or vq->num (which is
* never a valid descriptor number) if none was found. A negative code is
* returned on error. */
-int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
+int vhost_get_vq_desc(struct vhost_virtqueue *vq,
struct iovec iov[], unsigned int iov_size,
unsigned int *out_num, unsigned int *in_num,
struct vhost_log *log, unsigned int *log_num)
@@ -2549,7 +2347,7 @@ int vhost_get_vq_desc_batch(struct vh...
2020 Jun 08
0
[PATCH RFC v6 02/11] vhost: use batched get_vq_desc version
...input descriptors, it's actually two
@@ -2540,7 +2342,7 @@ static int fetch_descs(struct vhost_virtqueue *vq)
* This function returns the descriptor number found, or vq->num (which is
* never a valid descriptor number) if none was found. A negative code is
* returned on error. */
-int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
+int vhost_get_vq_desc(struct vhost_virtqueue *vq,
struct iovec iov[], unsigned int iov_size,
unsigned int *out_num, unsigned int *in_num,
struct vhost_log *log, unsigned int *log_num)
@@ -2549,7 +2351,7 @@ int vhost_get_vq_desc_batch(struct vh...
2020 Jun 10
0
[PATCH RFC v6 02/11] vhost: use batched get_vq_desc version
...-2540,7 +2342,7 @@ static int fetch_descs(struct vhost_virtqueue *vq)
> > * This function returns the descriptor number found, or vq->num (which is
> > * never a valid descriptor number) if none was found. A negative code is
> > * returned on error. */
> > -int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
> > +int vhost_get_vq_desc(struct vhost_virtqueue *vq,
> > struct iovec iov[], unsigned int iov_size,
> > unsigned int *out_num, unsigned int *in_num,
> > struct vhost_log *log, unsigned int *log_num)
> > @@ -25...
2019 Oct 11
0
[vhost:vhost 6/6] drivers/vhost/vhost.c:2672:9: error: 'desc' undeclared; did you mean 'rdtsc'?
...a2f43b200cb2d65a218237ed
# save the attached .config to linux build tree
make ARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
drivers/vhost/vhost.c: In function 'vhost_get_vq_desc_batch':
>> drivers/vhost/vhost.c:2672:9: error: 'desc' undeclared (first use in this function); did you mean 'rdtsc'?
if (!(desc->flags & VRING_DESC_F_NEXT))
^~~~
rdtsc
drivers/vhost/vhost.c:2672:9: note: each undeclared identifier is repo...
2019 Oct 11
0
[vhost:vhost 6/6] drivers/vhost/vhost.c:2672:9: error: 'desc' undeclared
...ed
# save the attached .config to linux build tree
GCC_VERSION=7.4.0 make.cross ARCH=mips
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
drivers/vhost/vhost.c: In function 'vhost_get_vq_desc_batch':
>> drivers/vhost/vhost.c:2672:9: error: 'desc' undeclared (first use in this function)
if (!(desc->flags & VRING_DESC_F_NEXT))
^~~~
drivers/vhost/vhost.c:2672:9: note: each undeclared identifier is reported only once for each function it appears in
v...
2019 Oct 11
0
[PATCH RFC v1 2/2] vhost: batching fetches
...urn vq->ndescs ? 0 : ret;
+}
+
/* This looks in the virtqueue and for the first available buffer, and converts
* it to an iovec for convenient access. Since descriptors consist of some
* number of output then some number of input descriptors, it's actually two
@@ -2562,6 +2588,8 @@ int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
if (ret)
return ret;
+ /* Note: indirect descriptors are not batched */
+ /* TODO: batch up to a limit */
last = peek_split_desc(vq);
id = last->id;
@@ -2584,12 +2612,12 @@ int vhost_get_vq_desc_batch(struct vhost_virtqueue *vq,
if (unlikely(log))
*l...