From patchwork Wed Sep 7 14:35:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Henry Wang X-Patchwork-Id: 12969051 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 lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E0202C54EE9 for ; Wed, 7 Sep 2022 14:36:19 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.401889.643853 (Exim 4.92) (envelope-from ) id 1oVw9w-0002tm-SX; Wed, 07 Sep 2022 14:36:08 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 401889.643853; Wed, 07 Sep 2022 14:36:08 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oVw9w-0002tf-PI; Wed, 07 Sep 2022 14:36:08 +0000 Received: by outflank-mailman (input) for mailman id 401889; Wed, 07 Sep 2022 14:36:08 +0000 Received: from se1-gles-flk1-in.inumbo.com ([94.247.172.50] helo=se1-gles-flk1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1oVw9v-0002tH-WE for xen-devel@lists.xenproject.org; Wed, 07 Sep 2022 14:36:08 +0000 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by se1-gles-flk1.inumbo.com (Halon) with ESMTP id 677078d5-2eba-11ed-af93-0125da4c0113; Wed, 07 Sep 2022 16:36:06 +0200 (CEST) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 0B2A81042; Wed, 7 Sep 2022 07:36:11 -0700 (PDT) Received: from entos-skylake.shanghai.arm.com (entos-skylake.shanghai.arm.com [10.169.212.207]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 9FB6B3F71A; Wed, 7 Sep 2022 07:36:01 -0700 (PDT) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 677078d5-2eba-11ed-af93-0125da4c0113 From: Henry Wang To: xen-devel@lists.xenproject.org Cc: Henry Wang , Stefano Stabellini , Julien Grall , Bertrand Marquis , Volodymyr Babchuk , Andrew Cooper , George Dunlap , Jan Beulich , Wei Liu Subject: [PATCH v4 0/4] Introduce static heap Date: Wed, 7 Sep 2022 14:35:28 +0000 Message-Id: <20220907143532.15397-1-Henry.Wang@arm.com> X-Mailer: git-send-email 2.17.1 The static heap, or statically configured heap, refers to parts of RAM reserved in the beginning for heap. Like the static memory allocation, such static heap regions are reserved by configuration in the device tree using physical address ranges. This feature is useful to run Xen on Arm MPU systems, where only a finite number of memory protection regions are available. The limited number of protection regions places requirement on planning the use of MPU protection regions and one or more MPU protection regions needs to be reserved only for heap. The first patch enhances the error handling in processing the dts chosen node. The second patch introduces the static heap and the device tree parsing code. The third patch renames xenheap_* to directmap_* for better readablity. The fourth patch adds the implementation of the static heap pages handling in boot and heap allocator for Arm. Changes from v3 to v4: - Change and update of wording in comments. - Add the static heap feature in SUPPORT.md as tech preview. - Also rename the setup_xenheap_mappings() function name and printed messages inside the function. - Add Acked-by and reviewed-by. Henry Wang (4): xen/arm: bootfdt: Make process_chosen_node() return int docs, xen/arm: Introduce static heap memory xen/arm: mm: Rename xenheap_* variable to directmap_* xen/arm: Handle static heap pages in boot and heap allocator SUPPORT.md | 7 ++ docs/misc/arm/device-tree/booting.txt | 48 ++++++++ xen/arch/arm/bootfdt.c | 57 +++++++--- xen/arch/arm/domain_build.c | 8 +- xen/arch/arm/include/asm/config.h | 2 +- xen/arch/arm/include/asm/mm.h | 31 ++--- xen/arch/arm/include/asm/setup.h | 23 +++- xen/arch/arm/mm.c | 50 +++++---- xen/arch/arm/setup.c | 156 ++++++++++++++++++++------ 9 files changed, 293 insertions(+), 89 deletions(-)