Received: by 2002:a5d:9c59:0:0:0:0:0 with SMTP id 25csp2154800iof; Tue, 7 Jun 2022 21:35:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxa0WT19+WRR+2/nWdL5k8IktHh2ew/WYqakaMwIq9gLbbtEtGHM5kwkm2cmqVzKWKFi6sA X-Received: by 2002:a17:902:bd09:b0:162:1497:de0a with SMTP id p9-20020a170902bd0900b001621497de0amr32377208pls.64.1654662911540; Tue, 07 Jun 2022 21:35:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1654662911; cv=none; d=google.com; s=arc-20160816; b=sT1bo999cclw497vH7Rk6ZaYdcFIP216+PGuhLT8TbgFATX9vZN9MhfL1zue3UOjPf Kpn/+ZEu8tvVlhLPnoIZnC3P5c+6vm/cyeR59v95r8EAEoC4p8LlLP7B66QJzvtqIfEV TO3Qbiv2LGLMQiAzodvNs4zxTGey7TwzJCXGjBPExFuXCvnTR1yccgLeCgP3ZYjzn2UM 6HTWKYF1R759niYUa92b9Ew3jKT0olUBqYhHoGtiE+z3UtN+fj6Fn9R9vOHGLNWU3n5U jCsAyei1ua78nLaCOCYsT8TfTVJ3xYKBu/0oai8rJ+yYiTswA11zs8g4jU2OXpBPAvG9 8KrQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=VPOLce4T8uKTl8bDuvP4aIArWmHTCA4t119LiXZasqg=; b=SCClvOHZ/85++QsrlTFeHqrcOtRKLT0FTFFx2gEPANiDgXoaHTGFyDHwckDSTCFCsz D4L5VjajV3VnX34mkzSGKc5zOfT/2FcNVZ/Ym4Xm5eokvBsKK9nTXhkovHJvdqjygQJy ThT+2xcYibX9dGnSPqvpuPPC/4rHlqW8o/wMWNmarnm7rL5Mj8/gPSoWelC0j2yAawma AnR+nK9fWiC3WTKPqc+f9tlDn/Kv8hcx+eL0O2r6JzwkaYa3dep+KVTAw8EPen+o3R+B cZuLtanJ6S5vVFpwGVgf9Ofuy8v6RQxrnxPcULbbnTtHGu3idMjNkS+/UZVNRPiK7QtA Qdzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=BdkETQXD; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id h190-20020a6383c7000000b003fe2e6495easi1511256pge.409.2022.06.07.21.35.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 07 Jun 2022 21:35:11 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=BdkETQXD; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 1730E25BC39; Tue, 7 Jun 2022 21:03:31 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245560AbiFGOcl (ORCPT + 99 others); Tue, 7 Jun 2022 10:32:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56304 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229884AbiFGOcg (ORCPT ); Tue, 7 Jun 2022 10:32:36 -0400 Received: from mail-pl1-x629.google.com (mail-pl1-x629.google.com [IPv6:2607:f8b0:4864:20::629]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 319615B3CF for ; Tue, 7 Jun 2022 07:32:31 -0700 (PDT) Received: by mail-pl1-x629.google.com with SMTP id u18so14984022plb.3 for ; Tue, 07 Jun 2022 07:32:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=message-id:date:mime-version:user-agent:subject:content-language:to :cc:references:from:in-reply-to:content-transfer-encoding; bh=VPOLce4T8uKTl8bDuvP4aIArWmHTCA4t119LiXZasqg=; b=BdkETQXDehKm3RcVOVc9IQ+5+eLDKcr/JN6J0vfmovydms+JFO5qQflU50SLT2xkjL CGp03OfGGatm2GSbk90GTyq4BHJi3G9gZJFLU+L2misnEd2asnYJ+67b7RUAAhXziIqR FHN09RKAdBe/DQ/fup4DHjPtQTdxgrbRDNf065bei0nE414/z1Oh4ThLAKz0hMUHhMuy x9cn0jeuE18MYnd4KogDFU3Q+zDpnoCSn0C308ksuyAOyhxrinC0f+7bDJKqCtCMqjaZ QmQZQOsMz6ky+yVMTgILZSpT9lOiptwPU4tj5plX7Rh4C5+Qbi/bxLvPM8mdmgAYHEJC yVnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:message-id:date:mime-version:user-agent:subject :content-language:to:cc:references:from:in-reply-to :content-transfer-encoding; bh=VPOLce4T8uKTl8bDuvP4aIArWmHTCA4t119LiXZasqg=; b=TfR8fmDYMnmqkFdF9w0FyLmMb6obPv9k2LLkoah7wHm5USDC6amtC1YplJA8q1O8Bf pkuRhWATPLoLx7bUioexF2Zs/rYphNbhSgWBJsRNcteIgEFbrc97/jcOnJAxb9SAOIYL NwaSoa5GhNsF5LyEJ2CqlVv9toRo6b6TemLN8xlFQknDm8fuNB6yrqZV5NoUiEBKpKAa PiGc24gYLeOQgCp8hm3ac2b9uCMnJNfkiGV3fxCDnQdnzUSm+75jXqW+mgOLCVKJLT10 b4Xz5jZYS3RRNvn2AvMJCXxmKZDV+hjr8qj7UEwSugkWvHfHJM6TGYQ/T5XyJu+0q5/X R/bA== X-Gm-Message-State: AOAM530tB8ylvt0uFCvUfA1bkfUNRaSTjw1IVkgFN2f4/Id/vdzGS019 Z8ixLEEcDR+zz7w8i0exkks= X-Received: by 2002:a17:903:1c5:b0:167:71bd:462f with SMTP id e5-20020a17090301c500b0016771bd462fmr13880919plh.65.1654612350883; Tue, 07 Jun 2022 07:32:30 -0700 (PDT) Received: from [192.168.1.104] ([101.86.206.159]) by smtp.gmail.com with ESMTPSA id jb15-20020a170903258f00b001688f2ff292sm243875plb.222.2022.06.07.07.32.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 07 Jun 2022 07:32:30 -0700 (PDT) Message-ID: <8fc24ba3-1467-b845-a70e-7ed77750e6cd@gmail.com> Date: Tue, 7 Jun 2022 22:32:26 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: [PATCH v2 1/4] mm: kmemleak: add OBJECT_PHYS flag for objects allocated with physical address Content-Language: en-US To: Catalin Marinas Cc: akpm@linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, yee.lee@mediatek.com References: <20220603035415.1243913-1-patrick.wang.shcn@gmail.com> <20220603035415.1243913-2-patrick.wang.shcn@gmail.com> From: Patrick Wang In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,NICE_REPLY_A, RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE autolearn=unavailable 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 On 2022/6/6 19:55, Catalin Marinas wrote: > On Fri, Jun 03, 2022 at 11:54:12AM +0800, Patrick Wang wrote: >> diff --git a/mm/kmemleak.c b/mm/kmemleak.c >> index a182f5ddaf68..1e9e0aa93ae5 100644 >> --- a/mm/kmemleak.c >> +++ b/mm/kmemleak.c >> @@ -172,6 +172,8 @@ struct kmemleak_object { >> #define OBJECT_NO_SCAN (1 << 2) >> /* flag set to fully scan the object when scan_area allocation failed */ >> #define OBJECT_FULL_SCAN (1 << 3) >> +/* flag set for object allocated with physical address */ >> +#define OBJECT_PHYS (1 << 4) >> >> #define HEX_PREFIX " " >> /* number of bytes to print per line; must be 16 or 32 */ >> @@ -575,7 +577,8 @@ static int __save_stack_trace(unsigned long *trace) >> * memory block and add it to the object_list and object_tree_root. >> */ >> static struct kmemleak_object *create_object(unsigned long ptr, size_t size, >> - int min_count, gfp_t gfp) >> + int min_count, gfp_t gfp, >> + bool is_phys) > > The patch looks fine but I wonder whether we should have different > functions for is_phys true/false, we may end up fewer changes overall > since most places simply pass is_phys == false: This should be better. Will do. > > static struct kmemleak_object *__create_object(unsigned long ptr, size_t size, > int min_count, gfp_t gfp, > bool is_phys); > > static struct kmemleak_object *create_object(unsigned long ptr, size_t size, > int min_count, gfp_t gfp) > { > return __create_object(ptr, size, min_count, gfp, false); > } > > static struct kmemleak_object *create_object_phys(unsigned long ptr, size_t size, > int min_count, gfp_t gfp) > { > return __create_object(ptr, size, min_count, gfp, true); > } > > Same for the other patches that change a few more functions. Since the physical objects are only used as gray objects. Changes on irrelevant places will be removed. The leak check could be taken on physical objects. Conversion of block address from virtual to physical before lookup should make this work (this is useless currently). I think we'd better know about this. Thanks, Patrick