search for: invalidate_count

Displaying 20 results from an estimated 55 matches for "invalidate_count".

2019 Jul 31
2
[PATCH V2 4/9] vhost: reset invalidate_count in vhost_set_vring_num_addr()
On Wed, Jul 31, 2019 at 04:46:50AM -0400, Jason Wang wrote: > The vhost_set_vring_num_addr() could be called in the middle of > invalidate_range_start() and invalidate_range_end(). If we don't reset > invalidate_count after the un-registering of MMU notifier, the > invalidate_cont will run out of sync (e.g never reach zero). This will > in fact disable the fast accessor path. Fixing by reset the count to > zero. > > Reported-by: Michael S. Tsirkin <mst at redhat.com> Did Michael report thi...
2019 Jul 31
2
[PATCH V2 4/9] vhost: reset invalidate_count in vhost_set_vring_num_addr()
On Wed, Jul 31, 2019 at 04:46:50AM -0400, Jason Wang wrote: > The vhost_set_vring_num_addr() could be called in the middle of > invalidate_range_start() and invalidate_range_end(). If we don't reset > invalidate_count after the un-registering of MMU notifier, the > invalidate_cont will run out of sync (e.g never reach zero). This will > in fact disable the fast accessor path. Fixing by reset the count to > zero. > > Reported-by: Michael S. Tsirkin <mst at redhat.com> Did Michael report thi...
2019 Jul 23
1
[PATCH 4/6] vhost: reset invalidate_count in vhost_set_vring_num_addr()
On Tue, Jul 23, 2019 at 03:57:16AM -0400, Jason Wang wrote: > The vhost_set_vring_num_addr() could be called in the middle of > invalidate_range_start() and invalidate_range_end(). If we don't reset > invalidate_count after the un-registering of MMU notifier, the > invalidate_cont will run out of sync (e.g never reach zero). This will > in fact disable the fast accessor path. Fixing by reset the count to > zero. > > Reported-by: Michael S. Tsirkin <mst at redhat.com> > Fixes: 7f466032dc9...
2019 Jul 23
0
[PATCH 4/6] vhost: reset invalidate_count in vhost_set_vring_num_addr()
The vhost_set_vring_num_addr() could be called in the middle of invalidate_range_start() and invalidate_range_end(). If we don't reset invalidate_count after the un-registering of MMU notifier, the invalidate_cont will run out of sync (e.g never reach zero). This will in fact disable the fast accessor path. Fixing by reset the count to zero. Reported-by: Michael S. Tsirkin <mst at redhat.com> Fixes: 7f466032dc9e ("vhost: access vq meta...
2019 Jul 31
0
[PATCH V2 4/9] vhost: reset invalidate_count in vhost_set_vring_num_addr()
The vhost_set_vring_num_addr() could be called in the middle of invalidate_range_start() and invalidate_range_end(). If we don't reset invalidate_count after the un-registering of MMU notifier, the invalidate_cont will run out of sync (e.g never reach zero). This will in fact disable the fast accessor path. Fixing by reset the count to zero. Reported-by: Michael S. Tsirkin <mst at redhat.com> Fixes: 7f466032dc9e ("vhost: access vq meta...
2019 Jul 31
0
[PATCH V2 4/9] vhost: reset invalidate_count in vhost_set_vring_num_addr()
On 2019/7/31 ??8:41, Jason Gunthorpe wrote: > On Wed, Jul 31, 2019 at 04:46:50AM -0400, Jason Wang wrote: >> The vhost_set_vring_num_addr() could be called in the middle of >> invalidate_range_start() and invalidate_range_end(). If we don't reset >> invalidate_count after the un-registering of MMU notifier, the >> invalidate_cont will run out of sync (e.g never reach zero). This will >> in fact disable the fast accessor path. Fixing by reset the count to >> zero. >> >> Reported-by: Michael S. Tsirkin <mst at redhat.com> >...
2019 Jul 31
2
[PATCH V2 4/9] vhost: reset invalidate_count in vhost_set_vring_num_addr()
...; On 2019/7/31 ??8:41, Jason Gunthorpe wrote: > > On Wed, Jul 31, 2019 at 04:46:50AM -0400, Jason Wang wrote: > > > The vhost_set_vring_num_addr() could be called in the middle of > > > invalidate_range_start() and invalidate_range_end(). If we don't reset > > > invalidate_count after the un-registering of MMU notifier, the > > > invalidate_cont will run out of sync (e.g never reach zero). This will > > > in fact disable the fast accessor path. Fixing by reset the count to > > > zero. > > > > > > Reported-by: Michael S. Tsirkin...
2019 Mar 08
1
[RFC PATCH V2 5/5] vhost: access vq metadata through kernel virtual address
...unter of number of active invalidation would. See how KSM is doing it for instance in kvm_main.c The pattern for this kind of thing is: my_invalidate_range_start(start,end) { ... if (mystruct_overlap(mystruct, start, end)) { mystruct_lock(); mystruct->invalidate_count++; ... mystruct_unlock(); } } my_invalidate_range_end(start,end) { ... if (mystruct_overlap(mystruct, start, end)) { mystruct_lock(); mystruct->invalidate_count--; ... mystruct_unlock();...
2019 Mar 08
1
[RFC PATCH V2 5/5] vhost: access vq metadata through kernel virtual address
...unter of number of active invalidation would. See how KSM is doing it for instance in kvm_main.c The pattern for this kind of thing is: my_invalidate_range_start(start,end) { ... if (mystruct_overlap(mystruct, start, end)) { mystruct_lock(); mystruct->invalidate_count++; ... mystruct_unlock(); } } my_invalidate_range_end(start,end) { ... if (mystruct_overlap(mystruct, start, end)) { mystruct_lock(); mystruct->invalidate_count--; ... mystruct_unlock();...
2019 Aug 09
11
[PATCH V5 0/9] Fixes for vhost metadata acceleration
...onize 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 notifier registration vhost: fix vhost map leak vhost: reset invalidate_count in vhost_set_vring_num_addr() vhost: mark dirty pages during map uninit vhost: don't do synchronize_rcu() in vhost_uninit_vq_maps() vhost: do not use RCU to synchronize MMU notifier with worker vhost: correctly set dirty pages in MMU notifiers callback vhost: do not return -EAGAIN for...
2019 Aug 09
11
[PATCH V5 0/9] Fixes for vhost metadata acceleration
...onize 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 notifier registration vhost: fix vhost map leak vhost: reset invalidate_count in vhost_set_vring_num_addr() vhost: mark dirty pages during map uninit vhost: don't do synchronize_rcu() in vhost_uninit_vq_maps() vhost: do not use RCU to synchronize MMU notifier with worker vhost: correctly set dirty pages in MMU notifiers callback vhost: do not return -EAGAIN for...
2019 Jul 23
10
[PATCH 0/6] Fixes for meta data acceleration
Hi all: This series try to fix several issues introduced by meta data accelreation series. Please review. Jason Wang (6): 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 dirty pages during map uninit vhost: don't do synchronize_rcu() in vhost_uninit_vq_maps() drivers/vhost/vhost.c | 56 +++++++++++++++++++++++++++++++------------ drivers/vhost/vhost.h | 1 + 2 files changed, 42 insertions(+), 15 deletions(-) --...
2019 Sep 05
0
[PATCH 2/2] vhost: re-introducing metadata acceleration through kernel virtual address
...rt, + unsigned long end, + bool blockable) +{ + struct vhost_uaddr *uaddr = &vq->uaddrs[index]; + struct vhost_map *map; + + if (!vhost_map_range_overlap(uaddr, start, end)) + return 0; + else if (!blockable) + return -EAGAIN; + + spin_lock(&vq->mmu_lock); + ++vq->invalidate_count; + + map = vq->maps[index]; + if (map) + vq->maps[index] = NULL; + spin_unlock(&vq->mmu_lock); + + if (map) { + vhost_set_map_dirty(vq, map, index); + vhost_map_unprefetch(map); + } + + return 0; +} + +static void vhost_invalidate_vq_end(struct vhost_virtqueue *vq, + int inde...
2019 Sep 05
8
[PATCH 0/2] Revert and rework on the metadata accelreation
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 through kernel virtual address drivers/vhost/vhost.c | 202 +++++++++++++++++++++++++-----------------
2019 Sep 05
8
[PATCH 0/2] Revert and rework on the metadata accelreation
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 through kernel virtual address drivers/vhost/vhost.c | 202 +++++++++++++++++++++++++-----------------
2019 Sep 06
1
[PATCH 1/2] Revert "vhost: access vq metadata through kernel virtual address"
...g start, > - unsigned long end) > -{ > - struct vhost_uaddr *uaddr = &vq->uaddrs[index]; > - struct vhost_map *map; > - int i; > - > - if (!vhost_map_range_overlap(uaddr, start, end)) > - return; > - > - spin_lock(&vq->mmu_lock); > - ++vq->invalidate_count; > - > - map = rcu_dereference_protected(vq->maps[index], > - lockdep_is_held(&vq->mmu_lock)); > - if (map) { > - if (uaddr->write) { > - for (i = 0; i < map->npages; i++) > - set_page_dirty(map->pages[i]); > - } > - rcu_assign_pointer(vq...
2019 Mar 11
0
[RFC PATCH V2 5/5] vhost: access vq metadata through kernel virtual address
...would. See how KSM is doing it for instance in kvm_main.c > > The pattern for this kind of thing is: > my_invalidate_range_start(start,end) { > ... > if (mystruct_overlap(mystruct, start, end)) { > mystruct_lock(); > mystruct->invalidate_count++; > ... > mystruct_unlock(); > } > } > > my_invalidate_range_end(start,end) { > ... > if (mystruct_overlap(mystruct, start, end)) { > mystruct_lock(); > mystruct->invalidate_co...
2019 Aug 12
5
[PATCH V5 0/9] Fixes for vhost metadata acceleration
...> - 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 dirty pages during map uninit >> vhost: don't do synchronize_rcu() in vhost_uninit_vq_maps() >> vhost: do not use RCU to synchronize MMU notifier with worker >> vhost: correctly set dirty pages in MMU notifiers cal...
2019 Aug 12
5
[PATCH V5 0/9] Fixes for vhost metadata acceleration
...> - 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 dirty pages during map uninit >> vhost: don't do synchronize_rcu() in vhost_uninit_vq_maps() >> vhost: do not use RCU to synchronize MMU notifier with worker >> vhost: correctly set dirty pages in MMU notifiers cal...
2019 Aug 07
11
[PATCH V3 00/10] Fixes for metadata accelreation
...onize 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 notifier registration vhost: fix vhost map leak vhost: reset invalidate_count in vhost_set_vring_num_addr() vhost: mark dirty pages during map uninit vhost: don't do synchronize_rcu() in vhost_uninit_vq_maps() vhost: do not use RCU to synchronize MMU notifier with worker vhost: correctly set dirty pages in MMU notifiers callback vhost: do not return -EAGAIN for...