From: Jerome Glisse <jglisse@redhat.com>
To: Ralph Campbell <rcampbell@nvidia.com>
Cc: Christoph Hellwig <hch@lst.de>,
Jason Gunthorpe <jgg@mellanox.com>,
Ben Skeggs <bskeggs@redhat.com>,
Bharata B Rao <bharata@linux.ibm.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, nouveau@lists.freedesktop.org,
dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 9/9] mm: remove the MIGRATE_PFN_WRITE flag
Date: Mon, 29 Jul 2019 19:46:11 -0400 [thread overview]
Message-ID: <20190729234611.GC7171@redhat.com> (raw)
In-Reply-To: <1f0ef337-6ca5-54fa-e627-41a46be73f2b@nvidia.com>
On Mon, Jul 29, 2019 at 04:42:01PM -0700, Ralph Campbell wrote:
>
> On 7/29/19 7:28 AM, Christoph Hellwig wrote:
> > The MIGRATE_PFN_WRITE is only used locally in migrate_vma_collect_pmd,
> > where it can be replaced with a simple boolean local variable.
> >
> > Signed-off-by: Christoph Hellwig <hch@lst.de>
>
> Reviewed-by: Ralph Campbell <rcampbell@nvidia.com>
>
> > ---
> > include/linux/migrate.h | 1 -
> > mm/migrate.c | 9 +++++----
> > 2 files changed, 5 insertions(+), 5 deletions(-)
> >
> > diff --git a/include/linux/migrate.h b/include/linux/migrate.h
> > index 8b46cfdb1a0e..ba74ef5a7702 100644
> > --- a/include/linux/migrate.h
> > +++ b/include/linux/migrate.h
> > @@ -165,7 +165,6 @@ static inline int migrate_misplaced_transhuge_page(struct mm_struct *mm,
> > #define MIGRATE_PFN_VALID (1UL << 0)
> > #define MIGRATE_PFN_MIGRATE (1UL << 1)
> > #define MIGRATE_PFN_LOCKED (1UL << 2)
> > -#define MIGRATE_PFN_WRITE (1UL << 3)
> > #define MIGRATE_PFN_SHIFT 6
> > static inline struct page *migrate_pfn_to_page(unsigned long mpfn)
> > diff --git a/mm/migrate.c b/mm/migrate.c
> > index 74735256e260..724f92dcc31b 100644
> > --- a/mm/migrate.c
> > +++ b/mm/migrate.c
> > @@ -2212,6 +2212,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
> > unsigned long mpfn, pfn;
> > struct page *page;
> > swp_entry_t entry;
> > + bool writable = false;
> > pte_t pte;
> > pte = *ptep;
> > @@ -2240,7 +2241,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
> > mpfn = migrate_pfn(page_to_pfn(page)) |
> > MIGRATE_PFN_MIGRATE;
> > if (is_write_device_private_entry(entry))
> > - mpfn |= MIGRATE_PFN_WRITE;
> > + writable = true;
> > } else {
> > if (is_zero_pfn(pfn)) {
> > mpfn = MIGRATE_PFN_MIGRATE;
> > @@ -2250,7 +2251,8 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
> > }
> > page = vm_normal_page(migrate->vma, addr, pte);
> > mpfn = migrate_pfn(pfn) | MIGRATE_PFN_MIGRATE;
> > - mpfn |= pte_write(pte) ? MIGRATE_PFN_WRITE : 0;
> > + if (pte_write(pte))
> > + writable = true;
> > }
> > /* FIXME support THP */
> > @@ -2284,8 +2286,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp,
> > ptep_get_and_clear(mm, addr, ptep);
> > /* Setup special migration page table entry */
> > - entry = make_migration_entry(page, mpfn &
> > - MIGRATE_PFN_WRITE);
> > + entry = make_migration_entry(page, writable);
> > swp_pte = swp_entry_to_pte(entry);
> > if (pte_soft_dirty(pte))
> > swp_pte = pte_swp_mksoft_dirty(swp_pte);
> >
>
> MIGRATE_PFN_WRITE may mot being used but that seems like a bug to me.
> If a page is migrated to device memory, it could be mapped at the same
> time to avoid a device page fault but it would need the flag to know
> whether to map it RW or RO. But I suppose that could be inferred from
> the vma->vm_flags.
It is a bug that it is not being use right now. I will have to dig my
git repo to see when that got kill. Will look into it once i get back.
The vma->vm_flags is of no use here. A page can be write protected
inside a writable vma for various reasons.
Cheers,
Jérôme
next prev parent reply other threads:[~2019-07-29 23:46 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-29 14:28 turn the hmm migrate_vma upside down Christoph Hellwig
2019-07-29 14:28 ` [PATCH 1/9] mm: turn " Christoph Hellwig
2019-07-29 23:43 ` Jerome Glisse
[not found] ` <20190729142843.22320-2-hch-jcswGhMUV9g@public.gmane.org>
2019-07-29 23:12 ` Ralph Campbell
2019-07-29 23:12 ` Ralph Campbell
2019-07-31 1:46 ` Ralph Campbell
2019-07-31 1:46 ` Ralph Campbell
2019-08-01 7:42 ` Christoph Hellwig
2019-07-29 14:28 ` [PATCH 2/9] nouveau: reset dma_nr in nouveau_dmem_migrate_alloc_and_copy Christoph Hellwig
2019-07-29 23:18 ` Ralph Campbell
2019-07-29 23:18 ` Ralph Campbell
[not found] ` <20190729142843.22320-1-hch-jcswGhMUV9g@public.gmane.org>
2019-07-29 14:28 ` [PATCH 3/9] nouveau: factor out device memory address calculation Christoph Hellwig
2019-07-29 14:28 ` Christoph Hellwig
2019-07-29 23:21 ` Ralph Campbell
2019-07-29 23:21 ` Ralph Campbell
2019-07-29 14:28 ` [PATCH 4/9] nouveau: factor out dmem fence completion Christoph Hellwig
2019-07-29 14:28 ` Christoph Hellwig
2019-07-29 23:23 ` Ralph Campbell
2019-07-29 23:23 ` Ralph Campbell
2019-07-29 14:28 ` [PATCH 5/9] nouveau: simplify nouveau_dmem_migrate_to_ram Christoph Hellwig
2019-07-29 14:28 ` Christoph Hellwig
2019-07-29 23:26 ` Ralph Campbell
2019-07-29 23:26 ` Ralph Campbell
2019-07-31 9:57 ` Bharata B Rao
[not found] ` <20190731095735.GB18807-xthvdsQ13ZrQT0dZR+AlfA@public.gmane.org>
2019-08-01 7:46 ` Christoph Hellwig
2019-08-01 7:46 ` Christoph Hellwig
2019-07-29 14:28 ` [PATCH 6/9] nouveau: simplify nouveau_dmem_migrate_vma Christoph Hellwig
2019-07-29 14:28 ` Christoph Hellwig
[not found] ` <20190729142843.22320-7-hch-jcswGhMUV9g@public.gmane.org>
2019-07-29 23:27 ` Ralph Campbell
2019-07-29 23:27 ` Ralph Campbell
2019-07-29 14:28 ` [PATCH 7/9] mm: remove the unused MIGRATE_PFN_ERROR flag Christoph Hellwig
2019-07-29 14:28 ` Christoph Hellwig
[not found] ` <20190729142843.22320-8-hch-jcswGhMUV9g@public.gmane.org>
2019-07-29 23:29 ` Ralph Campbell
2019-07-29 23:29 ` Ralph Campbell
2019-07-29 14:28 ` [PATCH 8/9] mm: remove the unused MIGRATE_PFN_DEVICE flag Christoph Hellwig
2019-07-29 14:28 ` Christoph Hellwig
2019-07-29 23:31 ` Ralph Campbell
2019-07-29 23:31 ` Ralph Campbell
2019-07-29 14:28 ` [PATCH 9/9] mm: remove the MIGRATE_PFN_WRITE flag Christoph Hellwig
2019-07-29 14:28 ` Christoph Hellwig
2019-07-29 23:30 ` Jerome Glisse
[not found] ` <20190729233044.GA7171-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2019-07-30 5:46 ` Christoph Hellwig
2019-07-30 5:46 ` Christoph Hellwig
2019-07-30 15:51 ` Jerome Glisse
2019-07-29 23:42 ` Ralph Campbell
2019-07-29 23:42 ` Ralph Campbell
2019-07-29 23:46 ` Jerome Glisse [this message]
2019-07-30 12:32 ` turn the hmm migrate_vma upside down Jason Gunthorpe
2019-07-30 13:09 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190729234611.GC7171@redhat.com \
--to=jglisse@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=bharata@linux.ibm.com \
--cc=bskeggs@redhat.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=hch@lst.de \
--cc=jgg@mellanox.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nouveau@lists.freedesktop.org \
--cc=rcampbell@nvidia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.