From patchwork Fri Jan 13 06:20:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "zhaoyang.huang" X-Patchwork-Id: 42970 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp112084wrt; Thu, 12 Jan 2023 22:25:20 -0800 (PST) X-Google-Smtp-Source: AMrXdXsGgBHZt+Pcc2yoadfNYsGBKNM1rOU5bvicDUQoMxHS5bV0dw8VQ5P660RPcgP4jvkkLOUF X-Received: by 2002:a05:6a20:7faa:b0:b3:8808:b93d with SMTP id d42-20020a056a207faa00b000b38808b93dmr92951214pzj.62.1673591119782; Thu, 12 Jan 2023 22:25:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673591119; cv=none; d=google.com; s=arc-20160816; b=Fkx6zzDt5gKC3cNn556HhLAc0jROmzfETE9FNUyx875TrgE5yiRQL4o32QXly3qCai PTMvLAmR9IKBJxw7q44oXT1Nw8aRs8TeF7qr9oTMloRq/WgnUK+lfgK20uJAlY1PwPe6 amEL+r/4CD9XgUAXxYz+pU00CAkwyn6InNxMCNTokDekRJHEF593xrZfyJys8eCOijCc HgJ7GnVZYgy6Vf0reSsyw+4mi5jIjElEzqwyV2FKE9S8q1vF5QamSJykHegUVYpbGUCJ ovPCTR3Qc+++wTELXMAf1/4jE4nRfG6dNnICpkpA15OuzyTysfZol0o/idhyp0H/9DrX 0sgg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:content-transfer-encoding :content-language:accept-language:references:message-id:date :thread-index:thread-topic:subject:cc:to:from; bh=fjCwFRSeZTmyzDc7gw7A8NQpyjTX8eOzAIFCnMqkNVY=; b=cnAToCRT6CUla0KuASVcTlsq0UfqVkdgRsNdYSe7BL6SVnC1taddjZCnGsuUumLCmt WaYfkse1nxHhC1VN5CcNJBXutEopcbUPStxjZkeb7LU2+hqTN9wq99v83fU3I7RkHHOh wh2jYi7AEMIlaLLUX6ovadqSuuJ1rqM90llcCi0LVcshlZs1rMRXq0vamVhw6NlQMWV+ tRU+kxvaW//vvbvvwPFlAXn5TFQbeZgpW5XS7F3Sq9wxLihdHw0iZjANO6HVpo+jq6rE bfMdF7i3/Coj97QZ56rSzYyci4910TK/71xT0DvP+rY0HmMrZ5/TjuzDb+RU27y9ggDa ETUQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y192-20020a638ac9000000b004b6ab2e4d0esi7869714pgd.573.2023.01.12.22.25.06; Thu, 12 Jan 2023 22:25:19 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235477AbjAMGXn (ORCPT + 99 others); Fri, 13 Jan 2023 01:23:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239917AbjAMGW0 (ORCPT ); Fri, 13 Jan 2023 01:22:26 -0500 Received: from SHSQR01.spreadtrum.com (unknown [222.66.158.135]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 04D241CB26 for ; Thu, 12 Jan 2023 22:21:33 -0800 (PST) Received: from SHSend.spreadtrum.com (bjmbx02.spreadtrum.com [10.0.64.8]) by SHSQR01.spreadtrum.com with ESMTP id 30D6KLcB019340; Fri, 13 Jan 2023 14:20:21 +0800 (+08) (envelope-from zhaoyang.huang@unisoc.com) Received: from BJMBX01.spreadtrum.com (10.0.64.7) by BJMBX02.spreadtrum.com (10.0.64.8) with Microsoft SMTP Server (TLS) id 15.0.1497.23; Fri, 13 Jan 2023 14:20:21 +0800 Received: from BJMBX01.spreadtrum.com ([fe80::54e:9a:129d:fac7]) by BJMBX01.spreadtrum.com ([fe80::54e:9a:129d:fac7%16]) with mapi id 15.00.1497.023; Fri, 13 Jan 2023 14:20:21 +0800 From: =?utf-8?b?6buE5pyd6ZizIChaaGFveWFuZyBIdWFuZyk=?= To: Mirsad Goran Todorovac , "linux-kernel@vger.kernel.org" , =?utf-8?b?546L56eRIChLZSBXYW5nKQ==?= CC: Catalin Marinas , Andrew Morton , "linux-mm@kvack.org" , Thorsten Leemhuis Subject: =?utf-8?q?=E7=AD=94=E5=A4=8D=3A_INFO=3A_=5BBISECTED=5D_Regression?= =?utf-8?q?=3A_A_Problem_with_/sys/kernel/debug/kmemleak_output=3A_backtrace?= =?utf-8?q?_not_printed_since_6=2E2=2E0-rc1?= Thread-Topic: INFO: [BISECTED] Regression: A Problem with /sys/kernel/debug/kmemleak output: backtrace not printed since 6.2.0-rc1 Thread-Index: AQHZJs/i0HowfIUVfkih2BYSc4TXiK6bk7/AgABMavA= Date: Fri, 13 Jan 2023 06:20:20 +0000 Message-ID: <314a477e7f0644fbaf8fc607daefe70e@BJMBX01.spreadtrum.com> References: <5272a819-ef74-65ff-be61-4d2d567337de@alu.unizg.hr> <4c467851-8080-44d3-d017-b0e283896119@alu.unizg.hr> <53c2d558-c6a1-38e5-5739-28fff023558d@alu.unizg.hr> <3ba5f8ee-d9bd-69ae-bb3a-c61e47020e2c@alu.unizg.hr> Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.0.93.65] MIME-Version: 1.0 X-MAIL: SHSQR01.spreadtrum.com 30D6KLcB019340 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754848080721124379?= X-GMAIL-MSGID: =?utf-8?q?1754887481905200262?= >/sys/kernel/debug/kmemleak output: backtrace not printed since 6.2.0-rc1 > > >>On 12. 01. 2023. 20:50, Mirsad Todorovac wrote: >>> Hi all, >>> >>> there seems to be a problem with the output of >>/sys/kernel/debug/kmemleak: >>> >>> [root@pc-mtodorov ~]# cat /sys/kernel/debug/kmemleak unreferenced >>> object 0xffff951c118568b0 (size 16): >>> comm "kworker/u12:2", pid 56, jiffies 4294893952 (age 4356.548s) >>> hex dump (first 16 bytes): >>> 6d 65 6d 73 74 69 63 6b 30 00 00 00 00 00 00 00 memstick0....... >>> backtrace: >>> [root@pc-mtodorov ~]# >>> >>> Apparently, backtrace of called functions on the stack is no longer >>> printed >>with the list of memory leaks. >>> >>> This appeared on Lenovo desktop 10TX000VCR, with AlmaLinux 8.7 and >>> BIOS version M22KT49A (11/10/2022) and 6.2-rc1 and 6.2-rc2 builds. >>> >>> This worked on 6.1 with the same CONFIG_KMEMLEAK=y and MGLRU >>enabled >>> on a vanilla mainstream kernel from Mr. Torvalds' tree. I don't know >>> if this is >>deliberate feature for some reason or a bug. >>> >>> Please find attached the config, lshw and kmemleak output. >>> >>> The bisection gave this commit as the culprit for the severed stack >>> backtrace print in /sys/kernel/debug/kmemleak: >>> >>> mtodorov@domac:~/linux/kernel/linux_torvalds$ git bisect good >>> 56a61617dd2276cbc56a6c868599716386d70041 is the first bad commit >>> commit 56a61617dd2276cbc56a6c868599716386d70041 >>> Author: Zhaoyang Huang >>> Date: Thu Oct 27 17:50:24 2022 +0800 >>> >>> mm: use stack_depot for recording kmemleak's backtrace >>> >>> Using stack_depot to record kmemleak's backtrace which has been >>> implemented on slub for reducing redundant information. >>> >>> The complete bisect log is: >>> >>> mtodorov@domac:~/linux/kernel/linux_torvalds$ git bisect log git >>> bisect start '--' 'mm' >>> # good: [830b3c68c1fb1e9176028d02ef86f3cf76aa2476] Linux 6.1 git >>> bisect good 830b3c68c1fb1e9176028d02ef86f3cf76aa2476 >>> # bad: [1b929c02afd37871d5afb9d498426f83432e71c2] Linux 6.2-rc1 git >>> bisect bad 1b929c02afd37871d5afb9d498426f83432e71c2 >>> # good: [8b9ed79c2d587bec5f603d66801478a5af9af842] Merge tag >>> 'x86_asm_for_v6.2' of >>> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip >>> git bisect good 8b9ed79c2d587bec5f603d66801478a5af9af842 >>> # good: [e83b39d6bbdb6d25bd6f5c258832774635d29b47] mm: make >>> drop_caches keep reclaiming on all nodes git bisect good >>> e83b39d6bbdb6d25bd6f5c258832774635d29b47 >>> # good: [9997bc017549acd6425e32300eff28424ffeeb6b] zsmalloc: >>implement >>> writeback mechanism for zsmalloc git bisect good >>> 9997bc017549acd6425e32300eff28424ffeeb6b >>> # good: [6287b7dae80944bfa37784a8f9d6861a4facaa6e] mm,thp,rmap: fix >>> races between updates of subpages_mapcount git bisect good >>> 6287b7dae80944bfa37784a8f9d6861a4facaa6e >>> # good: [8fa590bf344816c925810331eea8387627bbeb40] Merge tag >>> 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm >>> git bisect good 8fa590bf344816c925810331eea8387627bbeb40 >>> # good: [4f292c4de4f6fb83776c0ff22674121eb6ddfa2f] Merge tag >>> 'x86_mm_for_6.2_v2' of >>> git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip >>> git bisect good 4f292c4de4f6fb83776c0ff22674121eb6ddfa2f >>> # bad: [1ea9d333ba475041efe43d9d9bc32e64aea2ea2b] Merge tag >>> 'mm-stable-2022-12-17-2' of >>> git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm >>> git bisect bad 1ea9d333ba475041efe43d9d9bc32e64aea2ea2b >>> # bad: [56a61617dd2276cbc56a6c868599716386d70041] mm: use >>stack_depot >>> for recording kmemleak's backtrace git bisect bad >>> 56a61617dd2276cbc56a6c868599716386d70041 >>> # good: [61b963b52f59524e27692bc1c14bfb2459e32eb3] mm/gup_test: >>free >>> memory allocated via kvcalloc() using kvfree() git bisect good >>> 61b963b52f59524e27692bc1c14bfb2459e32eb3 >>> # first bad commit: [56a61617dd2276cbc56a6c868599716386d70041] mm: >>use >>> stack_depot for recording kmemleak's backtrace # good: >>> [9102b78b6f6ae6af3557114c265c266b312c1319] maple_tree: update >>> copyright dates for test code git bisect good >>> 9102b78b6f6ae6af3557114c265c266b312c1319 >>> # first bad commit: [56a61617dd2276cbc56a6c868599716386d70041] mm: >>use >>> stack_depot for recording kmemleak's backtrace You have mail in >>> /var/mail/mtodorov mtodorov@domac:~/linux/kernel/linux_torvalds$ >>> >>> The platform is 10TX000VCR >>(LENOVO_MT_10TX_BU_Lenovo_FM_V530S-07ICB) >>> running AlmaLinux 8.7 (CentOS clone) and BIOS M22KT49A. >>> >>> GCC used was: >>> >>> mtodorov@domac:~/linux/kernel/linux_torvalds$ gcc --version gcc >>> (Debian 8.3.0-6) 8.3.0 Copyright (C) 2018 Free Software Foundation, >>> Inc. >>> This is free software; see the source for copying conditions. There >>> is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A >>PARTICULAR PURPOSE. >>> mtodorov@domac:~/linux/kernel/linux_torvalds$ >>> >>> Hope this helps. >>> >>> I lack the insight to pinpoint the exact fault in the patch. >> >>P.S. >> >>To further complicate things, on Ubuntu 22.10 Lenovo Ideapad 3 15ITL6 >>laptop the kmemleak stack backtrace is printed correctly with the same >>kernels (but .deb instead of .rpm for the same build): >> >>unreferenced object 0xffff94ca88e042d0 (size 80): >> comm "thermald", pid 768, jiffies 4294893592 (age 78581.504s) >> hex dump (first 32 bytes): >> 00 00 00 00 00 00 00 00 0d 01 2d 00 00 00 00 00 ..........-..... >> af 07 01 80 fd ac ff ff 00 00 00 00 00 00 00 00 ................ >> backtrace: >> [] slab_post_alloc_hook+0x91/0x320 >> [] kmem_cache_alloc+0x169/0x2f0 >> [] acpi_os_acquire_object+0x2c/0x32 >> [] acpi_ps_alloc_op+0x4a/0x99 >> [] acpi_ps_get_next_arg+0x611/0x761 >> [] acpi_ps_parse_loop+0x494/0x8d7 >> [] acpi_ps_parse_aml+0x1bb/0x561 >> [] acpi_ps_execute_method+0x20f/0x2d5 >> [] acpi_ns_evaluate+0x34d/0x4f3 >> [] acpi_evaluate_object+0x180/0x3ae >> [] acpi_run_osc+0x128/0x250 >> [] int3400_thermal_run_osc+0x6f/0xc0 >>[int3400_thermal] >> [] current_uuid_store+0xe3/0x120 [int3400_thermal] >> [] dev_attr_store+0x14/0x30 >> [] sysfs_kf_write+0x38/0x50 >> [] kernfs_fop_write_iter+0x146/0x1d0 You have new >>mail in /var/mail/root root@marvin-IdeaPad-3-15ITL6:/home/marvin# >> >>Regards, >>Mirsad > >thanks for head up. Could you please help to check If CONFIG_STACKTRACE >and CONFIG_STACKDEPOT is enabled on the fault kernel? Please try the patch below if the configs are right. I think it should be caused by the late ready for kmemleak commit 556eb1927da99ab366e370d593fc32da946768c3 Author: Zhaoyang Huang Date: Fri Jan 13 14:13:39 2023 +0800 mm: instroduce a flag to indicate stack_depot's ready try to solve the kmemleak's late ready issue. - if (!kmemleak_initialized) + if (!kmemleak_stadep_initialized) return 0; nr_entries = stack_trace_save(entries, ARRAY_SIZE(entries), 3); trace_handle = stack_depot_save(entries, nr_entries, GFP_NOWAIT); @@ -2110,6 +2111,7 @@ void __init kmemleak_init(void) create_object((unsigned long)__start_ro_after_init, __end_ro_after_init - __start_ro_after_init, KMEMLEAK_GREY, GFP_ATOMIC); + kmemleak_stadep_initialized = 1; } >> >>-- >>Mirsad Goran Todorovac >>Sistem inženjer >>Grafički fakultet | Akademija likovnih umjetnosti Sveučilište u Zagrebu >> >>System engineer >>Faculty of Graphic Arts | Academy of Fine Arts University of Zagreb, >>Republic of Croatia The European Union diff --git a/mm/kmemleak.c b/mm/kmemleak.c index 762b91f..7eb24bc 100644 --- a/mm/kmemleak.c +++ b/mm/kmemleak.c @@ -216,6 +216,7 @@ struct kmemleak_object { static int kmemleak_warning; /* set if a fatal kmemleak error has occurred */ static int kmemleak_error; +static int kmemleak_stadep_initialized; /* minimum and maximum address that may be valid pointers */ static unsigned long min_addr = ULONG_MAX; @@ -601,7 +602,7 @@ static noinline depot_stack_handle_t set_track_prepare(void) unsigned long entries[MAX_TRACE]; unsigned int nr_entries;