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 0F0C2C3ABC3 for ; Fri, 9 May 2025 07:47:34 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D6D66B00AC; Fri, 9 May 2025 03:47:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BBD2A6B00A6; Fri, 9 May 2025 03:47:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 903C66B00A6; Fri, 9 May 2025 03:47:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B099E6B00A6 for ; Fri, 9 May 2025 03:47:18 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 1D241CBAA4 for ; Fri, 9 May 2025 07:47:20 +0000 (UTC) X-FDA: 83422589040.17.0535E07 Received: from mail-pg1-f201.google.com (mail-pg1-f201.google.com [209.85.215.201]) by imf16.hostedemail.com (Postfix) with ESMTP id 50DA0180004 for ; Fri, 9 May 2025 07:47:18 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=v6oHBmjy; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf16.hostedemail.com: domain of 3BbMdaAoKCCoINGTMeaGTRMUUMRK.IUSROTad-SSQbGIQ.UXM@flex--changyuanl.bounces.google.com designates 209.85.215.201 as permitted sender) smtp.mailfrom=3BbMdaAoKCCoINGTMeaGTRMUUMRK.IUSROTad-SSQbGIQ.UXM@flex--changyuanl.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746776838; a=rsa-sha256; cv=none; b=lI99aMnXluellhK39fhUig849zkk2W+OWAUmXpALlszyY9CJlgkH75A5ymtKzm4Fqz7+SN 1OMwTNe0JZWLaE4IJIHP7bpyuXwzw6wkQzeEEEqtn9NmdMreWuiwtcPV3zxGDwLNZXSZm7 sLvU5P+0YGGQ3qvz/6Funs6aKzgv9R0= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=v6oHBmjy; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf16.hostedemail.com: domain of 3BbMdaAoKCCoINGTMeaGTRMUUMRK.IUSROTad-SSQbGIQ.UXM@flex--changyuanl.bounces.google.com designates 209.85.215.201 as permitted sender) smtp.mailfrom=3BbMdaAoKCCoINGTMeaGTRMUUMRK.IUSROTad-SSQbGIQ.UXM@flex--changyuanl.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746776838; 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=+m4Z3dP+tM6YZb4FwYg8AZfxdm/iv45+PxfK9MWhRlE=; b=MNVoiVQB/4bct3I4mmy7MMqbIvOOO+q7fCvKrdXlaEn/6pz6QIdVC32PtFI33MteGVTWRa jdlMl9BhHE/fCrpMfYM6ROeaSLQob2//xmPpp31oC4k5XUJmzVTP1K4xaPrhCvg4WZ7AfK /VQfZju+k+QxCpwcRCCqTiTBckCORCc= Received: by mail-pg1-f201.google.com with SMTP id 41be03b00d2f7-af2f03fcc95so2054504a12.1 for ; Fri, 09 May 2025 00:47:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1746776837; x=1747381637; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=+m4Z3dP+tM6YZb4FwYg8AZfxdm/iv45+PxfK9MWhRlE=; b=v6oHBmjylkW5hE4Ef3GFrN82sW5TWThFdHztBvkuAocaqtOkakV0vSU89k8yh13fD4 SsjYLQ9zu7c4PIL9JotbYFSMBxjAttLWhOZVO7Ee0GrEV27TFsaxIRbOStCu9b4pYCXB m3b+SXaWx+FB9D3xYB/33HDHlh7aC+TlGbtSnwx+pDWY/a8vfiFPjl9S/W+uasMj4jbJ lDoXp3NAl5d29cuWsF8PZ0SU7rcUcWGB9w0dkOLR6+ZFKu+tuvuxtCJOyylu4O2Ja/Pc baygruSnWWnoiUsG1cZYZI5lc3fN4MFwC3V+8uyDHIdEB3NsP2u5y1Tok+f3Cs+Ww6cz cubQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1746776837; x=1747381637; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+m4Z3dP+tM6YZb4FwYg8AZfxdm/iv45+PxfK9MWhRlE=; b=TtoNpFr1Fuv2Xf7HmPwUFtrTLI4i06V8NecCp2tCZufmkOqSzXgoAWxqLh+VbHpzd6 SgkqceXbbpj4lIrYpSR4vFVlUO7UArEBr9fCr1fKarHx43hmiSPoe+xLej5FkZ3h7bqm EJgJwiXCbSOnkj/iAi4pvdShS11egaQNiId/yno8j/AUxswLA2V61+4e7xrJGq/c8MB9 cqxlf2Lv88f66x6LpbI3j7kv9gqmimH6aC+evHuxnmcMldWWhJYzk5+mF/ST+tlExnbx zvOmWUeXjXsmKYEL0ECMvhovhMuSeQjfjIT+kUy8PKPQKh/e/gqfzddJBVLNdQTBW819 jluA== X-Forwarded-Encrypted: i=1; AJvYcCUK7iKIuvFqR1LFPAn14/DkiAMQdq2oR9gsE6NFQZaeMJVmE5nHlWmkuQ8gT6e5sb1lEwwZZYhgHA==@kvack.org X-Gm-Message-State: AOJu0Yw6gHrn4JBuZF2VbfuKLrXptPNt4V11Yp48pGbRGR0cTdOJTjs1 01sZTXHUUFUnv+h1ycPLOS76kAXPf4PABOR0v2BpQR81GBrS19CEqeHKKaXK6YSvu1WGoU1F4Vq rgkaJFUirWoewcwttfA== X-Google-Smtp-Source: AGHT+IHfR2VcOxe89TQQkgMURCMNF7WAQ9A5nVl3ln2Y/iICrUYXCipTIhMpc5lhLO0v/RkcE3tO5H+jCjQrIWm3 X-Received: from pljs4.prod.google.com ([2002:a17:903:3ba4:b0:21f:40e5:a651]) (user=changyuanl job=prod-delivery.src-stubby-dispatcher) by 2002:a17:903:18c:b0:21b:b3c9:38ff with SMTP id d9443c01a7336-22fc91a05e1mr34656295ad.37.1746776837245; Fri, 09 May 2025 00:47:17 -0700 (PDT) Date: Fri, 9 May 2025 00:46:30 -0700 In-Reply-To: <20250509074635.3187114-1-changyuanl@google.com> Mime-Version: 1.0 References: <20250509074635.3187114-1-changyuanl@google.com> X-Mailer: git-send-email 2.49.0.1015.ga840276032-goog Message-ID: <20250509074635.3187114-13-changyuanl@google.com> Subject: [PATCH v8 12/17] x86/e820: temporarily enable KHO scratch for memory below 1M From: Changyuan Lyu To: akpm@linux-foundation.org, linux-kernel@vger.kernel.org Cc: anthony.yznaga@oracle.com, arnd@arndb.de, ashish.kalra@amd.com, benh@kernel.crashing.org, bp@alien8.de, catalin.marinas@arm.com, corbet@lwn.net, dave.hansen@linux.intel.com, devicetree@vger.kernel.org, dwmw2@infradead.org, ebiederm@xmission.com, graf@amazon.com, hpa@zytor.com, jgowans@amazon.com, kexec@lists.infradead.org, krzk@kernel.org, linux-arm-kernel@lists.infradead.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, luto@kernel.org, mark.rutland@arm.com, mingo@redhat.com, pasha.tatashin@soleen.com, pbonzini@redhat.com, peterz@infradead.org, ptyadav@amazon.de, robh@kernel.org, rostedt@goodmis.org, rppt@kernel.org, saravanak@google.com, skinsburskii@linux.microsoft.com, tglx@linutronix.de, thomas.lendacky@amd.com, will@kernel.org, x86@kernel.org, Changyuan Lyu Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 50DA0180004 X-Rspam-User: X-Rspamd-Server: rspam07 X-Stat-Signature: 91gpacafk7y4bdzcufb3nmtyk1x4dpdi X-HE-Tag: 1746776838-109510 X-HE-Meta: U2FsdGVkX18goQJsdqheMOH2OgfQQ8++pwvMkN/N7b3Kh+9x+AaGV/Dy/PueemCbMFLZahJ7b+k7OIRuQkyBFjrydXFbuYBrEifjYXoNmI0S2ZlM+al7RbiJ2xIfuU46kdMPaeYnPtDbPw/sUsD3TddBAvSRoy9fJZi5jBoe1wdU0v6QFGluwBZ3bJw6BBm1k9qIvQOE2moDXYeLkIRW2mry9MxnCZNE3t2aYXVT3vcrrtd2eQ0+MruaZ7mlsTP5CMFQrktp6JUCwKtpcIy4T/K+dICjYrrxgRnur1eT2usIs6jGzhFUTHSMPEp4qqqs+pxzuEJn1klq34FXO/y5BOxk9rWV021PHRqkdT4PHJUMxydMjSU47WV736nB17DRJubNJGJNGhQICEr5pXaKbcf43pemMHoi7w3nM7naM2cJGoFaFq5QNYN0Ufb9tVYsKe1I84pqaCtfLznLFycZM7QjzwDs9Co9hcxm1PtjRfOz3iPZJzmY9ynNdFMRh3BhLeyDWofg7Eb7GT5kOo1OqQGMR7wdyI2fY73ooE/QOmOtCNO6uFWa52Yl61vPDCOI+pOIMZ/iBae49GeW5uOZiujomhv4Z/vTafn8IoW6CmZjrrzE7MLiS/YfmjHrjbQgYxiN4FhE2sutTJrkMQPSXbfDOp8BJeqc+2XOtkR64DZBrtJt0aVcBFdE60oe9qooy+p7TVBE/8TD4FT5rpQmy45ntf0lzPcaAX+wTwjO51xS5iynSEgUWvGpfMUD8BOnzz0AO7XOBjBgHkhSDhCCE7xvRnkxExYyVCVlaw00dISaKpWdP5ehY8+D58lk7CDR2R3/QC18rJ/Cmdis95bfMJlLXo/A1Y4EqVG+NuyvzEsahgkXki6ZXxyHxXrIGOYn7hceGtMC7ie60BvFveNVJ1nXLMAkUfWFZierVyq6/GzJ1ZDd3/fNzDpoyLu/7ReqNOoF/gBTiuL/dGhe+C4 lpmfnAQY UhWISridKl8lTMTw5hlDjX2LRsXmfvDdTU5SOrIl+cHWc9KzktqWqZaZQU6peGJJtLsjBuYkDSLPsz8/GroC9argX51GeNJF2TX0rtzoq0zyXNvMNd6w/hzpNMCtGzWzhhZDIAlxlqoMOcY7VUsTBdNOpU1139y+pbWUXOYJ8OQhhq1NrhAGrI9cTPI1TSv0bWW8/JjG17BRPKGOVezryhlMs6YNdXZcW3KOXQYOjQDswdx+OvqaK5Olk4zhefPV5bPH7AI+DUN+MPq4cDTDnVKy7IWXO53V4wzG/xoAYWmh4GjkZz26/IRh4gj4ihI3EJUvqzfhT8xuXgeSbUQX7hmZN3DhQJvDNQRpbNvWc2xzVtIzq2dpTN8Flq6cjJ8Wxc2I20NYwMWL1x8zuOZdAzOBIXrQ0QPuZco+TsypTgg63Lj2mO7/nqttlWttrMPbs0JjbTpGoHb04tjvKXdnwcBHc9C+ltcE5jeFs4wtY2AN9v6LwfeT39i1zhxE5sa1vhd3cguObKBJMSTSFzk+9nSsHD5VCAYikRU5tzN9ULODKqV3ZqMcA4H5y09/ecxmnlIfF5uOVaBY8yiEFKLw35Ms8VMzusIaj3GYDA/t0LM9YeuonwW3fuJ0KAIZy2tNMoEzFjFfANZWUCx8= 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: From: Alexander Graf KHO kernels are special and use only scratch memory for memblock allocations, but memory below 1M is ignored by kernel after early boot and cannot be naturally marked as scratch. To allow allocation of the real-mode trampoline and a few (if any) other very early allocations from below 1M forcibly mark the memory below 1M as scratch. After real mode trampoline is allocated, clear that scratch marking. Signed-off-by: Alexander Graf Co-developed-by: Mike Rapoport (Microsoft) Signed-off-by: Mike Rapoport (Microsoft) Co-developed-by: Changyuan Lyu Signed-off-by: Changyuan Lyu Acked-by: Dave Hansen --- arch/x86/kernel/e820.c | 18 ++++++++++++++++++ arch/x86/realmode/init.c | 2 ++ 2 files changed, 20 insertions(+) diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c index 9920122018a0b..c3acbd26408ba 100644 --- a/arch/x86/kernel/e820.c +++ b/arch/x86/kernel/e820.c @@ -1299,6 +1299,24 @@ void __init e820__memblock_setup(void) memblock_add(entry->addr, entry->size); } + /* + * At this point memblock is only allowed to allocate from memory + * below 1M (aka ISA_END_ADDRESS) up until direct map is completely set + * up in init_mem_mapping(). + * + * KHO kernels are special and use only scratch memory for memblock + * allocations, but memory below 1M is ignored by kernel after early + * boot and cannot be naturally marked as scratch. + * + * To allow allocation of the real-mode trampoline and a few (if any) + * other very early allocations from below 1M forcibly mark the memory + * below 1M as scratch. + * + * After real mode trampoline is allocated, we clear that scratch + * marking. + */ + memblock_mark_kho_scratch(0, SZ_1M); + /* * 32-bit systems are limited to 4BG of memory even with HIGHMEM and * to even less without it. diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c index f9bc444a3064d..9b9f4534086d2 100644 --- a/arch/x86/realmode/init.c +++ b/arch/x86/realmode/init.c @@ -65,6 +65,8 @@ void __init reserve_real_mode(void) * setup_arch(). */ memblock_reserve(0, SZ_1M); + + memblock_clear_kho_scratch(0, SZ_1M); } static void __init sme_sev_setup_real_mode(struct trampoline_header *th) -- 2.49.0.1015.ga840276032-goog