Received: by 2002:a05:6a10:1d13:0:0:0:0 with SMTP id pp19csp1948881pxb; Mon, 23 Aug 2021 08:21:42 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyW7sCGirz13GBzOVV8bURWSVcA32H+WnwBrhD2U8vGIKW2ca3pTq2ZiCrjQe5xgfg3Vxdu X-Received: by 2002:a5e:df0d:: with SMTP id f13mr27162052ioq.108.1629732101938; Mon, 23 Aug 2021 08:21:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629732101; cv=none; d=google.com; s=arc-20160816; b=bocn7FcG3RWFzVJ8EgD8Qkm0xF4peJsJRBu13/tW4kq9dSFZU2HBuPegCoSxzYbEA+ cMmrtYMj4Dbj5TiH5LgViVhH5izYm907y0wK1vFgxZchSPJftHIfG6VRksef1RhwGFYY BoX6IEFp2egZ+3BMGXA5WOq1Vuy/aeItrVILEiMt1ZtVX6TZHRPcJke0nEg6AWFL7ZR7 FLMYr3vwteLyIBwuomLD1CcyNeJnbGeSArzlASYS2i9pBXHLmHXjSsYLCaUWdhVo+pZn YlAaUKnD9b5OaaVKcpsk6HGyYqb85o1dJuOH+gWSa2qkp9xj1jVdIYUuzMLZ4E6U65cv 7wZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=swk7JthSefnPLoqs7+l9p234t3D+LnUgwP/RPjvmmK8=; b=Gib7Nd0EZcY4HxfXrueHKhvipS3wdYnV/Gw4ky+tU9WbrIe0Qlvy2AjSPaqRbUFiNq qGheZEfhMrR9LUmuWDvL57x7BwfhqKZO7eXFDdOmSKmeOTWfsbuTzcZZnvtG224qGJPt GHGaUZkwLIDvS/G/HxoGKZXGOkBLotZggGJhCtFB4Ief+dFVqWAlDEpB2YPKaUwppe1V Io4s14p6DIzm4zS4Kl+0gaJYMj6uM/ZP8ENRFs3r/ja+TCma30/Ein6grJ/np2u2nbcT HAT6sLmivsMvtLlP1EXNbx+Yt7GuXIT/onG7KS/0r2ledZuZykgq4qT/NgjUnrFTDHZy MvaQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="RGjW/286"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id l13si13808252jaq.11.2021.08.23.08.21.29; Mon, 23 Aug 2021 08:21:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b="RGjW/286"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231520AbhHWPVP (ORCPT + 99 others); Mon, 23 Aug 2021 11:21:15 -0400 Received: from mail.kernel.org ([198.145.29.99]:50718 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231324AbhHWPVO (ORCPT ); Mon, 23 Aug 2021 11:21:14 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id B9C6061406; Mon, 23 Aug 2021 15:20:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1629732031; bh=qreQnG9EH+SLqs9cxYafKtRpnrXgjkJipzrUHxRm8AI=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=RGjW/286CluzlorhZhA12uBlEH3uhRoRK1S/j3K064/Shsa1wyggzEKZ+qBLhJnq4 gRNV2wTAu/HjHiWh2f8lDroX68ilJ+YROIaiewKam0s1N8A50OJJWefyUImpM5E2eF 23BcN2czeN9GNVN/lCJogN+4552M5+pHKvniKKEJEUx8otTEcVGWHyeI3OR3rj1qMi Hi+i0DsYD+9xTYJ7MrtjEFxhLsW1VCy64kf+eN2MBlr4L1PcNpyAXM2UcO+pR7vBQY FLye4cqCOX/Qx8AxadC/oQ1G2/s7ZAxLxG8DqtLBtsk0QFfiMvLtb9egfLJszfwr1w PQAw/Rb0cjfWQ== Date: Mon, 23 Aug 2021 18:20:20 +0300 From: Mike Rapoport To: Rob Herring Cc: Geert Uytterhoeven , Russell King , Nicolas Pitre , Ard Biesheuvel , Linus Walleij , Catalin Marinas , Will Deacon , Thomas Bogendoerfer , Nick Kossifidis , Paul Walmsley , Palmer Dabbelt , Albert Ou , Frank Rowand , Dave Young , Baoquan He , Vivek Goyal , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , Linux ARM , "open list:BROADCOM NVRAM DRIVER" , linux-riscv , kexec@lists.infradead.org, Linux-Renesas , Linux Kernel Mailing List Subject: Re: [PATCH v5 1/9] MIPS: Avoid future duplicate elf core header reservation Message-ID: References: <92b6718f5618d5469f67b48fbea189cca0c12f4b.1628670468.git.geert+renesas@glider.be> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Aug 23, 2021 at 09:44:55AM -0500, Rob Herring wrote: > On Mon, Aug 23, 2021 at 8:10 AM Mike Rapoport wrote: > > > > On Mon, Aug 23, 2021 at 12:17:50PM +0200, Geert Uytterhoeven wrote: > > > Hi Mike, > > > > > > On Mon, Aug 16, 2021 at 7:52 AM Mike Rapoport wrote: > > > > On Wed, Aug 11, 2021 at 10:50:59AM +0200, Geert Uytterhoeven wrote: > > > > > Prepare for early_init_fdt_scan_reserved_mem() reserving the memory > > > > > occupied by an elf core header described in the device tree. > > > > > As arch_mem_init() calls early_init_fdt_scan_reserved_mem() before > > > > > mips_reserve_vmcore(), the latter needs to check if the memory has > > > > > already been reserved before. > > > > > > > > Doing memblock_reserve() for the same region is usually fine, did you > > > > encounter any issues without this patch? > > > > > > Does it also work if the same region is part of an earlier larger > > > reservation? I am no memblock expert, so I don't know. > > > I didn't run into any issues, as my MIPS platform is non-DT, but I > > > assume arch/arm64/mm/init.c:reserve_elfcorehdr() had the check for > > > a reason. > > > > The memory will be reserved regardless of the earlier reservation, the > > issue may appear when the reservations are made for different purpose. E.g. > > if there was crash kernel allocation before the reservation of elfcorehdr. > > > > The check in such case will prevent the second reservation, but, at least > > in arch/arm64/mm/init.c:reserve_elfcorehdr() it does not seem to prevent > > different users of the overlapping regions to step on each others toes. > > If the kernel has been passed in overlapping regions, is there > anything you can do other than hope to get a message out? Nothing really. I've been thinking about adding flags to memblock.reserved to at least distinguish firmware regions from the kernel allocations, but I never got to that. > > Moreover, arm64::reserve_elfcorehdr() seems buggy to me, because of there > > is only a partial overlap of the elfcorehdr with the previous reservation, > > the non-overlapping part of elfcorehdr won't get reserved at all. > > What do you suggest as the arm64 version is not the common version? I'm not really familiar with crash dump internals, so I don't know if resetting elfcorehdr_addr to ELFCORE_ADDR_ERR is a good idea. I think at least arm64::reserve_elfcorehdr() should reserve the entire elfcorehdr area regardless of the overlap. Otherwise it might get overwritten by a random memblock_alloc(). > Rob -- Sincerely yours, Mike.