From: Alistair Popple <apopple@nvidia.com>
To: <akpm@linux-foundation.org>, <Felix.Kuehling@amd.com>,
<linux-mm@kvack.org>, <rcampbell@nvidia.com>,
<linux-ext4@vger.kernel.org>, <linux-xfs@vger.kernel.org>,
Alex Sierra <alex.sierra@amd.com>
Cc: <amd-gfx@lists.freedesktop.org>,
<dri-devel@lists.freedesktop.org>, <hch@lst.de>, <jgg@nvidia.com>,
<jglisse@redhat.com>, <willy@infradead.org>
Subject: Re: [PATCH v4 01/10] mm: add zone device coherent type memory support
Date: Fri, 28 Jan 2022 12:57:40 +1100 [thread overview]
Message-ID: <3321052.0DCqWhyCST@nvdebian> (raw)
In-Reply-To: <20220127030949.19396-2-alex.sierra@amd.com>
On Thursday, 27 January 2022 2:09:40 PM AEDT Alex Sierra wrote:
[...]
> diff --git a/mm/migrate.c b/mm/migrate.c
> index 1852d787e6ab..277562cd4cf5 100644
> --- a/mm/migrate.c
> +++ b/mm/migrate.c
> @@ -362,7 +362,7 @@ static int expected_page_refs(struct address_space
> *mapping, struct page *page)>
> * Device private pages have an extra refcount as they are
> * ZONE_DEVICE pages.
> */
>
> - expected_count += is_device_private_page(page);
> + expected_count += is_dev_private_or_coherent_page(page);
>
> if (mapping)
>
> expected_count += thp_nr_pages(page) +
> page_has_private(page);
>
> @@ -2503,7 +2503,7 @@ static bool migrate_vma_check_page(struct page *page)
>
> * FIXME proper solution is to rework migration_entry_wait()
> so
> * it does not need to take a reference on page.
> */
>
> - return is_device_private_page(page);
> + return is_dev_private_or_coherent_page(page);
As Andrew points out this no longer applies due to changes here. I think you
can just drop this hunk though.
[...]
> diff --git a/mm/rmap.c b/mm/rmap.c
> index 6aebd1747251..32dae6839403 100644
> --- a/mm/rmap.c
> +++ b/mm/rmap.c
> @@ -1823,10 +1823,17 @@ static bool try_to_migrate_one(struct page *page, struct vm_area_struct *vma,
> * pteval maps a zone device page and is therefore
> * a swap pte.
> */
> - if (pte_swp_soft_dirty(pteval))
> - swp_pte = pte_swp_mksoft_dirty(swp_pte);
> - if (pte_swp_uffd_wp(pteval))
> - swp_pte = pte_swp_mkuffd_wp(swp_pte);
> + if (is_device_coherent_page(page)) {
> + if (pte_soft_dirty(pteval))
> + swp_pte = pte_swp_mksoft_dirty(swp_pte);
> + if (pte_uffd_wp(pteval))
> + swp_pte = pte_swp_mkuffd_wp(swp_pte);
> + } else {
> + if (pte_swp_soft_dirty(pteval))
> + swp_pte = pte_swp_mksoft_dirty(swp_pte);
> + if (pte_swp_uffd_wp(pteval))
> + swp_pte = pte_swp_mkuffd_wp(swp_pte);
> + }
As I understand things ptes for device coherent pages don't need special
treatment, therefore rather than special casing here it should just fall
through to the same path as normal pages. For that I think all you need is
something like:
- if (is_zone_device_page(page)) {
+ if (is_device_private_page(page)) {
Noting that device private pages are the only zone device pages that could
have been encountered here anyway.
> set_pte_at(mm, pvmw.address, pvmw.pte, swp_pte);
> /*
> * No need to invalidate here it will synchronize on
> @@ -1837,7 +1844,7 @@ static bool try_to_migrate_one(struct page *page, struct vm_area_struct *vma,
> * Since only PAGE_SIZE pages can currently be
> * migrated, just set it to page. This will need to be
> * changed when hugepage migrations to device private
> - * memory are supported.
> + * or coherent memory are supported.
> */
> subpage = page;
> } else if (PageHWPoison(page)) {
> @@ -1943,7 +1950,8 @@ void try_to_migrate(struct page *page, enum ttu_flags flags)
> TTU_SYNC)))
> return;
>
> - if (is_zone_device_page(page) && !is_device_private_page(page))
> + if (is_zone_device_page(page) &&
> + !is_dev_private_or_coherent_page(page))
> return;
>
> /*
>
next prev parent reply other threads:[~2022-01-28 1:57 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-27 3:09 [PATCH v4 00/10] Add MEMORY_DEVICE_COHERENT for coherent device memory mapping Alex Sierra
2022-01-27 3:09 ` [PATCH v4 01/10] mm: add zone device coherent type memory support Alex Sierra
2022-01-28 1:57 ` Alistair Popple [this message]
2022-01-27 3:09 ` [PATCH v4 02/10] mm: add device coherent vma selection for memory migration Alex Sierra
2022-01-28 2:07 ` Alistair Popple
2022-01-27 3:09 ` [PATCH v4 03/10] mm/gup: fail get_user_pages for LONGTERM dev coherent type Alex Sierra
2022-01-28 2:36 ` Alistair Popple
2022-01-27 3:09 ` [PATCH v4 04/10] drm/amdkfd: add SPM support for SVM Alex Sierra
2022-01-28 2:38 ` Alistair Popple
2022-01-27 3:09 ` [PATCH v4 05/10] drm/amdkfd: coherent type as sys mem on migration to ram Alex Sierra
2022-01-27 3:09 ` [PATCH v4 06/10] lib: test_hmm add ioctl to get zone device type Alex Sierra
2022-01-28 4:22 ` Alistair Popple
2022-01-27 3:09 ` [PATCH v4 07/10] lib: test_hmm add module param for " Alex Sierra
2022-01-28 4:22 ` Alistair Popple
2022-01-27 3:09 ` [PATCH v4 08/10] lib: add support for device coherent type in test_hmm Alex Sierra
2022-01-28 4:25 ` Alistair Popple
2022-01-27 3:09 ` [PATCH v4 09/10] tools: update hmm-test to support device coherent type Alex Sierra
2022-01-27 3:09 ` [PATCH v4 10/10] tools: update test_hmm script to support SP config Alex Sierra
2022-01-27 22:32 ` [PATCH v4 00/10] Add MEMORY_DEVICE_COHERENT for coherent device memory mapping Andrew Morton
2022-01-27 23:20 ` Sierra Guiza, Alejandro (Alex)
2022-01-28 7:08 ` Andrew Morton
2022-01-28 15:00 ` Deucher, Alexander
2022-01-28 17:09 ` Felix Kuehling
2022-02-02 14:57 ` Christoph Hellwig
2022-02-02 15:42 ` Jason Gunthorpe
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=3321052.0DCqWhyCST@nvdebian \
--to=apopple@nvidia.com \
--cc=Felix.Kuehling@amd.com \
--cc=akpm@linux-foundation.org \
--cc=alex.sierra@amd.com \
--cc=amd-gfx@lists.freedesktop.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=hch@lst.de \
--cc=jgg@nvidia.com \
--cc=jglisse@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-xfs@vger.kernel.org \
--cc=rcampbell@nvidia.com \
--cc=willy@infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).