lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <be27d5e3-43e6-a627-06a4-1e2c7580ecaf@huawei.com>
Date:   Mon, 17 Jan 2022 14:29:45 +0800
From:   Chen Wandun <chenwandun@...wei.com>
To:     Guillaume Tucker <guillaume.tucker@...labora.com>,
        <akpm@...ux-foundation.org>, <vbabka@...e.cz>,
        <iamjoonsoo.kim@....com>, <linux-mm@...ck.org>,
        <linux-kernel@...r.kernel.org>
CC:     <wangkefeng.wang@...wei.com>,
        "kernelci@...ups.io" <kernelci@...ups.io>
Subject: Re: [PATCH] mm/page_isolation: unset migratetype directly for non
 Buddy page



在 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@...nelci.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@...wei.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@...wei.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
> -------------------------------------------------------------------------------
> .

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ