Message ID | 1599375114-32360-2-git-send-email-jrdr.linux@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | fd12f5db0730912492afbccfd239fa0d828c8ad6 |
Headers | show |
Series | [1/2] xen/gntdev.c: Mark pages as dirty | expand |
On 9/6/20 2:51 AM, Souptick Joarder wrote: > In 2019, we introduced pin_user_pages*() and now we are converting > get_user_pages*() to the new API as appropriate. [1] & [2] could > be referred for more information. This is case 5 as per document [1]. > > [1] Documentation/core-api/pin_user_pages.rst > > [2] "Explicit pinning of user-space pages": > https://lwn.net/Articles/807108/ > > Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> > Cc: John Hubbard <jhubbard@nvidia.com> > Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> > Cc: Juergen Gross <jgross@suse.com> > Cc: David Vrabel <david.vrabel@citrix.com> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
On Fri, Sep 11, 2020 at 8:12 PM <boris.ostrovsky@oracle.com> wrote: > > > On 9/6/20 2:51 AM, Souptick Joarder wrote: > > In 2019, we introduced pin_user_pages*() and now we are converting > > get_user_pages*() to the new API as appropriate. [1] & [2] could > > be referred for more information. This is case 5 as per document [1]. > > > > [1] Documentation/core-api/pin_user_pages.rst > > > > [2] "Explicit pinning of user-space pages": > > https://lwn.net/Articles/807108/ > > > > Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> > > Cc: John Hubbard <jhubbard@nvidia.com> > > Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> > > Cc: Juergen Gross <jgross@suse.com> > > Cc: David Vrabel <david.vrabel@citrix.com> > > > Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> Are these 2 patches queued for 5.10-rc1 ? > >
On 9/29/20 8:09 AM, Souptick Joarder wrote: > On Fri, Sep 11, 2020 at 8:12 PM <boris.ostrovsky@oracle.com> wrote: >> >> On 9/6/20 2:51 AM, Souptick Joarder wrote: >>> In 2019, we introduced pin_user_pages*() and now we are converting >>> get_user_pages*() to the new API as appropriate. [1] & [2] could >>> be referred for more information. This is case 5 as per document [1]. >>> >>> [1] Documentation/core-api/pin_user_pages.rst >>> >>> [2] "Explicit pinning of user-space pages": >>> https://lwn.net/Articles/807108/ >>> >>> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> >>> Cc: John Hubbard <jhubbard@nvidia.com> >>> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> >>> Cc: Juergen Gross <jgross@suse.com> >>> Cc: David Vrabel <david.vrabel@citrix.com> >> >> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> > Are these 2 patches queued for 5.10-rc1 ? Yes, I am preparing the branch. (BTW, your second patch appears to have been either manually edited or not generated on top of the first patch. Please don't do this next time) -boris
On Tue, Sep 29, 2020 at 6:00 PM <boris.ostrovsky@oracle.com> wrote: > > > On 9/29/20 8:09 AM, Souptick Joarder wrote: > > On Fri, Sep 11, 2020 at 8:12 PM <boris.ostrovsky@oracle.com> wrote: > >> > >> On 9/6/20 2:51 AM, Souptick Joarder wrote: > >>> In 2019, we introduced pin_user_pages*() and now we are converting > >>> get_user_pages*() to the new API as appropriate. [1] & [2] could > >>> be referred for more information. This is case 5 as per document [1]. > >>> > >>> [1] Documentation/core-api/pin_user_pages.rst > >>> > >>> [2] "Explicit pinning of user-space pages": > >>> https://lwn.net/Articles/807108/ > >>> > >>> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> > >>> Cc: John Hubbard <jhubbard@nvidia.com> > >>> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> > >>> Cc: Juergen Gross <jgross@suse.com> > >>> Cc: David Vrabel <david.vrabel@citrix.com> > >> > >> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> > > Are these 2 patches queued for 5.10-rc1 ? > > > Yes, I am preparing the branch. (BTW, your second patch appears to have been either manually edited or not generated on top of the first patch. Please don't do this next time) I created it on top of the first one and didn't edit manually. I was able to apply it in my local repository. What was the error ?
On 9/29/20 10:14 PM, Souptick Joarder wrote: > On Tue, Sep 29, 2020 at 6:00 PM <boris.ostrovsky@oracle.com> wrote: >> >> >> On 9/29/20 8:09 AM, Souptick Joarder wrote: >>> On Fri, Sep 11, 2020 at 8:12 PM <boris.ostrovsky@oracle.com> wrote: >>>> >>>> On 9/6/20 2:51 AM, Souptick Joarder wrote: >>>>> In 2019, we introduced pin_user_pages*() and now we are converting >>>>> get_user_pages*() to the new API as appropriate. [1] & [2] could >>>>> be referred for more information. This is case 5 as per document [1]. >>>>> >>>>> [1] Documentation/core-api/pin_user_pages.rst >>>>> >>>>> [2] "Explicit pinning of user-space pages": >>>>> https://lwn.net/Articles/807108/ >>>>> >>>>> Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> >>>>> Cc: John Hubbard <jhubbard@nvidia.com> >>>>> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> >>>>> Cc: Juergen Gross <jgross@suse.com> >>>>> Cc: David Vrabel <david.vrabel@citrix.com> >>>> >>>> Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com> >>> Are these 2 patches queued for 5.10-rc1 ? >> >> >> Yes, I am preparing the branch. (BTW, your second patch appears to have been either manually edited or not generated on top of the first patch. Please don't do this next time) > > I created it on top of the first one and didn't edit manually. > I was able to apply it in my local repository. > What was the error ? > Patch 1: + if (batch->writeable && !PageDirty(batch->pages[i])) Patch 2: - if(batch->writeable && !PageDirty(batch->pages[i])) This doesn't look to me like usual whitespace damage in-flight. Anyway, this has been applied to for-linus-5.10 -boris
diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c index 5e1411b..a36b712 100644 --- a/drivers/xen/gntdev.c +++ b/drivers/xen/gntdev.c @@ -731,7 +731,7 @@ static int gntdev_get_page(struct gntdev_copy_batch *batch, void __user *virt, unsigned long xen_pfn; int ret; - ret = get_user_pages_fast(addr, 1, batch->writeable ? FOLL_WRITE : 0, &page); + ret = pin_user_pages_fast(addr, 1, batch->writeable ? FOLL_WRITE : 0, &page); if (ret < 0) return ret; @@ -745,13 +745,7 @@ static int gntdev_get_page(struct gntdev_copy_batch *batch, void __user *virt, static void gntdev_put_pages(struct gntdev_copy_batch *batch) { - unsigned int i; - - for (i = 0; i < batch->nr_pages; i++) { - if(batch->writeable && !PageDirty(batch->pages[i])) - set_page_dirty_lock(batch->pages[i]); - put_page(batch->pages[i]); - } + unpin_user_pages_dirty_lock(batch->pages, batch->nr_pages, batch->writeable); batch->nr_pages = 0; batch->writeable = false; }
In 2019, we introduced pin_user_pages*() and now we are converting get_user_pages*() to the new API as appropriate. [1] & [2] could be referred for more information. This is case 5 as per document [1]. [1] Documentation/core-api/pin_user_pages.rst [2] "Explicit pinning of user-space pages": https://lwn.net/Articles/807108/ Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> Cc: John Hubbard <jhubbard@nvidia.com> Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com> Cc: Juergen Gross <jgross@suse.com> Cc: David Vrabel <david.vrabel@citrix.com> --- drivers/xen/gntdev.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-)