Add worker pointer to every virtqueue. Add routine to assing
workers to virtqueues and call it after any worker creation
https://jira.sw.ru/browse/PSBM-139414
Signed-off-by: Andrey Zhadchenko
---
drivers/vhost/vhost.c | 13 +
drivers/vhost/vhost.h | 2 ++
2 files changed, 15 inserti
Add function to create a vhost worker and add it into the device.
Rework vhost_dev_set_owner
https://jira.sw.ru/browse/PSBM-139414
Signed-off-by: Andrey Zhadchenko
---
drivers/vhost/vhost.c | 68 +--
1 file changed, 40 insertions(+), 28 deletions(-)
diff
We want to support several vhost workers. The first step is to
rework vhost to use array of workers rather than single pointer.
Update creation and cleanup routines.
https://jira.sw.ru/browse/PSBM-139414
Signed-off-by: Andrey Zhadchenko
---
v3:
set vq->worker to NULL in vhost_vq_reset()
drivers
Make vhost_work_dev_flush support several workers and flush
them simultaneously
https://jira.sw.ru/browse/PSBM-139414
Signed-off-by: Andrey Zhadchenko
---
v2:
- don't bother with checking dev->workers[0].worker since dev->nworkers
will always contain 0 in this case
drivers/vhost/vhost.c | 16 +
Although QEMU virtio-blk is quite fast, there is still some room for
improvements. Disk latency can be reduced if we handle virito-blk requests
in host kernel so we avoid a lot of syscalls and context switches.
The idea is quite simple - QEMU gives us block device and we translate
any incoming virt
Finally add ioctl to allow userspace to create additional workers
For now only allow to increase the number of workers
https://jira.sw.ru/browse/PSBM-139414
Signed-off-by: Andrey Zhadchenko
---
v2:
- Make code do what docs suggest. Previously ioctl-supplied new number
of workers were treated lik
Allow vhost polls to be associated with vqs so we can queue them
on assigned workers.
If polls are not associated with specific vqs queue them on the first
worker.
https://jira.sw.ru/browse/PSBM-139414
Signed-off-by: Andrey Zhadchenko
---
drivers/vhost/vhost.c | 24
driv
Add routines to queue works on virtqueue assigned workers
https://jira.sw.ru/browse/PSBM-139414
Signed-off-by: Andrey Zhadchenko
---
drivers/vhost/vhost.c | 22 ++
drivers/vhost/vhost.h | 5 +
2 files changed, 27 insertions(+)
diff --git a/drivers/vhost/vhost.c b/driver
Rework vhost_attach_cgroups to manipulate specified worker.
Implement vhost_worker_flush as we need to flush specific worker.
https://jira.sw.ru/browse/PSBM-139414
Signed-off-by: Andrey Zhadchenko
---
drivers/vhost/vhost.c | 18 ++
1 file changed, 14 insertions(+), 4 deletions(-)
Although QEMU virtio is quite fast, there is still some room for
improvements. Disk latency can be reduced if we handle virito-blk requests
in host kernel istead of passing them to QEMU. The patch adds vhost-blk
kernel module to do so.
Some test setups:
fio --direct=1 --rw=randread --bs=4k --ioe
Update vhost_blk to queue works on virtqueue workers. Together
with previous changes this allows us to split virtio blk requests
across several threads.
| randread, IOPS | randwrite, IOPS |
8vcpu, 1 kernel worker | 497k | 469k |
8vcpu, 2 kernel workers
11 matches
Mail list logo