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 D4990C25B5C for ; Wed, 1 May 2024 15:32:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 46FED6B0087; Wed, 1 May 2024 11:32:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 420646B0088; Wed, 1 May 2024 11:32:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2E7956B0089; Wed, 1 May 2024 11:32:20 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 0B3D76B0087 for ; Wed, 1 May 2024 11:32:20 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id A34411A0C02 for ; Wed, 1 May 2024 15:32:19 +0000 (UTC) X-FDA: 82070218398.30.9DB3396 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf04.hostedemail.com (Postfix) with ESMTP id 5A8FB40023 for ; Wed, 1 May 2024 15:32:16 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=OXnzuEXF; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of rppt@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=rppt@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1714577538; 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=GUhar8p8x4SoS5ZT6orFCAFYwJgZhwIVns9k7kyNpAc=; b=CRoceLva9jOEqOxCAgBNqM8Wr2fwptrmhB6/wBShQ7GGcVOzafxjTOxBryxf4vFAxz01A2 /b7bAug/RmiWWn9XRCIFxgMsY4oxq/nfo96tNJ2+DmCSor4jef1FzP0ePzP1EQTrSNw24P jx/Dku30t4KOsVjYVjLdYrq5PlNaBOE= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1714577538; a=rsa-sha256; cv=none; b=dmTwONoMzf0X7zKXb2mmgGIYxKkDP6oVlILfAypDUU4JbmM6S+8/KlppRCG2pmAna/7o8C TAyfg6sJvuVfjTjpF8tNNRW79xwsGVhd86lTNzLlmtYT4mROk0GyrFdYGHC93ocpx6YTKN Wn8MqhGC8YYJsKhjLu99nT3yTDcykZ8= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b=OXnzuEXF; dmarc=pass (policy=none) header.from=kernel.org; spf=pass (imf04.hostedemail.com: domain of rppt@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=rppt@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id DD932CE130B; Wed, 1 May 2024 15:32:13 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 45B21C072AA; Wed, 1 May 2024 15:32:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1714577533; bh=8WVzesDRY59eAiPcjnXVtYZdjfYneGgUndVN5TPMtzU=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=OXnzuEXFOzVTCgd5UODHWCQzEQeUrDLX81JT65/GEltCEd/tyHH+BLaUsWjdag4di hsX4FvfdNTemCxIOYPGYVnar8IwFthSkq78k64ASXt1W4BaEW83jvwX7uPMusoACjZ j66Fnuw8uVy+mpqhmjsjezyatLL2rRq2GpADPntHrJEffjsa7c8328QtaelxsbUBHV 2BDotzuP4B4uSEaplwH/uB4AdWjTqDZbsLgMkR0ZjGJ6S91803rYH7gOGjIopFU4Hf vQAKQgn9iCejJaFuT+QjyBrJ5fyl5Y+JgcaveC2Ih9v84TKeo+134tMrmAC49RAzXj BYWWsYFZ7UZQA== Date: Wed, 1 May 2024 18:30:40 +0300 From: Mike Rapoport To: Steven Rostedt Cc: "Guilherme G. Piccoli" , "Luck, Tony" , Kees Cook , Joel Fernandes , "linux-kernel@vger.kernel.org" , "linux-trace-kernel@vger.kernel.org" , Masami Hiramatsu , Mark Rutland , Mathieu Desnoyers , Andrew Morton , "Liam R. Howlett" , Vlastimil Babka , Lorenzo Stoakes , "linux-mm@kvack.org" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Dave Hansen , "x86@kernel.org" , "H. Peter Anvin" , Peter Zijlstra , "linux-hardening@vger.kernel.org" , Guenter Roeck , Ross Zwisler , "wklin@google.com" , Vineeth Remanan Pillai , Suleiman Souhlal , Linus Torvalds , Catalin Marinas , Will Deacon Subject: Re: [POC][RFC][PATCH 0/2] pstore/mm/x86: Add wildcard memmap to map pstore consistently Message-ID: References: <20240409210254.660888920@goodmis.org> <20240409172358.34ea19f0@gandalf.local.home> <202404091519.B7B2221@keescook> <3391c693-cf54-526b-79a8-d565e7140947@igalia.com> <20240411154007.5bdf8d95@gandalf.local.home> <20240412132243.053ad096@gandalf.local.home> <20240501105455.42b78a0b@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240501105455.42b78a0b@gandalf.local.home> X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 5A8FB40023 X-Stat-Signature: tbjx3ytrdd79i64twkajn5p815gabhpo X-Rspam-User: X-HE-Tag: 1714577536-33449 X-HE-Meta: U2FsdGVkX19vHhTlU1/pemb0dG6LQgu9+4qE7JADnPfavEwLCi7gayuwJ9x5dX0eFLeiRGedKcHGz/iDnFxFmECnmvSf3uqhdWa0wiEbh4lWCDSv1quCfBxjS0DrE2+47MS7WYS5Qvf22eNiAf3Ts8Jh0mO6PLBSvgaDs2UUssc0zAGcihRuNKmE5HnJKHMLKyLfXRpD8ptyKt7lsf8q8B8MYPjDDvAjBAHu015Q2RFC16h6tv54GWangyvQokNGhtR0Nl570P9g817HlgXCJpBVkqWQIYlqA/7KW4KCKXrRQR468r0rgy/9apJiX6TysycMxZ/cwHIErXYjQ34y2PmyDEzVXh1RyXXyzHMfOcqkala/zpBaMnLpLVZ3ba2ue7zWhT72f9lHsCoz5V/Zs7ErY5pAGhLmXEe4HyUrYn/KHtxDRCEEMWc2WfQzprOvt6pHeHHo3IJYWQJu6frUbfdnAP1R0Yiz7N7OjzATJ5EJ2Yb5iYRR9f0y95Y0duPGEqa6kNBTzOn1LMHOuf6p5K3UHFX4Qz2v5C99UN6ncjo7qf5knv/dhk4ceHufWrVHIWER341N9UmiSMZtr8qY+vVLLqn3mgZbVbY3vcwziP4Qnz0aOyT8IrMJJ59bq+WeXNEsjRREdnmRJs/AD2SpEDXC3QZ4FoyRgzi/RAcjm9T6JLc/r44VW7pkNV+ln0CCK8S87UA5NyhiNYpVcjS16Uc+y9Bq4KR2z04luXI/zBnSU6cEgbNfoJJGWfJIoORE7byJjgGqmG8CMS4YY+J65H90CrrVSX9ilxguVYczkU2t2NbwL+5cwdUAjgr1Rt+6/qbjnMNas+oiBo8BL1LMUutACJFTwCq04aimSS67evxh/EWc4rcZn7SM2WQqokGWl/FAP9lrcnh02iLLng9kx4eYAI1k/+cMVoZ9v4YNCUj1yeVvtpODZfN31tA/9JxDPDb5qnNdWIUYSAplU0E 5GoiUTC3 LKNnY9sBetjgHNNlEXyn2KAbI2mWxfYdi6gf3O56XX8aV3ntpPowReG4NPJEA8PFbHeefvxx/2RSHNhkid9ofIv+wyv06bWD33VCwemCpjs8JjCRwT0xiQ0rU2zZssxKv5DoRgV9auLD2NIYO+EbMZqZC4R2w3MWELNUEAclWgv4N75nqdrD6qx6sWHPa36hLOwqxXFzyfKLrjSmw+iFHWJenWpVnIpqrcNHw0rAeVM6Vhxn+DM343/bEUPBhPyAqXnVPiCyuZln9n7sjpJwxfnG9MBenVyBePtw6 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, May 01, 2024 at 10:54:55AM -0400, Steven Rostedt wrote: > On Wed, 1 May 2024 17:45:49 +0300 > Mike Rapoport wrote: > > > > +static void __init memmap_copy(void) > > > +{ > > > + if (!early_mmap_size) > > > + return; > > > + > > > + mmap_list = kcalloc(early_mmap_size + 1, sizeof(mmap_list), GFP_KERNEL); > > > > We can keep early_mmap_size after boot and then we don't need to allocate > > an extra element in the mmap_list. No strong feeling here, though. > > > > > + if (!mmap_list) > > > + return; > > > + > > > + for (int i = 0; i < early_mmap_size; i++) > > > + mmap_list[i] = early_mmap_list[i]; > > > +} > > > > With something like this > > > > /* > > * Parse early_reserve_mem=nn:align:name > > */ > > static int __init early_reserve_mem(char *p) > > { > > phys_addr_t start, size, align; > > char *oldp; > > int err; > > > > if (!p) > > return -EINVAL; > > > > oldp = p; > > size = memparse(p, &p); > > if (p == oldp) > > return -EINVAL; > > > > if (*p != ':') > > return -EINVAL; > > > > align = memparse(p+1, &p); > > if (*p != ':') > > return -EINVAL; > > > > start = memblock_phys_alloc(size, align); > > So this will allocate the same physical location for every boot, if booting > the same kernel and having the same physical memory layout? Up to kaslr that might use that location for the kernel image. But it's the same as allocating from e820 after kaslr. And, TBH, I don't have good ideas how to ensure the same physical location with randomization of the physical address of the kernel image. > -- Steve > > > > if (!start) > > return -ENOMEM; > > > > p++; > > err = memmap_add(start, size, p); > > if (err) { > > memblock_phys_free(start, size); > > return err; > > } > > > > p += strlen(p); > > > > return *p == '\0' ? 0: -EINVAL; > > } > > __setup("early_reserve_mem=", early_reserve_mem); > > > > you don't need to touch e820 and it will work the same for all > > architectures. > > > > We'd need a better naming, but I couldn't think of something better yet. > > > > > + > > > +/** > > > + * memmap_named - Find a wildcard region with a given name > > > + * @name: The name that is attached to a wildcard region > > > + * @start: If found, holds the start address > > > + * @size: If found, holds the size of the address. > > > + * > > > + * Returns: 1 if found or 0 if not found. > > > + */ > > > +int memmap_named(const char *name, u64 *start, u64 *size) > > > +{ > > > + struct mmap_map *map; > > > + > > > + if (!mmap_list) > > > + return 0; > > > + > > > + for (int i = 0; mmap_list[i].name[0]; i++) { > > > + map = &mmap_list[i]; > > > + if (!map->size) > > > + continue; > > > + if (strcmp(name, map->name) == 0) { > > > + *start = map->start; > > > + *size = map->size; > > > + return 1; > > > + } > > > + } > > > + return 0; > > > +} > > > + > > > struct kobject *mm_kobj; > > > > > > #ifdef CONFIG_SMP > > > @@ -2793,4 +2864,5 @@ void __init mm_core_init(void) > > > pti_init(); > > > kmsan_init_runtime(); > > > mm_cache_init(); > > > + memmap_copy(); > > > } > > > -- Sincerely yours, Mike.