Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp3908957iog; Tue, 28 Jun 2022 05:24:33 -0700 (PDT) X-Google-Smtp-Source: AGRyM1tNUmOPB3qqrhtjk51FsXhl0C9olQHL6Lm3mzeWAujs1k5h9jWo+jbm1NFjtWYWRWX8yZsD X-Received: by 2002:a17:902:e948:b0:16b:9263:b6d6 with SMTP id b8-20020a170902e94800b0016b9263b6d6mr1878521pll.34.1656419073442; Tue, 28 Jun 2022 05:24:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656419073; cv=none; d=google.com; s=arc-20160816; b=No0wFwP+oiAx1HSqv67nhmcwx1Lw97u8XysDjnYRB3I4ix2Zb8n17XFfe8m4/KQOqN hYEOFcxi/kX0bcx4l3YYCQw+v4N3WpGseBQ/Msdbi26AgcLn3Q2J+uoigCN3KxLq9d8A JU3zJfcCcAqcd7h8KJfBBKuyJkf974XxTgNJpNL7RM9sRXruo+iHIQh6OpLPkIP/38Vk xuTl1DD/TesL6mC4HjTcY5wWmw2jAv+2OBBS7GfcNq2QBv56TBoEO2xz95GD658wQtB7 EPX8OC8F5iiQb9DGw2hmxCj2g2yymvCm6F5oHW7HRaCDu0ru6s8QUPAXtK1zerxCMN7m Wv3w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=kivkjIcW/dBwtKQGxzqBhqyQNzFDh/iWcq1jAKuPzjQ=; b=VMxNnslcmJ4ukGtey6yq6WlUbzXG447u/pD0MsZaPb054o4Yo3QCicdw4o1830NTQ8 RsGscOwXFRICaXjjATpBJFvfEsZIJZxb/OUYXGf/udNSH5HcOfzBF0Zxeb/cs35/MMfU R3R+5S028+S7X+eDrE3l4uBd4682QYIcW0tPF5apjVDBcXL0UihzEIb1a+vUzFqEV3IF TtMr7UqCH4NdlTkrG30BvVILHXPYk3qa/CXSr2OQUC2gNfkg8mB0D5bjMU8+jUEVVZ5V lHtW06Yi9UgTZwVPktY4dyvcoRhGroZid29yBGsoWuKMmY/mc/ros2eUCxRxb52qHitz TKVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=CLRflZYy; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u64-20020a638543000000b00408c34d632dsi16499154pgd.157.2022.06.28.05.24.20; Tue, 28 Jun 2022 05:24:33 -0700 (PDT) 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; dkim=pass header.i=@google.com header.s=20210112 header.b=CLRflZYy; 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; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1345293AbiF1MLC (ORCPT + 99 others); Tue, 28 Jun 2022 08:11:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41256 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1345239AbiF1MK7 (ORCPT ); Tue, 28 Jun 2022 08:10:59 -0400 Received: from mail-yb1-xb29.google.com (mail-yb1-xb29.google.com [IPv6:2607:f8b0:4864:20::b29]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 701BA34673 for ; Tue, 28 Jun 2022 05:10:55 -0700 (PDT) Received: by mail-yb1-xb29.google.com with SMTP id l11so21800808ybu.13 for ; Tue, 28 Jun 2022 05:10:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=kivkjIcW/dBwtKQGxzqBhqyQNzFDh/iWcq1jAKuPzjQ=; b=CLRflZYyQbg2Iw8XCTaSt3HhmxKw/xrafgduTJjfhqjN2UgMgl+t/Gw4w6ILs6K9J4 MiBhpvtp9dwuJoICS/Nb1ZrtA3RQX7LEA7Mz5j+bBQgqJZtt6/ayHu+r5Hhb3qNZ4MWa hFjTG4fGYnkRgTZZBBgzYCRgfxmHlPzv/4ipJqE4P/j7/2M+hTvxyKMHh77AZQv+DXXp HhfG34tq68ucJafyFKHbBlkKZIavzOm2MyDj5K6/Q7swKn5I+xF/JVEwmlCwkvsZvZHr w9cyP8LjUEu4elAD/I0i18jI8ov478QkOC5jYowuBKa+OZLBRkMIuuXZdJu9woKbWYNY OIWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=kivkjIcW/dBwtKQGxzqBhqyQNzFDh/iWcq1jAKuPzjQ=; b=Bly5R69UUccL2PvWv3qobDovVUTsIwIFIFIKFuNa84N90DmAeRo2/y0rz3kZkzAQsX wFv2USASqYmz3CWlqwnZmlj7fjrUBGaFZOmd99HvkydwR9n/YuDLDCx7CfGfAnXkspiG WmdG5AL/MlMv9p+iMFQCA0nxlQl/WNnjHMHnZFVeC5WdfJoOrwf7sxrQC667H4PYExVL fTUxMwSm9xPVinFr6u+mnEDLPDiNz1X5wKOVhbDFZD7+7f2tftq1pViGnm011O32DoAB 5RyxkzqVnvb8R/4lzuw12B1SkT21slbGncqDrtwOg6wOvbYgoX9NkgxM/WjO+RJ1iK3d FLvg== X-Gm-Message-State: AJIora8mJB9lmEb1fYo+P3v/prQBeNTYiuPf5dC/jutWuuPsVidDJOZh yg+Z49VUddlYIsm6bMGY7tF8wdg5Xgv8NWxDhXsQ60OK+NHcqg== X-Received: by 2002:a25:cc56:0:b0:66c:d0f6:2f0e with SMTP id l83-20020a25cc56000000b0066cd0f62f0emr10988742ybf.168.1656418254817; Tue, 28 Jun 2022 05:10:54 -0700 (PDT) MIME-Version: 1.0 References: <20220628113714.7792-1-yee.lee@mediatek.com> <20220628113714.7792-2-yee.lee@mediatek.com> In-Reply-To: <20220628113714.7792-2-yee.lee@mediatek.com> From: Marco Elver Date: Tue, 28 Jun 2022 14:10:18 +0200 Message-ID: Subject: Re: [PATCH v2 1/1] mm: kfence: apply kmemleak_ignore_phys on early allocated pool To: yee.lee@mediatek.com Cc: linux-kernel@vger.kernel.org, catalin.marinas@arm.com, Alexander Potapenko , Dmitry Vyukov , Andrew Morton , Matthias Brugger , "open list:KFENCE" , "open list:MEMORY MANAGEMENT" , "moderated list:ARM/Mediatek SoC support" , "moderated list:ARM/Mediatek SoC support" Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL 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 On Tue, 28 Jun 2022 at 13:37, yee.lee via kasan-dev wrote: > > From: Yee Lee > > This patch solves two issues. > > (1) The pool allocated by memblock needs to unregister from > kmemleak scanning. Apply kmemleak_ignore_phys to replace the > original kmemleak_free as its address now is stored in the phys tree. > > (2) The pool late allocated by page-alloc doesn't need to unregister. > Move out the freeing operation from its call path. > > Suggested-by: Catalin Marinas > Suggested-by: Marco Elver > Signed-off-by: Yee Lee Reviewed-by: Marco Elver Does this want a Fixes tag? > --- > mm/kfence/core.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/mm/kfence/core.c b/mm/kfence/core.c > index 4e7cd4c8e687..32a4a75e820c 100644 > --- a/mm/kfence/core.c > +++ b/mm/kfence/core.c > @@ -600,14 +600,6 @@ static unsigned long kfence_init_pool(void) > addr += 2 * PAGE_SIZE; > } > > - /* > - * The pool is live and will never be deallocated from this point on. > - * Remove the pool object from the kmemleak object tree, as it would > - * otherwise overlap with allocations returned by kfence_alloc(), which > - * are registered with kmemleak through the slab post-alloc hook. > - */ > - kmemleak_free(__kfence_pool); > - > return 0; > } > > @@ -620,8 +612,16 @@ static bool __init kfence_init_pool_early(void) > > addr = kfence_init_pool(); > > - if (!addr) > + if (!addr) { > + /* > + * The pool is live and will never be deallocated from this point on. > + * Ignore the pool object from the kmemleak phys object tree, as it would > + * otherwise overlap with allocations returned by kfence_alloc(), which > + * are registered with kmemleak through the slab post-alloc hook. > + */ > + kmemleak_ignore_phys(__pa(__kfence_pool)); > return true; > + } > > /* > * Only release unprotected pages, and do not try to go back and change > -- > 2.18.0