diff options
author | SeongJae Park <sj@kernel.org> | 2024-03-27 15:56:53 -0700 |
---|---|---|
committer | SeongJae Park <sj@kernel.org> | 2024-03-27 16:00:02 -0700 |
commit | 8f15dd7ef8d088d17ff342c0b120d476ac0a6488 (patch) | |
tree | 9a0c0a9bbb38b8ab0ad3873ba82515775f85bf9a | |
parent | fc363f41092ae742907b8b858461056c3ddc1c8c (diff) | |
download | damon-hack-8f15dd7ef8d088d17ff342c0b120d476ac0a6488.tar.gz |
backup damon/next patches
Signed-off-by: SeongJae Park <sj@kernel.org>
35 files changed, 41 insertions, 428 deletions
diff --git a/patches/next/Add-damon-suffix-to-the-version-name.patch b/patches/next/Add-damon-suffix-to-the-version-name.patch index bbaa594..d35f58e 100644 --- a/patches/next/Add-damon-suffix-to-the-version-name.patch +++ b/patches/next/Add-damon-suffix-to-the-version-name.patch @@ -1,4 +1,4 @@ -From 8b572ab594546326b1373c4019d057de2b12596c Mon Sep 17 00:00:00 2001 +From 4ba4e13749494ecae50b671c6af93bdfcd40f95e Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Thu, 11 Jan 2024 15:52:04 -0800 Subject: [PATCH] Add -damon suffix to the version name diff --git a/patches/next/Add-debug-log-for-PSI.patch b/patches/next/Add-debug-log-for-PSI.patch index 206d5cf..b33fa60 100644 --- a/patches/next/Add-debug-log-for-PSI.patch +++ b/patches/next/Add-debug-log-for-PSI.patch @@ -1,4 +1,4 @@ -From 116a6457b476a17b958787f8b01cb743f0bd9654 Mon Sep 17 00:00:00 2001 +From edc4da2ee5615e015631f412655e947e548cb525 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 16 Feb 2024 15:26:23 -0800 Subject: [PATCH] Add debug log for PSI diff --git a/patches/next/DAMOS-filter-type-YOUNG.patch b/patches/next/DAMOS-filter-type-YOUNG.patch index 1c8cf25..6b0286d 100644 --- a/patches/next/DAMOS-filter-type-YOUNG.patch +++ b/patches/next/DAMOS-filter-type-YOUNG.patch @@ -1,4 +1,4 @@ -From 2b65df531e324dfd48558cfd00bcb943d8c6a7a3 Mon Sep 17 00:00:00 2001 +From 3acc78c0176192ec6c7b8ffb87e6b205fe1460d7 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Wed, 6 Mar 2024 18:43:00 -0800 Subject: [PATCH] ==== DAMOS filter type YOUNG ==== diff --git a/patches/next/Docs-ABI-damon-update-for-youg-page-type-DAMOS-filte.patch b/patches/next/Docs-ABI-damon-update-for-youg-page-type-DAMOS-filte.patch index 717d373..635681e 100644 --- a/patches/next/Docs-ABI-damon-update-for-youg-page-type-DAMOS-filte.patch +++ b/patches/next/Docs-ABI-damon-update-for-youg-page-type-DAMOS-filte.patch @@ -1,4 +1,4 @@ -From c0ae82573115fb17f3e7abd6817ca2d763384e8e Mon Sep 17 00:00:00 2001 +From 694c5d0b7f0af673991cf9d6c834acd9819cc41b Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Wed, 13 Mar 2024 18:20:53 -0700 Subject: [PATCH] Docs/ABI/damon: update for 'youg page' type DAMOS filter diff --git a/patches/next/Docs-admin-guide-mm-damon-usage-fix-wrong-example-of.patch b/patches/next/Docs-admin-guide-mm-damon-usage-fix-wrong-example-of.patch index fd0626d..43cac05 100644 --- a/patches/next/Docs-admin-guide-mm-damon-usage-fix-wrong-example-of.patch +++ b/patches/next/Docs-admin-guide-mm-damon-usage-fix-wrong-example-of.patch @@ -1,4 +1,4 @@ -From 63ba37eb4db10e131d52789d142a4f4bb782766f Mon Sep 17 00:00:00 2001 +From 55258dcd4cf2ad29a6d87d77dbda566c031cf8a3 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Sun, 17 Mar 2024 12:14:07 -0700 Subject: [PATCH] Docs/admin-guide/mm/damon/usage: fix wrong example of DAMOS diff --git a/patches/next/Docs-admin-guide-mm-damon-usage-update-for-young-pag.patch b/patches/next/Docs-admin-guide-mm-damon-usage-update-for-young-pag.patch index 7ffa006..679bdc4 100644 --- a/patches/next/Docs-admin-guide-mm-damon-usage-update-for-young-pag.patch +++ b/patches/next/Docs-admin-guide-mm-damon-usage-update-for-young-pag.patch @@ -1,4 +1,4 @@ -From 3ab4a239121d186e7a9c45594586250911b55d28 Mon Sep 17 00:00:00 2001 +From 9223f4cb63b1a3b3561fd16e38485db456564c01 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Wed, 13 Mar 2024 18:19:41 -0700 Subject: [PATCH] Docs/admin-guide/mm/damon/usage: update for young page type diff --git a/patches/next/Docs-mm-damon-design-add-API-link-to-damon_ctx.patch b/patches/next/Docs-mm-damon-design-add-API-link-to-damon_ctx.patch index b8f7a0a..1a82052 100644 --- a/patches/next/Docs-mm-damon-design-add-API-link-to-damon_ctx.patch +++ b/patches/next/Docs-mm-damon-design-add-API-link-to-damon_ctx.patch @@ -1,4 +1,4 @@ -From 54f15b78130c79c1026bb7a0d69de6452bbed5ee Mon Sep 17 00:00:00 2001 +From a893b7cccb1dd0aa39ac983a65e7abe77fe1fff2 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Sat, 2 Dec 2023 10:13:53 -0800 Subject: [PATCH] Docs/mm/damon/design: add API link to damon_ctx diff --git a/patches/next/Docs-mm-damon-design-document-young-page-type-DAMOS-.patch b/patches/next/Docs-mm-damon-design-document-young-page-type-DAMOS-.patch index 2283126..0705fc3 100644 --- a/patches/next/Docs-mm-damon-design-document-young-page-type-DAMOS-.patch +++ b/patches/next/Docs-mm-damon-design-document-young-page-type-DAMOS-.patch @@ -1,4 +1,4 @@ -From 4e12c51cb8744c560a2866230caf652de0ab48a1 Mon Sep 17 00:00:00 2001 +From 806074c6d779ecd2a10478c94d98c57fef706db2 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Wed, 13 Mar 2024 18:17:39 -0700 Subject: [PATCH] Docs/mm/damon/design: document 'young page' type DAMOS filter diff --git a/patches/next/Docs-mm-damon-design-use-a-list-for-supported-filter.patch b/patches/next/Docs-mm-damon-design-use-a-list-for-supported-filter.patch index 8256873..49d7e5b 100644 --- a/patches/next/Docs-mm-damon-design-use-a-list-for-supported-filter.patch +++ b/patches/next/Docs-mm-damon-design-use-a-list-for-supported-filter.patch @@ -1,4 +1,4 @@ -From 078e9d3e8b7aa65031642e80139d45e800ba2a0c Mon Sep 17 00:00:00 2001 +From d804d2e41adf102f6cc9e34e5f0bb2d703bb4636 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Wed, 13 Mar 2024 18:10:21 -0700 Subject: [PATCH] Docs/mm/damon/design: use a list for supported filters diff --git a/patches/next/Revert-kselftest-runner.sh-Propagate-SIGTERM-to-runn.patch b/patches/next/Revert-kselftest-runner.sh-Propagate-SIGTERM-to-runn.patch index c978f8a..9bc119f 100644 --- a/patches/next/Revert-kselftest-runner.sh-Propagate-SIGTERM-to-runn.patch +++ b/patches/next/Revert-kselftest-runner.sh-Propagate-SIGTERM-to-runn.patch @@ -1,4 +1,4 @@ -From 4f2953c156b9e9aa6025ad04c3715cbb84ec03da Mon Sep 17 00:00:00 2001 +From cbb546193246c3afa8c2c5d40bd20fa830c1ab64 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Thu, 21 Sep 2023 09:41:45 +0000 Subject: [PATCH] Revert "kselftest/runner.sh: Propagate SIGTERM to runner diff --git a/patches/next/commits-aiming-not-to-be-posted.patch b/patches/next/commits-aiming-not-to-be-posted.patch index 1ddc5bc..78420b3 100644 --- a/patches/next/commits-aiming-not-to-be-posted.patch +++ b/patches/next/commits-aiming-not-to-be-posted.patch @@ -1,4 +1,4 @@ -From bec2a0f5ad3a510c7c1b6639e398c5d0ab342d61 Mon Sep 17 00:00:00 2001 +From 49290d4451d6948c2d86cdd1c4af06d3d98ef81d Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 30 Jun 2023 19:06:22 +0000 Subject: [PATCH] === commits aiming not to be posted === diff --git a/patches/next/drivers-virtio-virtio_balloon-integrate-ACMA-and-bal.patch b/patches/next/drivers-virtio-virtio_balloon-integrate-ACMA-and-bal.patch index ca4db55..59bf9be 100644 --- a/patches/next/drivers-virtio-virtio_balloon-integrate-ACMA-and-bal.patch +++ b/patches/next/drivers-virtio-virtio_balloon-integrate-ACMA-and-bal.patch @@ -1,4 +1,4 @@ -From 04f41eacb4ebc132d5b3deedc1ed59a977612362 Mon Sep 17 00:00:00 2001 +From 8695ea803ab4876885441f19a44f1f94df02712d Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Wed, 28 Feb 2024 16:17:08 -0800 Subject: [PATCH] drivers/virtio/virtio_balloon: integrate ACMA and ballooning diff --git a/patches/next/fixup-mm-gup-handle-hugepd-for-follow_page.patch b/patches/next/fixup-mm-gup-handle-hugepd-for-follow_page.patch deleted file mode 100644 index 18f826b..0000000 --- a/patches/next/fixup-mm-gup-handle-hugepd-for-follow_page.patch +++ /dev/null @@ -1,333 +0,0 @@ -From 9235c58a6842bebc49e253431911d63ba0c30233 Mon Sep 17 00:00:00 2001 -From: Peter Xu <peterx@redhat.com> -Date: Fri, 22 Mar 2024 23:33:10 -0400 -Subject: [PATCH] fixup! mm/gup: handle hugepd for follow_page() - -The major issue is that now slow gup will reuse some fast gup functions to -parse hugepd entries. So we need to move hugepd and relevant functions out -of HAVE_FAST_GUP, but also under CONFIG_MMU. - -Meanwhile, the helper record_subpages() can be used by either hugepd or -fast-gup section. To avoid "unused function" warnings we must provide a -macro to it, unfortunately. - -Signed-off-by: Peter Xu <peterx@redhat.com> ---- - mm/gup.c | 287 +++++++++++++++++++++++++++---------------------------- - 1 file changed, 143 insertions(+), 144 deletions(-) - -diff --git a/mm/gup.c b/mm/gup.c -index 4cd349390477..fe9df268bef2 100644 ---- a/mm/gup.c -+++ b/mm/gup.c -@@ -30,11 +30,6 @@ struct follow_page_context { - unsigned int page_mask; - }; - --static struct page *follow_hugepd(struct vm_area_struct *vma, hugepd_t hugepd, -- unsigned long addr, unsigned int pdshift, -- unsigned int flags, -- struct follow_page_context *ctx); -- - static inline void sanity_check_pinned_pages(struct page **pages, - unsigned long npages) - { -@@ -505,6 +500,149 @@ static inline void mm_set_has_pinned_flag(unsigned long *mm_flags) - } - - #ifdef CONFIG_MMU -+ -+#if defined(CONFIG_ARCH_HAS_HUGEPD) || defined(CONFIG_HAVE_FAST_GUP) -+static int record_subpages(struct page *page, unsigned long sz, -+ unsigned long addr, unsigned long end, -+ struct page **pages) -+{ -+ struct page *start_page; -+ int nr; -+ -+ start_page = nth_page(page, (addr & (sz - 1)) >> PAGE_SHIFT); -+ for (nr = 0; addr != end; nr++, addr += PAGE_SIZE) -+ pages[nr] = nth_page(start_page, nr); -+ -+ return nr; -+} -+#endif /* CONFIG_ARCH_HAS_HUGEPD || CONFIG_HAVE_FAST_GUP */ -+ -+#ifdef CONFIG_ARCH_HAS_HUGEPD -+static unsigned long hugepte_addr_end(unsigned long addr, unsigned long end, -+ unsigned long sz) -+{ -+ unsigned long __boundary = (addr + sz) & ~(sz-1); -+ return (__boundary - 1 < end - 1) ? __boundary : end; -+} -+ -+static int gup_hugepte(pte_t *ptep, unsigned long sz, unsigned long addr, -+ unsigned long end, unsigned int flags, -+ struct page **pages, int *nr) -+{ -+ unsigned long pte_end; -+ struct page *page; -+ struct folio *folio; -+ pte_t pte; -+ int refs; -+ -+ pte_end = (addr + sz) & ~(sz-1); -+ if (pte_end < end) -+ end = pte_end; -+ -+ pte = huge_ptep_get(ptep); -+ -+ if (!pte_access_permitted(pte, flags & FOLL_WRITE)) -+ return 0; -+ -+ /* hugepages are never "special" */ -+ VM_BUG_ON(!pfn_valid(pte_pfn(pte))); -+ -+ page = pte_page(pte); -+ refs = record_subpages(page, sz, addr, end, pages + *nr); -+ -+ folio = try_grab_folio(page, refs, flags); -+ if (!folio) -+ return 0; -+ -+ if (unlikely(pte_val(pte) != pte_val(ptep_get(ptep)))) { -+ gup_put_folio(folio, refs, flags); -+ return 0; -+ } -+ -+ if (!pte_write(pte) && gup_must_unshare(NULL, flags, &folio->page)) { -+ gup_put_folio(folio, refs, flags); -+ return 0; -+ } -+ -+ *nr += refs; -+ folio_set_referenced(folio); -+ return 1; -+} -+ -+/* -+ * NOTE: currently GUP for a hugepd is only possible on hugetlbfs file -+ * systems on Power, which does not have issue with folio writeback against -+ * GUP updates. When hugepd will be extended to support non-hugetlbfs or -+ * even anonymous memory, we need to do extra check as what we do with most -+ * of the other folios. See writable_file_mapping_allowed() and -+ * folio_fast_pin_allowed() for more information. -+ */ -+static int gup_huge_pd(hugepd_t hugepd, unsigned long addr, -+ unsigned int pdshift, unsigned long end, unsigned int flags, -+ struct page **pages, int *nr) -+{ -+ pte_t *ptep; -+ unsigned long sz = 1UL << hugepd_shift(hugepd); -+ unsigned long next; -+ -+ ptep = hugepte_offset(hugepd, addr, pdshift); -+ do { -+ next = hugepte_addr_end(addr, end, sz); -+ if (!gup_hugepte(ptep, sz, addr, end, flags, pages, nr)) -+ return 0; -+ } while (ptep++, addr = next, addr != end); -+ -+ return 1; -+} -+ -+static struct page *follow_hugepd(struct vm_area_struct *vma, hugepd_t hugepd, -+ unsigned long addr, unsigned int pdshift, -+ unsigned int flags, -+ struct follow_page_context *ctx) -+{ -+ struct page *page; -+ struct hstate *h; -+ spinlock_t *ptl; -+ int nr = 0, ret; -+ pte_t *ptep; -+ -+ /* Only hugetlb supports hugepd */ -+ if (WARN_ON_ONCE(!is_vm_hugetlb_page(vma))) -+ return ERR_PTR(-EFAULT); -+ -+ h = hstate_vma(vma); -+ ptep = hugepte_offset(hugepd, addr, pdshift); -+ ptl = huge_pte_lock(h, vma->vm_mm, ptep); -+ ret = gup_huge_pd(hugepd, addr, pdshift, addr + PAGE_SIZE, -+ flags, &page, &nr); -+ spin_unlock(ptl); -+ -+ if (ret) { -+ WARN_ON_ONCE(nr != 1); -+ ctx->page_mask = (1U << huge_page_order(h)) - 1; -+ return page; -+ } -+ -+ return NULL; -+} -+#else /* CONFIG_ARCH_HAS_HUGEPD */ -+static inline int gup_huge_pd(hugepd_t hugepd, unsigned long addr, -+ unsigned int pdshift, unsigned long end, unsigned int flags, -+ struct page **pages, int *nr) -+{ -+ return 0; -+} -+ -+static struct page *follow_hugepd(struct vm_area_struct *vma, hugepd_t hugepd, -+ unsigned long addr, unsigned int pdshift, -+ unsigned int flags, -+ struct follow_page_context *ctx) -+{ -+ return NULL; -+} -+#endif /* CONFIG_ARCH_HAS_HUGEPD */ -+ -+ - static struct page *no_page_table(struct vm_area_struct *vma, - unsigned int flags, unsigned long address) - { -@@ -2962,145 +3100,6 @@ static int __gup_device_huge_pud(pud_t pud, pud_t *pudp, unsigned long addr, - } - #endif - --static int record_subpages(struct page *page, unsigned long sz, -- unsigned long addr, unsigned long end, -- struct page **pages) --{ -- struct page *start_page; -- int nr; -- -- start_page = nth_page(page, (addr & (sz - 1)) >> PAGE_SHIFT); -- for (nr = 0; addr != end; nr++, addr += PAGE_SIZE) -- pages[nr] = nth_page(start_page, nr); -- -- return nr; --} -- --#ifdef CONFIG_ARCH_HAS_HUGEPD --static unsigned long hugepte_addr_end(unsigned long addr, unsigned long end, -- unsigned long sz) --{ -- unsigned long __boundary = (addr + sz) & ~(sz-1); -- return (__boundary - 1 < end - 1) ? __boundary : end; --} -- --static int gup_hugepte(pte_t *ptep, unsigned long sz, unsigned long addr, -- unsigned long end, unsigned int flags, -- struct page **pages, int *nr) --{ -- unsigned long pte_end; -- struct page *page; -- struct folio *folio; -- pte_t pte; -- int refs; -- -- pte_end = (addr + sz) & ~(sz-1); -- if (pte_end < end) -- end = pte_end; -- -- pte = huge_ptep_get(ptep); -- -- if (!pte_access_permitted(pte, flags & FOLL_WRITE)) -- return 0; -- -- /* hugepages are never "special" */ -- VM_BUG_ON(!pfn_valid(pte_pfn(pte))); -- -- page = pte_page(pte); -- refs = record_subpages(page, sz, addr, end, pages + *nr); -- -- folio = try_grab_folio(page, refs, flags); -- if (!folio) -- return 0; -- -- if (unlikely(pte_val(pte) != pte_val(ptep_get(ptep)))) { -- gup_put_folio(folio, refs, flags); -- return 0; -- } -- -- if (!pte_write(pte) && gup_must_unshare(NULL, flags, &folio->page)) { -- gup_put_folio(folio, refs, flags); -- return 0; -- } -- -- *nr += refs; -- folio_set_referenced(folio); -- return 1; --} -- --/* -- * NOTE: currently GUP for a hugepd is only possible on hugetlbfs file -- * systems on Power, which does not have issue with folio writeback against -- * GUP updates. When hugepd will be extended to support non-hugetlbfs or -- * even anonymous memory, we need to do extra check as what we do with most -- * of the other folios. See writable_file_mapping_allowed() and -- * folio_fast_pin_allowed() for more information. -- */ --static int gup_huge_pd(hugepd_t hugepd, unsigned long addr, -- unsigned int pdshift, unsigned long end, unsigned int flags, -- struct page **pages, int *nr) --{ -- pte_t *ptep; -- unsigned long sz = 1UL << hugepd_shift(hugepd); -- unsigned long next; -- -- ptep = hugepte_offset(hugepd, addr, pdshift); -- do { -- next = hugepte_addr_end(addr, end, sz); -- if (!gup_hugepte(ptep, sz, addr, end, flags, pages, nr)) -- return 0; -- } while (ptep++, addr = next, addr != end); -- -- return 1; --} -- --static struct page *follow_hugepd(struct vm_area_struct *vma, hugepd_t hugepd, -- unsigned long addr, unsigned int pdshift, -- unsigned int flags, -- struct follow_page_context *ctx) --{ -- struct page *page; -- struct hstate *h; -- spinlock_t *ptl; -- int nr = 0, ret; -- pte_t *ptep; -- -- /* Only hugetlb supports hugepd */ -- if (WARN_ON_ONCE(!is_vm_hugetlb_page(vma))) -- return ERR_PTR(-EFAULT); -- -- h = hstate_vma(vma); -- ptep = hugepte_offset(hugepd, addr, pdshift); -- ptl = huge_pte_lock(h, vma->vm_mm, ptep); -- ret = gup_huge_pd(hugepd, addr, pdshift, addr + PAGE_SIZE, -- flags, &page, &nr); -- spin_unlock(ptl); -- -- if (ret) { -- WARN_ON_ONCE(nr != 1); -- ctx->page_mask = (1U << huge_page_order(h)) - 1; -- return page; -- } -- -- return NULL; --} --#else --static inline int gup_huge_pd(hugepd_t hugepd, unsigned long addr, -- unsigned int pdshift, unsigned long end, unsigned int flags, -- struct page **pages, int *nr) --{ -- return 0; --} -- --static struct page *follow_hugepd(struct vm_area_struct *vma, hugepd_t hugepd, -- unsigned long addr, unsigned int pdshift, -- unsigned int flags, -- struct follow_page_context *ctx) --{ -- return NULL; --} --#endif /* CONFIG_ARCH_HAS_HUGEPD */ -- - static int gup_huge_pmd(pmd_t orig, pmd_t *pmdp, unsigned long addr, - unsigned long end, unsigned int flags, - struct page **pages, int *nr) --- -2.39.2 - diff --git a/patches/next/fixup-mm-make-HPAGE_PXD_-macros-even-if-THP.patch b/patches/next/fixup-mm-make-HPAGE_PXD_-macros-even-if-THP.patch deleted file mode 100644 index a500b70..0000000 --- a/patches/next/fixup-mm-make-HPAGE_PXD_-macros-even-if-THP.patch +++ /dev/null @@ -1,54 +0,0 @@ -From b7150ad1d35892c8b61b936ce102374af291d18c Mon Sep 17 00:00:00 2001 -From: Peter Xu <peterx@redhat.com> -Date: Fri, 22 Mar 2024 23:33:09 -0400 -Subject: [PATCH] fixup! mm: make HPAGE_PXD_* macros even if !THP - -[To be squashed into the corresponding patch] - -I initially wanted to simply cover all macros to be under -PGTABLE_HAS_HUGE_LEAVES, but I found that it won't work, we must define -HPAGE_PMD_SHIFT even if PMD_SHIFT is not defined (!MMU case).. - -The only solution is use the old trick of "({ BUILD_BUG(); 0; })". - -Signed-off-by: Peter Xu <peterx@redhat.com> ---- - include/linux/huge_mm.h | 16 +++++++++++----- - 1 file changed, 11 insertions(+), 5 deletions(-) - -diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h -index f451f0bdab97..d210c849ab7a 100644 ---- a/include/linux/huge_mm.h -+++ b/include/linux/huge_mm.h -@@ -84,17 +84,23 @@ extern struct kobj_attribute shmem_enabled_attr; - #define thp_vma_allowable_order(vma, vm_flags, smaps, in_pf, enforce_sysfs, order) \ - (!!thp_vma_allowable_orders(vma, vm_flags, smaps, in_pf, enforce_sysfs, BIT(order))) - -+#ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES - #define HPAGE_PMD_SHIFT PMD_SHIFT --#define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) --#define HPAGE_PMD_MASK (~(HPAGE_PMD_SIZE - 1)) -+#define HPAGE_PUD_SHIFT PUD_SHIFT -+#else -+#define HPAGE_PMD_SHIFT ({ BUILD_BUG(); 0; }) -+#define HPAGE_PUD_SHIFT ({ BUILD_BUG(); 0; }) -+#endif -+ - #define HPAGE_PMD_ORDER (HPAGE_PMD_SHIFT-PAGE_SHIFT) - #define HPAGE_PMD_NR (1<<HPAGE_PMD_ORDER) -+#define HPAGE_PMD_MASK (~(HPAGE_PMD_SIZE - 1)) -+#define HPAGE_PMD_SIZE ((1UL) << HPAGE_PMD_SHIFT) - --#define HPAGE_PUD_SHIFT PUD_SHIFT --#define HPAGE_PUD_SIZE ((1UL) << HPAGE_PUD_SHIFT) --#define HPAGE_PUD_MASK (~(HPAGE_PUD_SIZE - 1)) - #define HPAGE_PUD_ORDER (HPAGE_PUD_SHIFT-PAGE_SHIFT) - #define HPAGE_PUD_NR (1<<HPAGE_PUD_ORDER) -+#define HPAGE_PUD_MASK (~(HPAGE_PUD_SIZE - 1)) -+#define HPAGE_PUD_SIZE ((1UL) << HPAGE_PUD_SHIFT) - - #ifdef CONFIG_TRANSPARENT_HUGEPAGE - --- -2.39.2 - diff --git a/patches/next/hacks-in-progress.patch b/patches/next/hacks-in-progress.patch index 38aeda7..fa51344 100644 --- a/patches/next/hacks-in-progress.patch +++ b/patches/next/hacks-in-progress.patch @@ -1,4 +1,4 @@ -From 1932ecc2dda01d872d03db0505477ecaa3ca7e9d Mon Sep 17 00:00:00 2001 +From 3b23d309d729dfcbcd7cd29548be68f4f931be4a Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 30 Jun 2023 19:06:35 +0000 Subject: [PATCH] === hacks in progress === diff --git a/patches/next/mark-start-of-DAMON-hack-tree.patch b/patches/next/mark-start-of-DAMON-hack-tree.patch index 001cfb3..116f501 100644 --- a/patches/next/mark-start-of-DAMON-hack-tree.patch +++ b/patches/next/mark-start-of-DAMON-hack-tree.patch @@ -1,4 +1,4 @@ -From f3388f4d367e314f1a18dc1c2fa9bafa884e7794 Mon Sep 17 00:00:00 2001 +From 688645a98acf24321d0647007eff632c1b2f3356 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 30 Jun 2023 19:04:43 +0000 Subject: [PATCH] === mark start of DAMON hack tree === diff --git a/patches/next/mm-damon-Add-debug-code.patch b/patches/next/mm-damon-Add-debug-code.patch index 6aa31e7..b68f188 100644 --- a/patches/next/mm-damon-Add-debug-code.patch +++ b/patches/next/mm-damon-Add-debug-code.patch @@ -1,4 +1,4 @@ -From c55f575562348712a65ce464bcfd6ee90c50f05a Mon Sep 17 00:00:00 2001 +From 7cad668d41ca56a5b5fc38386f8d7a9d828c5670 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Sun, 14 Aug 2022 16:08:10 +0000 Subject: [PATCH] mm/damon: Add debug code diff --git a/patches/next/mm-damon-add-DAMOS-filter-type-YOUNG.patch b/patches/next/mm-damon-add-DAMOS-filter-type-YOUNG.patch index 6c9f371..ec0e9fe 100644 --- a/patches/next/mm-damon-add-DAMOS-filter-type-YOUNG.patch +++ b/patches/next/mm-damon-add-DAMOS-filter-type-YOUNG.patch @@ -1,4 +1,4 @@ -From 063bb69a0c2e66c8e870e8b7b812c9703b35d198 Mon Sep 17 00:00:00 2001 +From dcdd1dc83d8ba0176e168f69bb14b74418d0fb2c Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Tue, 5 Mar 2024 16:02:29 -0800 Subject: [PATCH] mm/damon: add DAMOS filter type YOUNG diff --git a/patches/next/mm-damon-core-a-bit-more-cleanup-and-comments.patch b/patches/next/mm-damon-core-a-bit-more-cleanup-and-comments.patch index 76a0715..dbc8eea 100644 --- a/patches/next/mm-damon-core-a-bit-more-cleanup-and-comments.patch +++ b/patches/next/mm-damon-core-a-bit-more-cleanup-and-comments.patch @@ -1,4 +1,4 @@ -From d5826aea84912095d581c22245077dd5bfe7255e Mon Sep 17 00:00:00 2001 +From 961fe5ab90781dc8d8e23ea7351e15f710cbc96d Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Tue, 20 Feb 2024 15:59:05 -0800 Subject: [PATCH] mm/damon/core: a bit more cleanup and comments diff --git a/patches/next/mm-damon-core-add-debugging-purpose-log-of-tuned-esz.patch b/patches/next/mm-damon-core-add-debugging-purpose-log-of-tuned-esz.patch index 247a69a..64a77eb 100644 --- a/patches/next/mm-damon-core-add-debugging-purpose-log-of-tuned-esz.patch +++ b/patches/next/mm-damon-core-add-debugging-purpose-log-of-tuned-esz.patch @@ -1,4 +1,4 @@ -From 66929a06425ae37c83f78124da29ae534a7a4b0d Mon Sep 17 00:00:00 2001 +From cb1893d69507966ef721b02b840e11161ccc2f70 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Sat, 11 Nov 2023 19:36:03 +0000 Subject: [PATCH] mm/damon/core: add debugging-purpose log of tuned esz diff --git a/patches/next/mm-damon-core-add-todo-for-DAMOS-interval-validation.patch b/patches/next/mm-damon-core-add-todo-for-DAMOS-interval-validation.patch index 0c4a92b..5b68e20 100644 --- a/patches/next/mm-damon-core-add-todo-for-DAMOS-interval-validation.patch +++ b/patches/next/mm-damon-core-add-todo-for-DAMOS-interval-validation.patch @@ -1,4 +1,4 @@ -From 3a77eabd8fda301a33e2b3106e69bd74a16f336a Mon Sep 17 00:00:00 2001 +From d7b4f6e25e39a6e0c81dfef3cd5151d05e118235 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Sun, 3 Sep 2023 05:02:44 +0000 Subject: [PATCH] mm/damon/core: add todo for DAMOS interval validation diff --git a/patches/next/mm-damon-core-initialize-esz_bp-from-damos_quota_ini.patch b/patches/next/mm-damon-core-initialize-esz_bp-from-damos_quota_ini.patch index d8d4b75..9f9c3bf 100644 --- a/patches/next/mm-damon-core-initialize-esz_bp-from-damos_quota_ini.patch +++ b/patches/next/mm-damon-core-initialize-esz_bp-from-damos_quota_ini.patch @@ -1,4 +1,4 @@ -From b123d8374eea5c82134fb56dddddeb17f4fd8b63 Mon Sep 17 00:00:00 2001 +From 4dee1e03ba14ad4315b31fda1b615f4e8a7cc755 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Thu, 15 Feb 2024 15:36:41 -0800 Subject: [PATCH] mm/damon/core: initialize ->esz_bp from diff --git a/patches/next/mm-damon-core-reduce-fields-copying-using-temporal-l.patch b/patches/next/mm-damon-core-reduce-fields-copying-using-temporal-l.patch index d3bedff..c914568 100644 --- a/patches/next/mm-damon-core-reduce-fields-copying-using-temporal-l.patch +++ b/patches/next/mm-damon-core-reduce-fields-copying-using-temporal-l.patch @@ -1,4 +1,4 @@ -From ba6b96a70d2e183cca0e8b9cf5006736436b2edb Mon Sep 17 00:00:00 2001 +From 5955066b6c56d73bbaf6ea5e5ea72c18e3ca36f7 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Tue, 20 Feb 2024 15:58:28 -0800 Subject: [PATCH] mm/damon/core: reduce fields copying using temporal list_head diff --git a/patches/next/mm-damon-implement-DAMON-context-input-only-update-f.patch b/patches/next/mm-damon-implement-DAMON-context-input-only-update-f.patch index f432f54..566dd6b 100644 --- a/patches/next/mm-damon-implement-DAMON-context-input-only-update-f.patch +++ b/patches/next/mm-damon-implement-DAMON-context-input-only-update-f.patch @@ -1,4 +1,4 @@ -From bedbce69ff61ba1821807cc3b38824b6db4ccf4a Mon Sep 17 00:00:00 2001 +From 7295c08cad87459d5607646b7cbc0ba66c170e00 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Mon, 19 Feb 2024 22:00:35 -0800 Subject: [PATCH] mm/damon: implement DAMON context input-only update function diff --git a/patches/next/mm-damon-paddr-check-access-in-page-level-again-for-.patch b/patches/next/mm-damon-paddr-check-access-in-page-level-again-for-.patch index c032de0..83d58bc 100644 --- a/patches/next/mm-damon-paddr-check-access-in-page-level-again-for-.patch +++ b/patches/next/mm-damon-paddr-check-access-in-page-level-again-for-.patch @@ -1,4 +1,4 @@ -From bf51b1c72a91434d5cb7d32dde3aae2982a328a6 Mon Sep 17 00:00:00 2001 +From b6e9c3246d7e9c372455360f7cd6b2c3f485e176 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 8 Mar 2024 16:06:00 -0800 Subject: [PATCH] mm/damon/paddr: check access in page level again for pageout diff --git a/patches/next/mm-damon-paddr-do-page-level-access-check-for-pageou.patch b/patches/next/mm-damon-paddr-do-page-level-access-check-for-pageou.patch index 803af9d..36d723f 100644 --- a/patches/next/mm-damon-paddr-do-page-level-access-check-for-pageou.patch +++ b/patches/next/mm-damon-paddr-do-page-level-access-check-for-pageou.patch @@ -1,4 +1,4 @@ -From 2eba05c3853a0b1c6af4c66503f76cdf82ee69bb Mon Sep 17 00:00:00 2001 +From a3985dc0cacc647bc4a0fb5d53d2385ec9679dd6 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 8 Mar 2024 16:21:03 -0800 Subject: [PATCH] mm/damon/paddr: do page level access check for pageout DAMOS diff --git a/patches/next/mm-damon-paddr-implement-damon_folio_mkold.patch b/patches/next/mm-damon-paddr-implement-damon_folio_mkold.patch index 375a71f..325858a 100644 --- a/patches/next/mm-damon-paddr-implement-damon_folio_mkold.patch +++ b/patches/next/mm-damon-paddr-implement-damon_folio_mkold.patch @@ -1,4 +1,4 @@ -From 3722854da6b0c6a54bb1f1ecd3b0cc3c4bacf44f Mon Sep 17 00:00:00 2001 +From 82cba6a3ae556e6ff95f60319e8115ed9bc57989 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 8 Mar 2024 17:54:17 -0800 Subject: [PATCH] mm/damon/paddr: implement damon_folio_mkold() diff --git a/patches/next/mm-damon-paddr-implement-damon_folio_young.patch b/patches/next/mm-damon-paddr-implement-damon_folio_young.patch index 4c8ceb1..d6450f3 100644 --- a/patches/next/mm-damon-paddr-implement-damon_folio_young.patch +++ b/patches/next/mm-damon-paddr-implement-damon_folio_young.patch @@ -1,4 +1,4 @@ -From 8b875ad20e57be080d6220a2f0462e27dafe192c Mon Sep 17 00:00:00 2001 +From 154ff24ad213c6b01c67f9dbd48ed60314d3fbd0 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Tue, 5 Mar 2024 16:03:19 -0800 Subject: [PATCH] mm/damon/paddr: implement damon_folio_young() diff --git a/patches/next/mm-damon-paddr-support-DAMOS-filter-type-YOUNG.patch b/patches/next/mm-damon-paddr-support-DAMOS-filter-type-YOUNG.patch index 82f6006..eec78a9 100644 --- a/patches/next/mm-damon-paddr-support-DAMOS-filter-type-YOUNG.patch +++ b/patches/next/mm-damon-paddr-support-DAMOS-filter-type-YOUNG.patch @@ -1,4 +1,4 @@ -From 637a89f2746908b45d6b99274b27ab23a4a91ffa Mon Sep 17 00:00:00 2001 +From 5b31b34c7a350fee408904024f9b076fef454be7 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Tue, 5 Mar 2024 16:04:59 -0800 Subject: [PATCH] mm/damon/paddr: support DAMOS filter type YOUNG diff --git a/patches/next/mm-damon-sysfs-Add-a-file-for-simple-checking-memcg-.patch b/patches/next/mm-damon-sysfs-Add-a-file-for-simple-checking-memcg-.patch index 7420271..5d5341f 100644 --- a/patches/next/mm-damon-sysfs-Add-a-file-for-simple-checking-memcg-.patch +++ b/patches/next/mm-damon-sysfs-Add-a-file-for-simple-checking-memcg-.patch @@ -1,4 +1,4 @@ -From 22a90d85149d195cf3e578e7b7c7303706b0bc4f Mon Sep 17 00:00:00 2001 +From af8b952d6f7d342f3b77768dad42a954a4683fa4 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 18 Nov 2022 23:50:59 +0000 Subject: [PATCH] mm/damon/sysfs: Add a file for simple checking memcg ids and diff --git a/patches/next/mm-vmscan-remove-ignore_references-argument-of-recla.patch b/patches/next/mm-vmscan-remove-ignore_references-argument-of-recla.patch index 90fbab2..a338218 100644 --- a/patches/next/mm-vmscan-remove-ignore_references-argument-of-recla.patch +++ b/patches/next/mm-vmscan-remove-ignore_references-argument-of-recla.patch @@ -1,4 +1,4 @@ -From a1dee91dc64a82f8ebc1cc385e52cb261f7adc64 Mon Sep 17 00:00:00 2001 +From c6665ddeb4a2c109f34290860f71cad838a9adbc Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 8 Mar 2024 16:23:33 -0800 Subject: [PATCH] mm/vmscan: remove ignore_references argument of @@ -29,10 +29,10 @@ index 974edef1740d..18797c1b419b 100644 return applied * PAGE_SIZE; } diff --git a/mm/internal.h b/mm/internal.h -index 8e11f7b2da21..e10c9744ca3a 100644 +index 9512de7398d5..08e5f407ccbb 100644 --- a/mm/internal.h +++ b/mm/internal.h -@@ -975,7 +975,7 @@ extern unsigned long __must_check vm_mmap_pgoff(struct file *, unsigned long, +@@ -1031,7 +1031,7 @@ extern unsigned long __must_check vm_mmap_pgoff(struct file *, unsigned long, unsigned long, unsigned long); extern void set_pageblock_order(void); @@ -42,10 +42,10 @@ index 8e11f7b2da21..e10c9744ca3a 100644 struct list_head *folio_list); /* The ALLOC_WMARK bits are used as an index to zone->watermark */ diff --git a/mm/madvise.c b/mm/madvise.c -index 1f77a51baaac..564f175a1b40 100644 +index bd00b83e7c50..0e01f126a2f7 100644 --- a/mm/madvise.c +++ b/mm/madvise.c -@@ -410,7 +410,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, +@@ -411,7 +411,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, huge_unlock: spin_unlock(ptl); if (pageout) @@ -54,7 +54,7 @@ index 1f77a51baaac..564f175a1b40 100644 return 0; } -@@ -524,7 +524,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, +@@ -538,7 +538,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, pte_unmap_unlock(start_pte, ptl); } if (pageout) @@ -64,10 +64,10 @@ index 1f77a51baaac..564f175a1b40 100644 return 0; diff --git a/mm/vmscan.c b/mm/vmscan.c -index 00adaf1cb2c3..7dfb3cd5d4ce 100644 +index 293120fe54f3..c93166598a2f 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c -@@ -2147,7 +2147,7 @@ static unsigned int reclaim_folio_list(struct list_head *folio_list, +@@ -2148,7 +2148,7 @@ static unsigned int reclaim_folio_list(struct list_head *folio_list, return nr_reclaimed; } @@ -76,7 +76,7 @@ index 00adaf1cb2c3..7dfb3cd5d4ce 100644 { int nid; unsigned int nr_reclaimed = 0; -@@ -2170,11 +2170,11 @@ unsigned long reclaim_pages(struct list_head *folio_list, bool ignore_references +@@ -2171,11 +2171,11 @@ unsigned long reclaim_pages(struct list_head *folio_list, bool ignore_references } nr_reclaimed += reclaim_folio_list(&node_folio_list, NODE_DATA(nid), diff --git a/patches/next/patches-written-or-reviewed-by-SJ-but-not-merged-in-.patch b/patches/next/patches-written-or-reviewed-by-SJ-but-not-merged-in-.patch index 4721351..83e80a7 100644 --- a/patches/next/patches-written-or-reviewed-by-SJ-but-not-merged-in-.patch +++ b/patches/next/patches-written-or-reviewed-by-SJ-but-not-merged-in-.patch @@ -1,4 +1,4 @@ -From ef297e0c204232bd53c9e052bb5a95bde0d77654 Mon Sep 17 00:00:00 2001 +From 2b3901fff77c0af0fdfb8a66b4ce9c215457e15b Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 30 Jun 2023 19:05:31 +0000 Subject: [PATCH] === patches written or reviewed by SJ but not merged in -mm diff --git a/patches/next/selftests-damon-_damon_sysfs-support-commit_schemes_.patch b/patches/next/selftests-damon-_damon_sysfs-support-commit_schemes_.patch index 0df5d10..8153c1f 100644 --- a/patches/next/selftests-damon-_damon_sysfs-support-commit_schemes_.patch +++ b/patches/next/selftests-damon-_damon_sysfs-support-commit_schemes_.patch @@ -1,4 +1,4 @@ -From 422a0e81e4c975d00ac9ad031ca8adc6815cc010 Mon Sep 17 00:00:00 2001 +From e3ebd9a693e9d339242b0a5e449b995da8721223 Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Mon, 12 Feb 2024 17:41:44 -0800 Subject: [PATCH] selftests/damon/_damon_sysfs: support diff --git a/patches/next/series b/patches/next/series index b88129e..9e2d0b0 100644 --- a/patches/next/series +++ b/patches/next/series @@ -1,4 +1,4 @@ -4e567abb6482f6228d23491a25b0d343350e51fe +2f423131bebaa5a4f4b8cf460d96245e93a40905 mark-start-of-DAMON-hack-tree.patch Add-damon-suffix-to-the-version-name.patch temporal-fixes.patch diff --git a/patches/next/temporal-fixes.patch b/patches/next/temporal-fixes.patch index 9ee808e..91c71e7 100644 --- a/patches/next/temporal-fixes.patch +++ b/patches/next/temporal-fixes.patch @@ -1,4 +1,4 @@ -From 5c8b8a3d27d7b25f33df0bf5036662b6da2f55cd Mon Sep 17 00:00:00 2001 +From c775b94618c181ff6ba088361cfdc5cd64c7407c Mon Sep 17 00:00:00 2001 From: SeongJae Park <sj@kernel.org> Date: Fri, 30 Jun 2023 19:05:08 +0000 Subject: [PATCH] === temporal fixes === |