On 2019/9/23 上午11:00, Matt Cover wrote:
On Sun, Sep 22, 2019 at 7:32 PM Jason Wang wrote:
On 2019/9/23 上午9:20, Matt Cover wrote:
On Sun, Sep 22, 2019 at 5:46 PM Jason Wang wrote:
On 2019/9/23 上午1:43, Matt Cover wrote:
On Sun, Sep 22, 2019 at 5:37 AM Michael S. Tsirkin wrote:
On Fri
On 2019/9/23 上午9:15, Matt Cover wrote:
On Sun, Sep 22, 2019 at 5:51 PM Jason Wang wrote:
On 2019/9/23 上午6:30, Matt Cover wrote:
On Sun, Sep 22, 2019 at 1:36 PM Michael S. Tsirkin wrote:
On Sun, Sep 22, 2019 at 10:43:19AM -0700, Matt Cover wrote:
On Sun, Sep 22, 2019 at 5:37 AM Michael S
On 2019/9/23 上午9:20, Matt Cover wrote:
On Sun, Sep 22, 2019 at 5:46 PM Jason Wang wrote:
On 2019/9/23 上午1:43, Matt Cover wrote:
On Sun, Sep 22, 2019 at 5:37 AM Michael S. Tsirkin wrote:
On Fri, Sep 20, 2019 at 11:58:43AM -0700, Matthew Cover wrote:
Treat a negative return from
On 2019/9/23 上午6:30, Matt Cover wrote:
On Sun, Sep 22, 2019 at 1:36 PM Michael S. Tsirkin wrote:
On Sun, Sep 22, 2019 at 10:43:19AM -0700, Matt Cover wrote:
On Sun, Sep 22, 2019 at 5:37 AM Michael S. Tsirkin wrote:
On Fri, Sep 20, 2019 at 11:58:43AM -0700, Matthew Cover wrote:
Treat a
On 2019/9/23 上午1:43, Matt Cover wrote:
On Sun, Sep 22, 2019 at 5:37 AM Michael S. Tsirkin wrote:
On Fri, Sep 20, 2019 at 11:58:43AM -0700, Matthew Cover wrote:
Treat a negative return from a TUNSETSTEERINGEBPF bpf prog as a signal
to fallback to tun_automq_select_queue() for tx queue
the device with
mdev based config ops. This means, unlike the exist hardware
transport, this is a software transport between mdev driver and mdev
device. The transport was implemented through device specific ops
which is a part of mdev_parent_ops now.
Signed-off-by: Jason Wang
---
drivers/vfio/mdev
On 2019/9/20 上午10:16, Tiwei Bie wrote:
On Fri, Sep 20, 2019 at 09:30:58AM +0800, Jason Wang wrote:
On 2019/9/19 下午11:45, Tiwei Bie wrote:
On Thu, Sep 19, 2019 at 09:08:11PM +0800, Jason Wang wrote:
On 2019/9/18 下午10:32, Michael S. Tsirkin wrote:
So I have some questions:
1) Compared
On 2019/9/20 上午8:05, Matt Cover wrote:
On Thu, Sep 19, 2019 at 3:45 PM Matthew Cover wrote:
WORK IN PROGRESS:
* bpf program loading works!
* txq steering via bpf program return code works!
* bpf program unloading not working.
* bpf program attached query not working.
This patch
On 2019/9/19 下午11:45, Tiwei Bie wrote:
On Thu, Sep 19, 2019 at 09:08:11PM +0800, Jason Wang wrote:
On 2019/9/18 下午10:32, Michael S. Tsirkin wrote:
So I have some questions:
1) Compared to method 2, what's the advantage of creating a new vhost char
device? I guess it's for keep the API
On 2019/9/19 下午11:45, Tiwei Bie wrote:
On Thu, Sep 19, 2019 at 09:08:11PM +0800, Jason Wang wrote:
On 2019/9/18 下午10:32, Michael S. Tsirkin wrote:
So I have some questions:
1) Compared to method 2, what's the advantage of creating a new vhost char
device? I guess it's for keep the API
On 2019/9/18 下午10:32, Michael S. Tsirkin wrote:
So I have some questions:
1) Compared to method 2, what's the advantage of creating a new vhost char
device? I guess it's for keep the API compatibility?
One benefit is that we can avoid doing vhost ioctls on
VFIO device fd.
Yes, but any
On 2019/9/18 上午3:00, Alex Williamson wrote:
On Tue, 10 Sep 2019 16:19:33 +0800
Jason Wang wrote:
This patch introduces mdev_set_dma_ops() which allows parent to set
per device DMA ops. This help for the kernel driver to setup a correct
DMA mappings.
Signed-off-by: Jason Wang
---
drivers
On 2019/9/17 下午6:58, Tiwei Bie wrote:
On Tue, Sep 17, 2019 at 11:32:03AM +0800, Jason Wang wrote:
On 2019/9/17 上午9:02, Tiwei Bie wrote:
This RFC is to demonstrate below ideas,
a) Build vhost-mdev on top of the same abstraction defined in
the virtio-mdev series [1];
b) Introduce /dev
On 2019/9/17 上午9:02, Tiwei Bie wrote:
More details about this patch can be found from the cover
letter for now. Only compile test has been done for now.
Signed-off-by: Tiwei Bie
---
drivers/vhost/Kconfig| 9 +
drivers/vhost/Makefile | 3 +
drivers/vhost/mdev.c
On 2019/9/17 上午9:02, Tiwei Bie wrote:
This RFC is to demonstrate below ideas,
a) Build vhost-mdev on top of the same abstraction defined in
the virtio-mdev series [1];
b) Introduce /dev/vhost-mdev to do vhost ioctls and support
setting mdev device as backend;
Now the userspace API
On 2019/9/17 上午9:02, Tiwei Bie wrote:
This RFC is to demonstrate below ideas,
a) Build vhost-mdev on top of the same abstraction defined in
the virtio-mdev series [1];
b) Introduce /dev/vhost-mdev to do vhost ioctls and support
setting mdev device as backend;
Now the userspace API
and move vfio callbacks there
Sent for early reivew, compile test only!
Thanks
[1] https://lkml.org/lkml/2019/9/10/135
Jason Wang (2):
mdev: device id support
mdev: introduce device specific ops
drivers/gpu/drm/i915/gvt/kvmgt.c | 16 ---
drivers/s390/cio/vfio_ccw_ops.c | 16
On 2019/9/11 下午5:36, Michael S. Tsirkin wrote:
On Wed, Sep 11, 2019 at 10:38:39AM +0800, Jason Wang wrote:
On 2019/9/10 下午9:52, Michael S. Tsirkin wrote:
On Tue, Sep 10, 2019 at 09:13:02PM +0800, Jason Wang wrote:
On 2019/9/10 下午6:01, Michael S. Tsirkin wrote:
+#ifndef _LINUX_VIRTIO_MDEV_H
On 2019/9/11 上午9:47, Tiwei Bie wrote:
On Tue, Sep 10, 2019 at 04:19:34PM +0800, Jason Wang wrote:
This path introduces a new mdev transport for virtio. This is used to
use kernel virtio driver to drive the mediated device that is capable
of populating virtqueue directly.
A new virtio-mdev
On 2019/9/10 下午9:52, Michael S. Tsirkin wrote:
On Tue, Sep 10, 2019 at 09:13:02PM +0800, Jason Wang wrote:
On 2019/9/10 下午6:01, Michael S. Tsirkin wrote:
+#ifndef _LINUX_VIRTIO_MDEV_H
+#define _LINUX_VIRTIO_MDEV_H
+
+#include
+#include
+#include
+
+/*
+ * Ioctls
+ */
Pls add a bit more
On 2019/9/10 下午6:15, Michael S. Tsirkin wrote:
On Tue, Sep 10, 2019 at 04:19:35PM +0800, Jason Wang wrote:
This sample driver creates mdev device that simulate virtio net device
over virtio mdev transport. The device is implemented through vringh
and workqueue.
Signed-off-by: Jason Wang
On 2019/9/10 下午6:01, Michael S. Tsirkin wrote:
+#ifndef _LINUX_VIRTIO_MDEV_H
+#define _LINUX_VIRTIO_MDEV_H
+
+#include
+#include
+#include
+
+/*
+ * Ioctls
+ */
Pls add a bit more content here. It's redundant to state these
are ioctls. Much better to document what does each one do.
Ok.
This sample driver creates mdev device that simulate virtio net device
over virtio mdev transport. The device is implemented through vringh
and workqueue.
Signed-off-by: Jason Wang
---
samples/Kconfig| 7 +
samples/vfio-mdev/Makefile | 1 +
samples/vfio-mdev/mvnet.c | 766
ending
mdev_parent_ops.
- for a quick POC, I just drive the transport from MMIO, I'm pretty
there's lot of optimization space for this.
Signed-off-by: Jason Wang
---
drivers/vfio/mdev/Kconfig| 7 +
drivers/vfio/mdev/Makefile | 1 +
drivers/vfio/mdev/virtio_mdev.c
This patch introduces mdev_set_dma_ops() which allows parent to set
per device DMA ops. This help for the kernel driver to setup a correct
DMA mappings.
Signed-off-by: Jason Wang
---
drivers/vfio/mdev/mdev_core.c | 7 +++
include/linux/mdev.h | 2 ++
2 files changed, 9 insertions
We want to copy from iov to buf, so the direction was wrong.
Signed-off-by: Jason Wang
---
drivers/vhost/vringh.c | 8 +++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
index 08ad0d1f0476..a0a2d74967ef 100644
--- a/drivers
and this could be addressed by inventing new parent_ops.
- For quick POC, mdev transport was just derived from virtio-MMIO,
I'm pretty sure it has lots of space to be optimized, please share
your thought.
Please review.
[1] https://lkml.org/lkml/2019/8/28/35
Jason Wang (4):
vringh: fix copy
On 2019/9/10 下午2:48, Michael S. Tsirkin wrote:
On Tue, Sep 10, 2019 at 09:52:10AM +0800, Jason Wang wrote:
On 2019/9/9 下午10:45, Michael S. Tsirkin wrote:
On Mon, Sep 09, 2019 at 03:19:55PM +0800, Jason Wang wrote:
On 2019/9/8 下午7:05, Michael S. Tsirkin wrote:
iovec addresses coming from
On 2019/9/9 下午10:45, Michael S. Tsirkin wrote:
On Mon, Sep 09, 2019 at 03:19:55PM +0800, Jason Wang wrote:
On 2019/9/8 下午7:05, Michael S. Tsirkin wrote:
iovec addresses coming from vhost are assumed to be
pre-validated, but in fact can be speculated to a value
out of range.
Userspace
On 2019/9/9 下午12:45, Michael S. Tsirkin wrote:
Since idx can be speculated, I guess we need array_index_nospec here?
So we have
ACQUIRE(mmu_lock)
get idx
RELEASE(mmu_lock)
ACQUIRE(mmu_lock)
read array[idx]
RELEASE(mmu_lock)
Then I think idx can't be speculated consider we've passed
On 2019/9/8 下午7:05, Michael S. Tsirkin wrote:
iovec addresses coming from vhost are assumed to be
pre-validated, but in fact can be speculated to a value
out of range.
Userspace address are later validated with array_index_nospec so we can
be sure kernel info does not leak through these
On 2019/9/6 下午9:15, David Miller wrote:
From: Jason Wang
Date: Fri, 6 Sep 2019 18:02:35 +0800
On 2019/9/5 下午9:59, Jason Gunthorpe wrote:
I think you should apply the revert this cycle and rebase the other
patch for next..
Jason
Yes, the plan is to revert in this release cycle.
Then you
On 2019/9/6 下午9:46, Michael S. Tsirkin wrote:
On Thu, Sep 05, 2019 at 08:27:35PM +0800, Jason Wang wrote:
It was reported that metadata acceleration introduces several issues,
so this patch reverts commit ff466032dc9e5a61217f22ea34b2df932786bbfc,
73f628ec9e6bcc45b77c53fe6d0c0ec55eaf82af
On 2019/9/9 上午10:18, Jason Wang wrote:
On a elder CPU Sandy Bridge without SMAP support. TX PPS doesn't see
any difference.
Why is not Kaby Lake with SMAP off the same as Sandy Bridge?
I don't know, I guess it was because the atomic is l
Sorry, I meant atomic costs less for Kaby Lake
On 2019/9/7 下午11:03, Jason Gunthorpe wrote:
On Fri, Sep 06, 2019 at 06:02:35PM +0800, Jason Wang wrote:
On 2019/9/5 下午9:59, Jason Gunthorpe wrote:
On Thu, Sep 05, 2019 at 08:27:34PM +0800, Jason Wang wrote:
Hi:
Per request from Michael and Jason, the metadata accelreation is
reverted
On 2019/9/8 下午7:05, Michael S. Tsirkin wrote:
On Thu, Sep 05, 2019 at 08:27:36PM +0800, Jason Wang wrote:
This is a rework on the commit 7f466032dc9e ("vhost: access vq
metadata through kernel virtual address").
It was noticed that the copy_to/from_user() friends that was used
On 2019/9/6 上午11:21, Hillf Danton wrote:
On Thu, 5 Sep 2019 20:27:36 +0800 From: Jason Wang
+static void vhost_set_map_dirty(struct vhost_virtqueue *vq,
+ struct vhost_map *map, int index)
+{
+ struct vhost_uaddr *uaddr = >uaddrs[index];
+ in
On 2019/9/5 下午9:59, Jason Gunthorpe wrote:
On Thu, Sep 05, 2019 at 08:27:34PM +0800, Jason Wang wrote:
Hi:
Per request from Michael and Jason, the metadata accelreation is
reverted in this version and rework in next version.
Please review.
Thanks
Jason Wang (2):
Revert "vhost: a
ernel.org
Signed-off-by: Jason Wang
Signed-off-by: Michael S. Tsirkin
---
drivers/vhost/vhost.c | 551 +-
drivers/vhost/vhost.h | 41
2 files changed, 589 insertions(+), 3 deletions(-)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.
-off-by: Jason Wang
---
drivers/vhost/vhost.c | 515 +-
drivers/vhost/vhost.h | 41
2 files changed, 3 insertions(+), 553 deletions(-)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 0536f8526359..791562e03fe0 100644
--- a/drivers/vhost
Hi:
Per request from Michael and Jason, the metadata accelreation is
reverted in this version and rework in next version.
Please review.
Thanks
Jason Wang (2):
Revert "vhost: access vq metadata through kernel virtual address"
vhost: re-introducing metadata acceleration thro
On 2019/9/4 上午10:48, Tiwei Bie wrote:
On Tue, Sep 03, 2019 at 07:26:03AM -0400, Michael S. Tsirkin wrote:
On Wed, Aug 28, 2019 at 01:37:12PM +0800, Tiwei Bie wrote:
Details about this can be found here:
https://lwn.net/Articles/750770/
What's new in this version
==
On 2019/9/3 上午9:56, Tiwei Bie wrote:
On Mon, Sep 02, 2019 at 12:15:05PM +0800, Jason Wang wrote:
On 2019/8/28 下午1:37, Tiwei Bie wrote:
Details about this can be found here:
https://lwn.net/Articles/750770/
What's new in this version
==
There are three choices based
On 2019/8/28 下午1:37, Tiwei Bie wrote:
Details about this can be found here:
https://lwn.net/Articles/750770/
What's new in this version
==
There are three choices based on the discussion [1] in RFC v2:
#1. We expose a VFIO device, so we can reuse the VFIO
On 2019/8/27 下午11:20, Matej Genci wrote:
> Compilers such as g++ 7.3 complain about assigning void* variable to
> a non-void* variable (like struct pointers) and pointer arithmetics
> on void*.
>
> Signed-off-by: Matej Genci
> ---
> include/uapi/linux/virtio_ring.h | 9 +
> 1 file
VHOST_TEST_VQ] = >vqs[VHOST_TEST_VQ];
> n->vqs[VHOST_TEST_VQ].handle_kick = handle_vq_kick;
> - vhost_dev_init(dev, vqs, VHOST_TEST_VQ_MAX, UIO_MAXIOV);
> + vhost_dev_init(dev, vqs, VHOST_TEST_VQ_MAX, UIO_MAXIOV,
> +VHOST_TEST_PKT_WEIGHT, VHOST_TEST_WEIGHT);
>
> f->private_data = n;
>
Acked-by: Jason Wang
pen(struct inode *inode, struct
> file *f)
> dev = >dev;
> vqs[VHOST_TEST_VQ] = >vqs[VHOST_TEST_VQ];
> n->vqs[VHOST_TEST_VQ].handle_kick = handle_vq_kick;
> - vhost_dev_init(dev, vqs, VHOST_TEST_VQ_MAX);
> + vhost_dev_init(dev, vqs, VHOST_TES
On 2019/8/20 上午5:08, Michael S. Tsirkin wrote:
On Tue, Aug 13, 2019 at 04:12:49PM +0800, Jason Wang wrote:
On 2019/8/12 下午5:49, Michael S. Tsirkin wrote:
On Mon, Aug 12, 2019 at 10:44:51AM +0800, Jason Wang wrote:
On 2019/8/11 上午1:52, Michael S. Tsirkin wrote:
On Fri, Aug 09, 2019 at 01:48
_delayed_work(>refill, 0);
}
Acked-by: Jason Wang
On 2019/8/15 下午4:36, 冉 jiang wrote:
On 2019/8/15 11:17, Jason Wang wrote:
On 2019/8/15 上午11:11, 冉 jiang wrote:
On 2019/8/15 11:01, Jason Wang wrote:
On 2019/8/14 上午10:06, ? jiang wrote:
This change lowers ring buffer reclaim threshold from 1/2*queue to
budget
for better performance
On 2019/8/15 下午4:36, 冉 jiang wrote:
On 2019/8/15 11:17, Jason Wang wrote:
On 2019/8/15 上午11:11, 冉 jiang wrote:
On 2019/8/15 11:01, Jason Wang wrote:
On 2019/8/14 上午10:06, ? jiang wrote:
This change lowers ring buffer reclaim threshold from 1/2*queue to
budget
for better performance
On 2019/8/14 上午12:41, Christoph Hellwig wrote:
On Tue, Aug 13, 2019 at 08:57:07AM -0300, Jason Gunthorpe wrote:
On Tue, Aug 13, 2019 at 04:31:07PM +0800, Jason Wang wrote:
What kind of issues do you see? Spinlock is to synchronize GUP with MMU
notifier in this series.
A GUP that can't
On 2019/8/13 下午7:57, Jason Gunthorpe wrote:
On Tue, Aug 13, 2019 at 04:31:07PM +0800, Jason Wang wrote:
What kind of issues do you see? Spinlock is to synchronize GUP with MMU
notifier in this series.
A GUP that can't sleep can't pagefault which makes it a really weird
pattern
My
On 2019/8/15 上午11:11, 冉 jiang wrote:
On 2019/8/15 11:01, Jason Wang wrote:
On 2019/8/14 上午10:06, ? jiang wrote:
This change lowers ring buffer reclaim threshold from 1/2*queue to
budget
for better performance. According to our test with qemu + dpdk, packet
dropping happens when the guest
On 2019/8/14 上午10:06, ? jiang wrote:
This change lowers ring buffer reclaim threshold from 1/2*queue to budget
for better performance. According to our test with qemu + dpdk, packet
dropping happens when the guest is not able to provide free buffer in
avail ring timely with default 1/2*queue.
On 2019/8/12 下午9:02, Jason Gunthorpe wrote:
On Mon, Aug 12, 2019 at 05:49:08AM -0400, Michael S. Tsirkin wrote:
On Mon, Aug 12, 2019 at 10:44:51AM +0800, Jason Wang wrote:
On 2019/8/11 上午1:52, Michael S. Tsirkin wrote:
On Fri, Aug 09, 2019 at 01:48:42AM -0400, Jason Wang wrote:
Hi all
On 2019/8/12 下午5:49, Michael S. Tsirkin wrote:
On Mon, Aug 12, 2019 at 10:44:51AM +0800, Jason Wang wrote:
On 2019/8/11 上午1:52, Michael S. Tsirkin wrote:
On Fri, Aug 09, 2019 at 01:48:42AM -0400, Jason Wang wrote:
Hi all:
This series try to fix several issues introduced by meta data
return buf;
}
Acked-by: Jason Wang
On 2019/8/11 上午1:52, Michael S. Tsirkin wrote:
On Fri, Aug 09, 2019 at 01:48:42AM -0400, Jason Wang wrote:
Hi all:
This series try to fix several issues introduced by meta data
accelreation series. Please review.
Changes from V4:
- switch to use spinlock synchronize MMU notifier
accessor path. Fixing by reset the count to
zero.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4
1 file changed, 4 insertions(+)
diff --git a/drivers/vhost
We don't free map during vhost_map_unprefetch(). This means it could
be leaked. Fixing by free the map.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4 +---
1 fi
: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index c12cdadb0855..cfc11f9ed9c9 100644
---
.
This means we are not as fast as what 7f466032dc9e did because the
spinlock overhead in the datapath. This needs to be addressed in the
future.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
--
.
Reported-and-tested-by:
syzbot+e58112d71f77113dd...@syzkaller.appspotmail.com
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 19 +++
drivers/vhost/vhost.h | 1 +
2 files changed, 16
We should not setup uaddr for the invalid address, otherwise we may
try to pin or prefetch mapping of wrong pages.
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 3 ++-
1 file changed, 2 insert
Instead of returning -EAGAIN unconditionally, we'd better do that only
we're sure the range is overlapped with the metadata area.
Reported-by: Jason Gunthorpe
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vho
We don't mark dirty pages if the map was teared down outside MMU
notifier. This will lead untracked dirty pages. Fixing by marking
dirty pages during map uninit.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off
We need make sure there's no reference on the map before trying to
mark set dirty pages.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 5 ++---
1 file changed, 2
notifier with vhost worker
Changes from V1:
- try not use RCU to syncrhonize MMU notifier with vhost worker
- set dirty pages after no readers
- return -EAGAIN only when we find the range is overlapped with
metadata
Jason Wang (9):
vhost: don't set uaddr for invalid address
vhost: validate MMU
On 2019/8/9 下午1:15, David Miller wrote:
From: Jason Wang
Date: Wed, 7 Aug 2019 03:06:08 -0400
This series try to fix several issues introduced by meta data
accelreation series. Please review.
...
My impression is that patch #7 will be changed to use spinlocks so there
will be a v5
- Original Message -
>
> On 2019/8/7 下午10:02, Jason Wang wrote:
> >
> > On 2019/8/7 下午8:07, Jason Gunthorpe wrote:
> >> On Wed, Aug 07, 2019 at 03:06:15AM -0400, Jason Wang wrote:
> >>> We used to use RCU to synchronize MMU notifier with worker. T
On 2019/8/7 下午10:02, Jason Wang wrote:
>
> On 2019/8/7 下午8:07, Jason Gunthorpe wrote:
>> On Wed, Aug 07, 2019 at 03:06:15AM -0400, Jason Wang wrote:
>>> We used to use RCU to synchronize MMU notifier with worker. This leads
>>> calling synchronize_rcu() in invalidat
On 2019/8/7 下午8:07, Jason Gunthorpe wrote:
On Wed, Aug 07, 2019 at 03:06:15AM -0400, Jason Wang wrote:
We used to use RCU to synchronize MMU notifier with worker. This leads
calling synchronize_rcu() in invalidate_range_start(). But on a busy
system, there would be many factors that may slow
Instead of returning -EAGAIN unconditionally, we'd better do that only
we're sure the range is overlapped with the metadata area.
Reported-by: Jason Gunthorpe
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vho
We don't free map during vhost_map_unprefetch(). This means it could
be leaked. Fixing by free the map.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4 +---
1 fi
again then we are
synchronized. Consider the read critical section is pretty small the
synchronization should be done very fast.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vho
accessor path. Fixing by reset the count to
zero.
Reported-by: Michael S. Tsirkin
Reported-by: Jason Gunthorpe
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4
1 file changed, 4 insertions(+)
We should not setup uaddr for the invalid address, otherwise we may
try to pin or prefetch mapping of wrong pages.
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 3 ++-
1 file changed, 2 insert
notifier with vhost worker
- set dirty pages after no readers
- return -EAGAIN only when we find the range is overlapped with
metadata
Jason Wang (9):
vhost: don't set uaddr for invalid address
vhost: validate MMU notifier registration
vhost: fix vhost map leak
vhost: reset invalidate_count
: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index c12cdadb0855..cfc11f9ed9c9 100644
---
We don't mark dirty pages if the map was teared down outside MMU
notifier. This will lead untracked dirty pages. Fixing by marking
dirty pages during map uninit.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off
.
Reported-and-tested-by:
syzbot+e58112d71f77113dd...@syzkaller.appspotmail.com
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 19 +++
drivers/vhost/vhost.h | 1 +
2 files changed, 16
We need make sure there's no reference on the map before trying to
mark set dirty pages.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 5 ++---
1 file changed, 2
On 2019/8/7 下午2:54, Jason Wang wrote:
From: "Michael S. Tsirkin"
This seems to cause guest and host memory corruption.
Disable for now until we get a better handle on that.
Signed-off-by: Michael S. Tsirkin
---
drivers/vhost/vhost.h | 2 +-
1 file changed, 1 insertion(+),
again then we are
synchronized. Consider the read critical section is pretty small the
synchronization should be done very fast.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vho
We need make sure there's no reference on the map before trying to
mark set dirty pages.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 5 ++---
1 file changed, 2
: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index c12cdadb0855..cfc11f9ed9c9 100644
---
We don't mark dirty pages if the map was teared down outside MMU
notifier. This will lead untracked dirty pages. Fixing by marking
dirty pages during map uninit.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off
We don't free map during vhost_map_unprefetch(). This means it could
be leaked. Fixing by free the map.
Reported-by: Michael S. Tsirkin
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4 +---
1 fi
Instead of returning -EAGAIN unconditionally, we'd better do that only
we're sure the range is overlapped with the metadata area.
Reported-by: Jason Gunthorpe
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vho
accessor path. Fixing by reset the count to
zero.
Reported-by: Michael S. Tsirkin
Reported-by: Jason Gunthorpe
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 4
1 file changed, 4 insertions(+)
From: "Michael S. Tsirkin"
This seems to cause guest and host memory corruption.
Disable for now until we get a better handle on that.
Signed-off-by: Michael S. Tsirkin
---
drivers/vhost/vhost.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/vhost/vhost.h
.
Reported-and-tested-by:
syzbot+e58112d71f77113dd...@syzkaller.appspotmail.com
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 19 +++
drivers/vhost/vhost.h | 1 +
2 files changed, 16
We should not setup uaddr for the invalid address, otherwise we may
try to pin or prefetch mapping of wrong pages.
Fixes: 7f466032dc9e ("vhost: access vq metadata through kernel virtual address")
Signed-off-by: Jason Wang
---
drivers/vhost/vhost.c | 3 ++-
1 file changed, 2 insert
no readers
- return -EAGAIN only when we find the range is overlapped with
metadata
Jason Wang (9):
vhost: don't set uaddr for invalid address
vhost: validate MMU notifier registration
vhost: fix vhost map leak
vhost: reset invalidate_count in vhost_set_vring_num_addr()
vhost: mark
On 2019/8/6 下午8:04, Jason Gunthorpe wrote:
On Mon, Aug 05, 2019 at 12:20:45PM +0800, Jason Wang wrote:
On 2019/8/2 下午8:46, Jason Gunthorpe wrote:
On Fri, Aug 02, 2019 at 05:40:07PM +0800, Jason Wang wrote:
This must be a proper barrier, like a spinlock, mutex, or
synchronize_rcu.
I start
On 2019/8/5 下午2:40, Michael S. Tsirkin wrote:
On Mon, Aug 05, 2019 at 12:41:45PM +0800, Jason Wang wrote:
On 2019/8/5 下午12:36, Jason Wang wrote:
On 2019/8/2 下午10:27, Michael S. Tsirkin wrote:
On Fri, Aug 02, 2019 at 09:46:13AM -0300, Jason Gunthorpe wrote:
On Fri, Aug 02, 2019 at 05:40
On 2019/8/5 下午2:30, Michael S. Tsirkin wrote:
On Mon, Aug 05, 2019 at 12:36:40PM +0800, Jason Wang wrote:
On 2019/8/2 下午10:27, Michael S. Tsirkin wrote:
On Fri, Aug 02, 2019 at 09:46:13AM -0300, Jason Gunthorpe wrote:
On Fri, Aug 02, 2019 at 05:40:07PM +0800, Jason Wang wrote:
This must
On 2019/8/5 下午2:28, Michael S. Tsirkin wrote:
On Mon, Aug 05, 2019 at 12:33:45PM +0800, Jason Wang wrote:
On 2019/8/2 下午10:03, Michael S. Tsirkin wrote:
On Fri, Aug 02, 2019 at 05:40:07PM +0800, Jason Wang wrote:
Btw, I come up another idea, that is to disable preemption when vhost thread
On 2019/8/4 上午5:54, Michael S. Tsirkin wrote:
On Thu, Aug 01, 2019 at 04:06:13AM -0400, Jason Wang wrote:
On 2019/8/1 上午2:29, Michael S. Tsirkin wrote:
On Wed, Jul 31, 2019 at 04:46:53AM -0400, Jason Wang wrote:
We used to use RCU to synchronize MMU notifier with worker. This leads
calling
901 - 1000 of 4497 matches
Mail list logo