lkml.org 
[lkml]   [2022]   [Jan]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] mm/page_isolation: unset migratetype directly for non Buddy page
From


在 2022/1/15 4:50, Guillaume Tucker 写道:
> Hi Chen,
>
> Please see the bisection report below about a boot failure on
> Meson arm64 platforms as well as QEMU when enabling 64K pages.
>
> Reports aren't automatically sent to the public while we're
> trialing new bisection features on kernelci.org but this one
> looks valid.
>
> Some more details can be found here:
>
> QEMU: https://linux.kernelci.org/test/case/id/61dfcaa1dee57d03ffef673e/
> ODROID-N2: https://linux.kernelci.org/test/case/id/61dfc93ac88e282ca8ef676b/
>
> Here's a sample log showing some OOM errors before hitting a
> kernel panic:
>
> https://storage.kernelci.org/next/master/next-20220113/arm64/defconfig+config_arm64_64k_pages=y/gcc-10/lab-baylibre/baseline-meson-g12b-odroid-n2.html
>
> <4>[ 24.666707] Out of memory and no killable processes...
> <0>[ 24.672056] Kernel panic - not syncing: System is deadlocked on memory
>
> Please let us know if you need any help to debug this issue or if
> you have a fix to try.
>
> Best wishes,
> Guillaume
>
>
> GitHub: https://github.com/kernelci/kernelci-project/issues/91
>
> -------------------------------------------------------------------------------
>
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
> * This automated bisection report was sent to you on the basis *
> * that you may be involved with the breaking commit it has *
> * found. No manual investigation has been done to verify it, *
> * and the root cause of the problem may be somewhere else. *
> * *
> * If you do send a fix, please include this trailer: *
> * Reported-by: "kernelci.org bot" <bot@kernelci.org> *
> * *
> * Hope this helps! *
> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>
> next/master bisection: baseline.login on meson-g12b-odroid-n2
>
> Summary:
> Start: 27c9d5b3c24a Add linux-next specific files for 20220113
> Plain log: https://storage.kernelci.org/next/master/next-20220113/arm64/defconfig+CONFIG_ARM64_64K_PAGES=y/gcc-10/lab-baylibre/baseline-meson-g12b-odroid-n2.txt
> HTML log: https://storage.kernelci.org/next/master/next-20220113/arm64/defconfig+CONFIG_ARM64_64K_PAGES=y/gcc-10/lab-baylibre/baseline-meson-g12b-odroid-n2.html
> Result: 075782149abf mm/page_isolation: unset migratetype directly for non Buddy page
>
> Checks:
> revert: PASS
> verify: PASS
>
> Parameters:
> Tree: next
> URL: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
> Branch: master
> Target: meson-g12b-odroid-n2
> CPU arch: arm64
> Lab: lab-baylibre
> Compiler: gcc-10
> Config: defconfig+CONFIG_ARM64_64K_PAGES=y
> Test case: baseline.login
>
> Breaking commit found:
>
> -------------------------------------------------------------------------------
> commit 075782149abff45ee22f27315eced44d02b96779
> Author: Chen Wandun <chenwandun@huawei.com>
> Date: Thu Dec 30 20:28:40 2021 +1100
>
> mm/page_isolation: unset migratetype directly for non Buddy page
>
> On 29/12/2021 03:36, Chen Wandun wrote:
>> There is no need to try to move_freepages_block for pages that is not
>> in buddy in function unset_migratetype_isolate, it can directly set
>> migrate type.
>>
>> It will save a few cpu cycles for some situations such as cma and
>> hugetlb when allocating continue pages, in these situation function
>> alloc_contig_pages will be called.
>>
>> alloc_contig_pages
>> __alloc_contig_migrate_range
>> isolate_freepages_range ==> pages has been remove from buddy
>> undo_isolate_page_range
>> unset_migratetype_isolate ==> can directly set migratetype
>>
>> Fixes: 3c605096d315 ("mm/page_alloc: restrict max order of merging on isolated pageblock")
>> Signed-off-by: Chen Wandun <chenwandun@huawei.com>
>> ---
>> mm/page_isolation.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/mm/page_isolation.c b/mm/page_isolation.c
>> index f67c4c70f17f..6a0ddda6b3c5 100644
>> --- a/mm/page_isolation.c
>> +++ b/mm/page_isolation.c
>> @@ -115,7 +115,7 @@ static void unset_migratetype_isolate(struct page *page, unsigned migratetype)
>> * onlining - just onlined memory won't immediately be considered for
>> * allocation.
>> */
>> - if (!isolated_page) {
>> + if (!isolated_page && PageBuddy(page)) {
>> nr_pages = move_freepages_block(zone, page, migratetype, NULL);
>> __mod_zone_freepage_state(zone, nr_pages, migratetype);
>> }
This patch should be reverted, It has some difference compared with
original logic,and
will result  memory that should in buddy disappear by mistake.

Thanks  Guillaume
>
> Git bisection log:
>
> -------------------------------------------------------------------------------
> git bisect start
> # good: [81ff0be4b9e3bcfee022d71cf89d72f7e2ed41ba] Merge tag 'spdx-5.17-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx
> git bisect good 81ff0be4b9e3bcfee022d71cf89d72f7e2ed41ba
> # bad: [27c9d5b3c24af29de643533984f1ba3e650c7c78] Add linux-next specific files for 20220113
> git bisect bad 27c9d5b3c24af29de643533984f1ba3e650c7c78
> # good: [cf9e126911a1438ff36588f548a4137fe149d86c] Merge branch 'for-next' of git://git.kernel.dk/linux-block.git
> git bisect good cf9e126911a1438ff36588f548a4137fe149d86c
> # good: [05333947ad98119466c1bba228de30ab30aefa3f] Merge branch 'char-misc-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git
> git bisect good 05333947ad98119466c1bba228de30ab30aefa3f
> # good: [2f978ceb8fee3221c479d0caffcd296ff58f058d] Merge branch 'hyperv-next' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux.git
> git bisect good 2f978ceb8fee3221c479d0caffcd296ff58f058d
> # bad: [d2bcbbe9073423477e7552a440e46f29a2ba0c55] panic: Remove oops_id.
> git bisect bad d2bcbbe9073423477e7552a440e46f29a2ba0c55
> # good: [fd4eb4516f5a2cc80d9ccff05900a3ff29bf4515] selftests/uffd: allow EINTR/EAGAIN
> git bisect good fd4eb4516f5a2cc80d9ccff05900a3ff29bf4515
> # bad: [98f4df2922a74f2369cf86b2df0375994766cdfe] mm/damon/reclaim: provide reclamation statistics
> git bisect bad 98f4df2922a74f2369cf86b2df0375994766cdfe
> # bad: [0212633f011d67bc1afe1b3611d9f61e4709c5b8] zsmalloc: introduce obj_allocated
> git bisect bad 0212633f011d67bc1afe1b3611d9f61e4709c5b8
> # bad: [34db36a7fab0af966a28cca95f2e08e89b33e700] mm/migrate: move node demotion code to near its user
> git bisect bad 34db36a7fab0af966a28cca95f2e08e89b33e700
> # bad: [a85e687fe7e5932b641d3abf99f66f3d57023850] mm/mempolicy: fix all kernel-doc warnings
> git bisect bad a85e687fe7e5932b641d3abf99f66f3d57023850
> # bad: [ed68b8bb2a653a1bedc8e1607a050e4200a75ebc] mm/mempolicy: add set_mempolicy_home_node syscall
> git bisect bad ed68b8bb2a653a1bedc8e1607a050e4200a75ebc
> # bad: [075782149abff45ee22f27315eced44d02b96779] mm/page_isolation: unset migratetype directly for non Buddy page
> git bisect bad 075782149abff45ee22f27315eced44d02b96779
> # good: [918650729924a97d11b38a38199c6ef96bcf9a73] vmscan: make drop_slab_node static
> git bisect good 918650729924a97d11b38a38199c6ef96bcf9a73
> # first bad commit: [075782149abff45ee22f27315eced44d02b96779] mm/page_isolation: unset migratetype directly for non Buddy page
> -------------------------------------------------------------------------------
> .

\
 
 \ /
  Last update: 2022-01-17 07:30    [W:0.063 / U:0.624 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site