From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id CEB7CE77188 for ; Fri, 3 Jan 2025 00:01:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2761C6B007B; Thu, 2 Jan 2025 19:01:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 2264D6B0082; Thu, 2 Jan 2025 19:01:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0A0E86B0085; Thu, 2 Jan 2025 19:01:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id DE9B46B007B for ; Thu, 2 Jan 2025 19:01:51 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 4B3271C6EEA for ; Fri, 3 Jan 2025 00:01:35 +0000 (UTC) X-FDA: 82964184534.25.9A3942B Received: from mail-yb1-f170.google.com (mail-yb1-f170.google.com [209.85.219.170]) by imf20.hostedemail.com (Postfix) with ESMTP id E74521C0005 for ; Fri, 3 Jan 2025 00:00:40 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GX4eiJfg; spf=pass (imf20.hostedemail.com: domain of guoweikang.kernel@gmail.com designates 209.85.219.170 as permitted sender) smtp.mailfrom=guoweikang.kernel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1735862445; a=rsa-sha256; cv=none; b=pYSjChsI1wnq0tTUaVGlpZ9tjPYmiDcZ+xkYqViuPom/UcPXyOHB0TD2rwAA6KzI0evEMf SEMxm6UhZysJhyE0zbBEUxvw2oOOuZGZfriboPb8PlOW1ZOpGL7XM484qNIWxF7HR+fyWB fLkBEvKBEU1tIPz5XiqQq1kWEKqlohQ= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=GX4eiJfg; spf=pass (imf20.hostedemail.com: domain of guoweikang.kernel@gmail.com designates 209.85.219.170 as permitted sender) smtp.mailfrom=guoweikang.kernel@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1735862445; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=zzXYas8dxW7xxwA9ICBn7SmUgkJYpZRR892J9UDBph0=; b=yxfLjZUPhQu4ViCVqWM/5up9E5yabitkGkwOojI9Pl9so9Zaqik4z2ahWYOAhRGnyLQOYB B3zc9pG6TC4bLCGUa/Exui9nyqnOj5Onki7gwF0vAJYS1r+O98DICONlEk3crk/ADeo6L9 mrTlc8go0wQMQPre7rJLv4e6V6YDYs4= Received: by mail-yb1-f170.google.com with SMTP id 3f1490d57ef6-e4a6b978283so15928499276.0 for ; Thu, 02 Jan 2025 16:01:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1735862492; x=1736467292; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=zzXYas8dxW7xxwA9ICBn7SmUgkJYpZRR892J9UDBph0=; b=GX4eiJfggqECvZPoZZIybNh68TWc2TMxcnfOvlKn0DxSnbRVLEiS+v9X4kqtPYIQHS y8cT9ocihQ+NLmjXKpoKRPrX8xWYBxE8UaU1ua+iV0GMMuAYnA+Kg894pkenO+TzVnEm OJlJ/0veaa6iARH4klxv+17emi4LN5Qtgtj52sm+aGJyiCU268rxtnimuyFHYKPHI9Ki et2dAdAQF9j2CcW879axZkqnWev8asAcprA16U7NmpjG8pwk98OWhgUULLePWSReuXXb j0AXN996B3FnpHUWRjtV51huY1UI+gLZjz8xmbOv9Vp/1e54SgdEO2WsbiAWj9enwFny YglQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735862492; x=1736467292; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zzXYas8dxW7xxwA9ICBn7SmUgkJYpZRR892J9UDBph0=; b=cPFaIIA7GOVMqsjncNQvC7z1bzJM4MVLDAxrriGyjrVP9eM803pl8JsRXvK+CIZfay 6AS5YWccGdhNIiHccoEoggcpMXN3SAQFX1bO0X3PMKX7OGcIIGYr2srz1DFJZr/pJoAU 9AUrWEsOJQ4wFHftmExZy6D0DAXpO6/U1Hn7q6gor6rgPOJB9Q9sFS+ZGRd0IcPvgf/q hJTjaaFiiDyWtGJSwVqyAa0CbClVcfxV5HM8wfXwgZ/KbLXGh5dIkKkGhksyndcgqbOb QUPVy8RWTZJ/Q07EG9nsVemRFO5d2DlRtYTmh8G02CVM/mRxzpq2afSlHTLxZX2ytT4W MJCQ== X-Forwarded-Encrypted: i=1; AJvYcCVtBAxiMLJVo92+mD3dkGHi3iltVvEg7YSeBwF8xHB4gdpTquBZVezWaEtmNCNL4s599pWr1jg7og==@kvack.org X-Gm-Message-State: AOJu0YxVxxwQXurGXcGMMGLY0I7PC7yk8cqXrfkrizb+2Z+ZKnX1PxJS uq0J1mHufJxs36eTrHP34rxdRmSNMe30apCtqp7cUDqMpiFvOsF2/WvNLr9/wKg49fQDhRtvqQB tuZGqzI72h/L+MbCuo5UZU8Tb4h8= X-Gm-Gg: ASbGncsDLpEs90aG6ix3LYkTLYy3LLKcNoN6bs9rMpzyNs1lXHtNhTM+XTsqvGlDVdF 5Xe1nAezVlLtHXOIv85N8IO/FsHEc6+cLOkiCt/E= X-Google-Smtp-Source: AGHT+IGE7IOdrIsgCRiQJK/h4gjyximI1g8inKuieT2yuFzTSZJxf/2eHMlacE3cYihUxBB7GwNe6qKQUx8N9hq4vhY= X-Received: by 2002:a05:690c:6408:b0:6dd:f81a:80fb with SMTP id 00721157ae682-6f3f7e02a3fmr342478727b3.1.1735862492177; Thu, 02 Jan 2025 16:01:32 -0800 (PST) MIME-Version: 1.0 References: <20250102065704.647693-1-guoweikang.kernel@gmail.com> In-Reply-To: From: Weikang Guo Date: Fri, 3 Jan 2025 08:01:24 +0800 Message-ID: Subject: Re: [PATCH] mm/memmap: Prevent double scanning of memmap by kmemleak To: Catalin Marinas Cc: Mike Rapoport , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: E74521C0005 X-Stat-Signature: 11dm54y6s7inykxwdjjesxhciyytgmmy X-Rspam-User: X-Rspamd-Server: rspam09 X-HE-Tag: 1735862440-461743 X-HE-Meta: U2FsdGVkX1+Yi1Q+LeMd1kA/y1PcmZ8NTJEi/SpTp3lE9r2HuTKzDFWbF97okWdFaVPXj3TY1Fn21R4NeFd1oEDIjieUuodifjuEsIwWP94hYJhfj3+7JeLxvCSwy0spOXaHcVkC4RREJITX6umHB7RxNyUxYVsa0g6BBzaiHMDvs1xchMgDQ8ZC5SuRLHyatn74uwwCii97R5oKyAqI2ckLGeixyVhtwZL8RdBYxm/CFl5/ihj61uYmX8zjXcTFyhZZrAacm0edlkVRw4Ygi/McnP5Lr3z7dMkDkvgpJYsTZCEUkCVDiXC+7Cq3CdkHE4xbn7NrNw+ibFy5p/uT2YMDGqujHbjTykvDVBqyTpKE8pFSQuFRhz1wS+lqlPl+0IQNAu+DlRqMFN8KTMsw1VTf7fDcO82bC7xGLRsv+qHrFhYEylQHsVSn+PmI7mWB8J1FACIiZjC/ZTdKmsivhFZxDM5IFoa6wJCxKclw4Kd+ytfwJlmewKOWXw+fMYJyVvrwgVdg6zcZZa909AjYhB0vWiY7jmecAq1JKpvKzpiGraP98rnxQPR9GG3dazvcG81HDdiEgpO/5zZBm7MFiy+LiVAsWw5HQSmMbc2DONTvNwCZIQCLnkIHTM2RWGcmOhgAzcEuCU5MthcwiiyVneC05k/N/9d4+E1pDDYiSA9C3UUYsxhulbbHs9VrW5B5K/KgPaRZ+SszeBO4MYMhoPNGEmxceRAX2daIauthuEfx4Fy+bJnUlGLPNBRZvq3cnWU9StS489/jy3mrdoeVgDM5YfhwbSmQSYFm9Oq13B8D2BGcRxaA0vwmwjC9oWSJ5bMUGYmGurcEji5p6tXDOUj5/V5NldFr7ehkKHeRTuF+b1yEZigP4D55csirQWYq/GjAW/jMZ+3vuRmFSaNqatd55pX2vbcgwIGZFoZ1QJgaVnGc2xeHQYrzAyopsoFD5VBnrXA4L9XVOxN5uln ZS4kcIiD xWDqNL2qkLL01cNlhiObJBfPpxgWRri5FrasYh/vvY7kqaEGn6Jyq8nJI+RrRW6uGEPkj4U0/vkegRhztDZ8RzATRnkhiGeb5SpaDnniERv1YU/DXlW+6HbhXLdFA/99TAY3fWf3j6Lhgwwb/YSazdwDnNA7aBVV0InhqVHaQduPyxW9Yb7Vv+eqYDkiidlxkazmwCG6Du5e/OL1DzFaiCdaZAhIg6SlEW7AzjuBwRl3nBgpc6K+sBVH82y4pErXedYUM1hRQaA5FPKuZoA3VqAKVAe9kPbSP8K1YuePw6Ta2J85Wp6Aio/lUmPhmAG5QgLc/CPAuh+Z8xWjofklESmJtnZXDHitbVb6vApEpFT+M7u3pBXxipv46cwdGf+7Q3aR1H3nZNVhZS7PJyVA4e0/OmzEMFgyvsfKO X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Hi,Catalin Catalin Marinas wrote on Friday, 3 January 2025 01:15: > > On Thu, Jan 02, 2025 at 02:57:03PM +0800, Guo Weikang wrote: > > diff --git a/include/linux/memblock.h b/include/linux/memblock.h > > index 673d5cae7c81..b0483c534ef7 100644 > > --- a/include/linux/memblock.h > > +++ b/include/linux/memblock.h > > @@ -375,7 +375,13 @@ static inline int memblock_get_region_node(const struct memblock_region *r) > > } > > #endif /* CONFIG_NUMA */ > > > > -/* Flags for memblock allocation APIs */ > > +/* > > + * Flags for memblock allocation APIs > > + * MEMBLOCK_ALLOC_ANYWHERE and MEMBLOCK_ALLOC_ACCESSIBLE > > + * indicates wheather the allocation is limited by memblock.current_limit. > > + * MEMBLOCK_ALLOC_NOLEAKTRACE not only indicates that it does not need to > > + * be scanned by kmemleak, but also implies MEMBLOCK_ALLOC_ACCESSIBLE > > + */ > > I'd keep the comment short here, something like: > > /* > * MEMBLOCK_ALLOC_NOLEAKTRACE avoids kmemleak tracing. It implies > * MEMBLOCK_ALLOC_ACCESSIBLE. > */ > Thanks, the previous version would be a bit redundant. > > -/* > > - * Allocate a block of memory to be used to back the virtual memory map > > - * or to back the page tables that are used to create the mapping. > > - * Uses the main allocators if they are available, else bootmem. > > - */ > > - > > -static void * __ref __earlyonly_bootmem_alloc(int node, > > - unsigned long size, > > - unsigned long align, > > - unsigned long goal) > > -{ > > - return memblock_alloc_try_nid_raw(size, align, goal, > > - MEMBLOCK_ALLOC_ACCESSIBLE, node); > > -} > > - > > void * __meminit vmemmap_alloc_block(unsigned long size, int node) > > { > > /* If the main allocator is up use that, fallback to bootmem. */ > > @@ -66,8 +51,7 @@ void * __meminit vmemmap_alloc_block(unsigned long size, int node) > > } > > return NULL; > > } else > > - return __earlyonly_bootmem_alloc(node, size, size, > > - __pa(MAX_DMA_ADDRESS)); > > + return memmap_alloc(size, size, __pa(MAX_DMA_ADDRESS), node, false); > > } > > As the kernel test robot reported, the __ref annotation for > __earlyonly_bootmem_alloc() is still needed, otherwise you get a warning > that a __meminit function (vmemmap_alloc_block()) is calling an __init > one (memmap_alloc()). So I think it's better if you keep this function. > Maybe get it to call memmap_alloc() instead of > memblock_alloc_try_nid_raw(). > I have also noticed and studied the previous implementation, it is clear to me that _ref annotation is used to prevent init section mismatch WARNING. I will recover __earlyonly_bootmem_alloc(). > -- > Catalin Thanks a lot -- Guo