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 C1EE3C2BA18 for ; Fri, 21 Jun 2024 01:15:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4CB2F8D0114; Thu, 20 Jun 2024 21:15:17 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 47A688D0111; Thu, 20 Jun 2024 21:15:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 343C58D0114; Thu, 20 Jun 2024 21:15:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 11EC18D0111 for ; Thu, 20 Jun 2024 21:15:17 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id AEA82806F6 for ; Fri, 21 Jun 2024 01:15:16 +0000 (UTC) X-FDA: 82253127432.14.29F7FA7 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) by imf21.hostedemail.com (Postfix) with ESMTP id B7E631C0015 for ; Fri, 21 Jun 2024 01:15:14 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Tz11M6pf; spf=pass (imf21.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=richard.weiyang@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=1718932505; h=from:from:sender:reply-to: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=E0HioJEgb52y6kNsnjrGnWJVH+QgjZY5aiRZggthoQA=; b=p+orJL9II/1NDOs59Yb+FX5j67+eJRWag6RkWZ6S14Ni2OayyoxKval+pKM8IDopqJSzK/ WL/kKw078euTTKzEgGRMpX8s5h2prEHcWG4X+sW8lfhpUs7ROs1qUOjmTfwKITy2aZd1We v/8vm6DFrui6VgDnkqIX5Hf9QUNARs4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718932505; a=rsa-sha256; cv=none; b=5C41/3bMjlhNGAEEZqPsDOiVjyVqIHM3vPY4DC5GzSyDH8eOiwvNj2TfobbP6YKUmGXwdh 2KkIOn28ysXX8/0f0bHb/wqgrdfDK3CoLBAjAORN3c1M7fMSzSsfIgdpwuBZUYxpOlP9t0 opKhro+ZxUcJzn4fzQItamoMvlni/uM= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Tz11M6pf; spf=pass (imf21.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.49 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-a6f21ff4e6dso205857566b.3 for ; Thu, 20 Jun 2024 18:15:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1718932513; x=1719537313; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=E0HioJEgb52y6kNsnjrGnWJVH+QgjZY5aiRZggthoQA=; b=Tz11M6pf3h6L6BjZfALVrYkvHS8YbdmGnHZ1cF0uygIulAq8tBEGJ+dt9pKIceQcDi fpQOhzWUC1orRC4aGpBFDTtfSMBQk5MsDKP+leoPYXSEPTbIELYbKI5OXgFGWPowRxVi 7m3gZyviHISHfOlmYYJl76q/vOZQLfgs/VP+8A693yvJU72GJPOXQFArWXxWnupJfr/F kgQb7yAUmbItR4gFFUVwdTzz8kAHBC3KkMT3ncg25QCiJX+6zBrckz5SHlnrltbkPeyL mtQTla6t70nQEz1DR7BXH5y5gVOUSt7kndKwht9xLK7zHsfPxMpFDv+HhU+GgSPEgy/a b0kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718932513; x=1719537313; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:cc:to:from:date:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=E0HioJEgb52y6kNsnjrGnWJVH+QgjZY5aiRZggthoQA=; b=SmUYvwRIBBdwGganGcfgf2nVqFDzA6Y0uLNWQywUNDIxVzS4S934Xa1mswGgWCW5e9 HPgM3BFhL3+oGOqdNmtZorF8EVl9gTz4eviu7nY/qOH9WKZoLJF0n4xpEJLy0ziaGvNR Dghv8EME98aMTTaVFhFJkCZLWhamCYC34N5fjxrUXX+Q0os8s+LO6HRQML55xfY4XVMu 9uTpsuX9bzb/tJn7nm2VBeymDBYZgXTdu0j8QpZwJN7Yg4CBFwCtqejVVTpbJboB3DkP ucUiTb8phuaLNROiLl9p5aIeLrKzNH/bmiZe0JACr9ILnR+tI6RhQMnRtlzmf7BkJyub R8tw== X-Forwarded-Encrypted: i=1; AJvYcCWHRNtEfhymcIL5Umb7OyYlcYvuQOP85hj3adejxFGyiOs9Bl6OfFjYEhmzy12ph+BTYXU96bABhywqgbDBNBZWdMY= X-Gm-Message-State: AOJu0Yx2sOxNoJRza1J4lPjN5uJlFvkyIMb+MWNdtXmiWWUWesL5BuXW Et48cC7CFrlfp6e0nJCGrR+5PHGyw/QWl4c8BeK/TT6D6+c+vuPw X-Google-Smtp-Source: AGHT+IGocGm8/x+41NHJd0UZXu+J5R8ZBdYrEpq8injFk7LbQd5A1xcy5xfyQ2WU6S3RK+Pt5tKWOQ== X-Received: by 2002:a17:907:6d08:b0:a6f:5b98:bfa5 with SMTP id a640c23a62f3a-a6fab7724f2mr433353366b.52.1718932512919; Thu, 20 Jun 2024 18:15:12 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a6fcf48b47fsm26243366b.59.2024.06.20.18.15.12 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Thu, 20 Jun 2024 18:15:12 -0700 (PDT) Date: Fri, 21 Jun 2024 01:15:11 +0000 From: Wei Yang To: James Gowans Cc: Mike Rapoport , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Alex Graf Subject: Re: [PATCH v2] memblock: Move late alloc warning down to phys alloc Message-ID: <20240621011511.cveqjhnpauhze4jl@master> Reply-To: Wei Yang References: <20240619095555.85980-1-jgowans@amazon.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240619095555.85980-1-jgowans@amazon.com> User-Agent: NeoMutt/20170113 (1.7.2) X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: B7E631C0015 X-Stat-Signature: 8bdfgjddw5nsqq7k61poxnwcjhwqu5bi X-HE-Tag: 1718932514-142544 X-HE-Meta: U2FsdGVkX1+H49Myx4hyHxj6XDpeNU9+LV57iT9ZMhgwxxyOVNPoVMiIx1BBqLwwMX+N0dHPiTFI7DvMg+Abdt2vZIKJDiqiklN9i14c9Z0ANJwQ8+m3abLVPX6YccP9utSlLxVPjvOLjfz3lKuVam3cWP8w2JL7kA5Rl/5tEX5aAwKq1azLUQAF5B/w7/J03hFldo/C7KWefOFmxsdkf7IV0pfVn2Ys4/iJhyZsIGaFVxEFvQsglY5H+emTBnT+H56ksnVCFAs5kgT3q8CaTHe6PGvNs659yhY502h2TZK9uwVUsZ1qRzv+fxkMdzBMJgkmVt0a1JCnNCkHXfDqKRD6zHXXUYGml+pwJ6rckOE1nIXGE5eJSe2E+QE92uscshpmSDwNvSUKTagkM7BGyNtc+DAsj1WTR62jm+5TaCmNn2065/0yxTnY5KaaI83yHCbYNceLu9AIAqUUzX3fBFiUCHGE7tKuw12PecQ/VYhmSUysaf27EhQyNhQOFcM08mTFqmp/ZpaCJcZrgwIOqZRWvt0pdVz421a7CvdEK1JUawKNKJU+A7Q6x/1NyikRZiqWGkUbc5FkJb8m65GjnLGSti1chgsECruZmWTS+1JL1QnuX2ilBZ9BHPyiHKqld0eZCfrX/8mfxRyjKbklhI8pPv7wFbIQzZdzbfwoq9RAeyCwUyxD+tgKtKyybBLXb9RmhP5Fiy4dLgQ6rGpoOIQUe2vTAUvKu8b4pK5ZK7JZF4IVmqP31nqHkE2MS9fUexOkSX/cidFEg8BNpGLj85YFCZtH6JUSLXvW3rs/DTTTgYWDZE/Puwty25k3cEWuSowF5wbBz3MmwG2GW6EwaE+W9iry1odmfv1OTVKTiXX0oYgIETZxn4+gd1AbNOIhRXAwsBrZlinb7RkvPMcFgutpn28IEd+ST/R8YO/opCQpJDvSsk7CqGloZrR5w9H9bsA8wPaID4uwxsZZ5Dr L4SasTqL uwtDRHTD4afY5tTbllO4INlAKTHQ3Zx27KA9ZTmiCg68KF2w4VMrOq6fblye8uIXqAcNoLLnTeYYZQYvrhXPduiW463C7NrSh1BuDsnQNKiMURZSFW3D6x/zF7E9a4dx5ixXJtOLm0PUNJC3gfBaxqVBedktLbccii00tURyBKg1MXhQGkB/85t1aLKxcXbaypbu1CbMEt4rXySe1OgqdZ73IDmyC3cS7OxaqHSWj+EGyQLJlvAktmT0+K3tHprPHWwIfwmiySVCA9l1fRWjGjsfo7xRejB0JNS8439ijngF7aSo0YuD7Nw14CLe/CMsyndaBRCV905SEmIJ/JsC+NQO4m0lhwv4kQ9dnHWLVwS1S3ECjhhGOAAt4RZaVMrppBq/zai1YUlV+amGyRuNhjkgK2ZL9MTK/r+e0OZPT33YJJJemhN+V6aRMM5n6rLGTFZcyvSL7ZbRdK+JyniEc5M51cBqb5uoTMvHoPKZ6EXCmwEfFdx9wVTygx23LImuSaZbE8QOtIOSqnGo1PBPmRZWFKy04z0Cc3RFk+S0Kf260IVJyBMzv0HOdcvFgS/Tjz1fjDiQkHzaMlFpYRch5Bd7601iMTbMb6aWFkOZVjE3T6/FE9zQxQvhYTBUPLBHjcNiHiyKM90MQCTWQHk+uW29Ope0OdjQy9WspNgiJaZ1MoDUOHAmOCbWdAg== 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: On Wed, Jun 19, 2024 at 11:55:55AM +0200, James Gowans wrote: >If a driver/subsystem tries to do an allocation after the memblock >allocations have been freed and the memory handed to the buddy >allocator, it will not actually be legal to use that allocation: the >buddy allocator owns the memory. Currently this mis-use is handled by >the memblock function which does allocations and returns virtual >addresses by printing a warning and doing a kmalloc instead. However >the physical allocation function does not to do this check - callers of >the physical alloc function are unprotected against mis-use. > >Improve the error catching here by moving the check into the physical >allocation function which is used by the virtual addr allocation >function. > >Signed-off-by: James Gowans >Cc: Mike Rapoport >Cc: Andrew Morton >Cc: Alex Graf Reviewed-by: Wei Yang >--- > >Notes: > Changes since v1: https://lore.kernel.org/all/20240614133016.134150-1-jgowans@amazon.com/ > - Move this late usage check before alignment check > - Replace memblocks with memblock > > mm/memblock.c | 18 +++++++++++------- > 1 file changed, 11 insertions(+), 7 deletions(-) > >diff --git a/mm/memblock.c b/mm/memblock.c >index d09136e040d3..dbb3d700247e 100644 >--- a/mm/memblock.c >+++ b/mm/memblock.c >@@ -1451,6 +1451,17 @@ phys_addr_t __init memblock_alloc_range_nid(phys_addr_t size, > if (WARN_ONCE(nid == MAX_NUMNODES, "Usage of MAX_NUMNODES is deprecated. Use NUMA_NO_NODE instead\n")) > nid = NUMA_NO_NODE; > >+ /* >+ * Detect any accidental use of these APIs after slab is ready, as at >+ * this moment memblock may be deinitialized already and its >+ * internal data may be destroyed (after execution of memblock_free_all) >+ */ >+ if (WARN_ON_ONCE(slab_is_available())) { >+ void *vaddr = kzalloc_node(size, GFP_NOWAIT, nid); >+ >+ return vaddr ? virt_to_phys(vaddr) : 0; >+ } >+ > if (!align) { > /* Can't use WARNs this early in boot on powerpc */ > dump_stack(); >@@ -1576,13 +1587,6 @@ static void * __init memblock_alloc_internal( > { > phys_addr_t alloc; > >- /* >- * Detect any accidental use of these APIs after slab is ready, as at >- * this moment memblock may be deinitialized already and its >- * internal data may be destroyed (after execution of memblock_free_all) >- */ >- if (WARN_ON_ONCE(slab_is_available())) >- return kzalloc_node(size, GFP_NOWAIT, nid); > > if (max_addr > memblock.current_limit) > max_addr = memblock.current_limit; >-- >2.34.1 > -- Wei Yang Help you, Help me