search for: __get_user_pages_fast

Displaying 15 results from an estimated 15 matches for "__get_user_pages_fast".

2019 Sep 06
1
[PATCH 1/2] Revert "vhost: access vq metadata through kernel virtual address"
...) > - goto err; > - > - err = -ENOMEM; > - map = kmalloc(sizeof(*map), GFP_ATOMIC); > - if (!map) > - goto err; > - > - pages = kmalloc_array(npages, sizeof(struct page *), GFP_ATOMIC); > - if (!pages) > - goto err_pages; > - > - err = EFAULT; > - npinned = __get_user_pages_fast(uaddr->uaddr, npages, > - uaddr->write, pages); > - if (npinned > 0) > - release_pages(pages, npinned); > - if (npinned != npages) > - goto err_gup; > - > - for (i = 0; i < npinned; i++) > - if (PageHighMem(pages[i])) > - goto err_gup; > - > - v...
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 08
3
[PATCH 2/2] vhost: re-introducing metadata acceleration through kernel virtual address
...) > + goto err; > + > + err = -ENOMEM; > + map = kmalloc(sizeof(*map), GFP_ATOMIC); > + if (!map) > + goto err; > + > + pages = kmalloc_array(npages, sizeof(struct page *), GFP_ATOMIC); > + if (!pages) > + goto err_pages; > + > + err = EFAULT; > + npinned = __get_user_pages_fast(uaddr->uaddr, npages, > + uaddr->write, pages); > + if (npinned > 0) > + release_pages(pages, npinned); > + if (npinned != npages) > + goto err_gup; > + > + for (i = 0; i < npinned; i++) > + if (PageHighMem(pages[i])) > + goto err_gup; > + > + v...
2019 Sep 08
3
[PATCH 2/2] vhost: re-introducing metadata acceleration through kernel virtual address
...) > + goto err; > + > + err = -ENOMEM; > + map = kmalloc(sizeof(*map), GFP_ATOMIC); > + if (!map) > + goto err; > + > + pages = kmalloc_array(npages, sizeof(struct page *), GFP_ATOMIC); > + if (!pages) > + goto err_pages; > + > + err = EFAULT; > + npinned = __get_user_pages_fast(uaddr->uaddr, npages, > + uaddr->write, pages); > + if (npinned > 0) > + release_pages(pages, npinned); > + if (npinned != npages) > + goto err_gup; > + > + for (i = 0; i < npinned; i++) > + if (PageHighMem(pages[i])) > + goto err_gup; > + > + v...
2019 Sep 05
0
[PATCH 1/2] Revert "vhost: access vq metadata through kernel virtual address"
...q->mmu_lock); - - err = -EFAULT; - if (vq->invalidate_count) - goto err; - - err = -ENOMEM; - map = kmalloc(sizeof(*map), GFP_ATOMIC); - if (!map) - goto err; - - pages = kmalloc_array(npages, sizeof(struct page *), GFP_ATOMIC); - if (!pages) - goto err_pages; - - err = EFAULT; - npinned = __get_user_pages_fast(uaddr->uaddr, npages, - uaddr->write, pages); - if (npinned > 0) - release_pages(pages, npinned); - if (npinned != npages) - goto err_gup; - - for (i = 0; i < npinned; i++) - if (PageHighMem(pages[i])) - goto err_gup; - - vaddr = v = page_address(pages[0]); - - /* For simplicit...
2019 Sep 09
0
[PATCH 2/2] vhost: re-introducing metadata acceleration through kernel virtual address
...-ENOMEM; >> + map = kmalloc(sizeof(*map), GFP_ATOMIC); >> + if (!map) >> + goto err; >> + >> + pages = kmalloc_array(npages, sizeof(struct page *), GFP_ATOMIC); >> + if (!pages) >> + goto err_pages; >> + >> + err = EFAULT; >> + npinned = __get_user_pages_fast(uaddr->uaddr, npages, >> + uaddr->write, pages); >> + if (npinned > 0) >> + release_pages(pages, npinned); >> + if (npinned != npages) >> + goto err_gup; >> + >> + for (i = 0; i < npinned; i++) >> + if (PageHighMem(pages[i])) >&g...
2019 Sep 09
1
[PATCH 2/2] vhost: re-introducing metadata acceleration through kernel virtual address
...OMIC); > > > + if (!map) > > > + goto err; > > > + > > > + pages = kmalloc_array(npages, sizeof(struct page *), GFP_ATOMIC); > > > + if (!pages) > > > + goto err_pages; > > > + > > > + err = EFAULT; > > > + npinned = __get_user_pages_fast(uaddr->uaddr, npages, > > > + uaddr->write, pages); > > > + if (npinned > 0) > > > + release_pages(pages, npinned); > > > + if (npinned != npages) > > > + goto err_gup; > > > + > > > + for (i = 0; i < npinned; i++) &gt...
2019 Sep 05
0
[PATCH 2/2] vhost: re-introducing metadata acceleration through kernel virtual address
...q->mmu_lock); + + err = -EFAULT; + if (vq->invalidate_count) + goto err; + + err = -ENOMEM; + map = kmalloc(sizeof(*map), GFP_ATOMIC); + if (!map) + goto err; + + pages = kmalloc_array(npages, sizeof(struct page *), GFP_ATOMIC); + if (!pages) + goto err_pages; + + err = EFAULT; + npinned = __get_user_pages_fast(uaddr->uaddr, npages, + uaddr->write, pages); + if (npinned > 0) + release_pages(pages, npinned); + if (npinned != npages) + goto err_gup; + + for (i = 0; i < npinned; i++) + if (PageHighMem(pages[i])) + goto err_gup; + + vaddr = v = page_address(pages[0]); + + /* For simplicit...
2019 Apr 23
7
[RFC PATCH V3 0/6] vhost: accelerate metadata access
This series tries to access virtqueue metadata through kernel virtual address instead of copy_user() friends since they had too much overheads like checks, spec barriers or even hardware feature toggling. This is done through setup kernel address through direct mapping and co-opreate VM management with MMU notifiers. Test shows about 23% improvement on TX PPS. TCP_STREAM doesn't see obvious
2019 May 24
10
[PATCH net-next 0/6] vhost: accelerate metadata access
Hi: This series tries to access virtqueue metadata through kernel virtual address instead of copy_user() friends since they had too much overheads like checks, spec barriers or even hardware feature toggling like SMAP. This is done through setup kernel address through direct mapping and co-opreate VM management with MMU notifiers. Test shows about 23% improvement on TX PPS. TCP_STREAM
2019 May 24
10
[PATCH net-next 0/6] vhost: accelerate metadata access
Hi: This series tries to access virtqueue metadata through kernel virtual address instead of copy_user() friends since they had too much overheads like checks, spec barriers or even hardware feature toggling like SMAP. This is done through setup kernel address through direct mapping and co-opreate VM management with MMU notifiers. Test shows about 23% improvement on TX PPS. TCP_STREAM
2019 Aug 09
6
[RFC PATCH v6 71/92] mm: add support for remote mapping
...+ spin_unlock(&tdb->lock); + + target_db_put(tdb); + + return result; +} + +/* Last resort call if memory of client got unmapped before ioctl(REM_UNMAP) */ +static bool not_mapped_in_client(struct page_db *pdb) +{ + int numpages; + struct page *req_page; + bool result = false; + + numpages = __get_user_pages_fast(pdb->map_hva, 1, 0, &req_page); + if (numpages == 0) + return true; + + /* page was munmapped & replaced by a normal page */ + if (!PageRemote(req_page)) + result = true; + + put_page(req_page); + return result; +} + +/* + * Clear all the links to a target at once. + */ +static void mm...
2019 Aug 09
117
[RFC PATCH v6 00/92] VM introspection
The KVM introspection subsystem provides a facility for applications running on the host or in a separate VM, to control the execution of other VM-s (pause, resume, shutdown), query the state of the vCPUs (GPRs, MSRs etc.), alter the page access bits in the shadow page tables (only for the hardware backed ones, eg. Intel's EPT) and receive notifications when events of interest have taken place
2019 Aug 09
117
[RFC PATCH v6 00/92] VM introspection
The KVM introspection subsystem provides a facility for applications running on the host or in a separate VM, to control the execution of other VM-s (pause, resume, shutdown), query the state of the vCPUs (GPRs, MSRs etc.), alter the page access bits in the shadow page tables (only for the hardware backed ones, eg. Intel's EPT) and receive notifications when events of interest have taken place