From patchwork Tue May 14 12:31:13 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Grall X-Patchwork-Id: 164193 Delivered-To: patch@linaro.org Received: by 2002:a92:9e1a:0:0:0:0:0 with SMTP id q26csp2561701ili; Tue, 14 May 2019 05:32:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqyzZfvMtBAu+GZ6rHgxikdAAocAdzIXE3/2VQ2957Tyy8C7ZmZNDl55JBo6hbuWZH04pYjG X-Received: by 2002:a24:5207:: with SMTP id d7mr750384itb.35.1557837153687; Tue, 14 May 2019 05:32:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1557837153; cv=none; d=google.com; s=arc-20160816; b=ukbFMA3F2EutvDz+9tuMiPF9OUIjqKpXnFmGqGhxzPq7EvseiEdLrkxERXXuJ+shLG zk2N+N2/m8WMEspLhsK0kt2IRZnul2ubhasgrlsNDU6gtq32bnzoVV53bgyjFF0jvlRO LNJZ0CVnt+3gZ33TufxvsCDS9rZ581k/5p9a9pyCYM+fn0uSrb2ZhX9TRxaqZfO7xzAJ EVbrpCQ27xYw3i76seVFpqsHdJXfLb3oBVZpI8omI1EIwlrEgXxIOMDjwyHW110f0954 ImLMfsmXVFq+3wz+bQgtgBxSHty05zLHnaaU+8ZE1/WJ6DUkWOOhaWJpc/eRpaJQoaie E3RQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc :list-subscribe:list-help:list-post:list-unsubscribe:list-id :precedence:subject:message-id:date:to:from; bh=bnfzlYYT2FeekynF/uuecSQcY1uCE+ku5d8xi8MqDsA=; b=z7n4yRvT0PSELh3gKbUUycrNA1qMmvRLKJnwvI/S4Lswt0dDUoER+1+5xdgJVdlpfg wK0WdT3jpaCCII/Ad24pg/F4LWkiAnL26iF1j4nIUcqFvSzBRQ2/STpVU0iX1PocalgV /H5xEHxK3EYZ2Y/6xvGnEbE4+JZS5jCWk8BGB3Sx/dWXKpsTmcRwGSgUZDt/+tiWntXx HHJoL00bHFgwHNPj+dt8R3mEyDiO5IR8ZTB8nKmc5iNRoj/peTB3X71cV2Pcnwpt9APn dHi25kimYP51iH+msWAep7h46RQ4h1ILHewHTiPx5yntqu5begROjgVojnyTyPcY5eUn USpA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Return-Path: Received: from lists.xenproject.org (lists.xenproject.org. [192.237.175.120]) by mx.google.com with ESMTPS id a20si8625163ioc.19.2019.05.14.05.32.33 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 14 May 2019 05:32:33 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of xen-devel-bounces@lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQWaj-0005Ks-T8; Tue, 14 May 2019 12:31:33 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hQWai-0005Km-M1 for xen-devel@lists.xenproject.org; Tue, 14 May 2019 12:31:32 +0000 X-Inumbo-ID: 3406c379-7644-11e9-8980-bc764e045a96 Received: from foss.arm.com (unknown [217.140.101.70]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTP id 3406c379-7644-11e9-8980-bc764e045a96; Tue, 14 May 2019 12:31:31 +0000 (UTC) Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 4457A341; Tue, 14 May 2019 05:31:31 -0700 (PDT) Received: from e108454-lin.cambridge.arm.com (e108454-lin.cambridge.arm.com [10.1.196.50]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 32CB13F71E; Tue, 14 May 2019 05:31:30 -0700 (PDT) From: Julien Grall To: xen-devel@lists.xenproject.org Date: Tue, 14 May 2019 13:31:13 +0100 Message-Id: <20190514123125.29086-1-julien.grall@arm.com> X-Mailer: git-send-email 2.11.0 Subject: [Xen-devel] [PATCH MM-PART3 v2 00/12] xen/arm: Provide a generic function to update Xen PT X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Oleksandr_Tyshchenko@epam.com, Julien Grall , Stefano Stabellini , Andrii_Anisov@epam.com MIME-Version: 1.0 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Hi all, This is the third part of the boot/memory rework for Xen on Arm. At the moment, the update to Xen PT is scattered all around mm.c. This makes difficult to rework Xen memory layout or even ensuring we are following the Arm Arm properly (and we are not so far!). This part contains code to provide a generic function to update Xen PT. While I could have started from scratch, I decided to base the new function on create_xen_entries() (now renamed xen_pt_update()). This makes slightly easier to follow the changes. In this series, the new generic function will only support 3rd-level update and cannot be used in early boot (i.e because xenheap is not initialized). This will be extended in follow-up series to allow more use within mm.c. There are probably some optimization possible around the TLBs flush. I haven't looked at it so far. The last two patches of this series is to show how existing callers can be converted. There are more conversion to come in follow-up series. This series is based on the first two parts sent separately (see [1] and [2]). For convenience, I provided a branch with all the patches applied based on staging: git://xenbits.xen.org/people/julieng/xen-unstable.git branch mm/part3/v2 Cheers, [1] https://lists.xenproject.org/archives/html/xen-devel/2019-05/msg01109.html [2] https://lists.xenproject.org/archives/html/xen-devel/2019-05/msg01149.html Julien Grall (12): xen/arm: lpae: Add a macro to generate offsets from an address xen/arm: mm: Rename create_xen_entries() to xen_pt_update() xen/arm: mm: Move out of xen_pt_update() the logic to update an entry xen/arm: mm: Only increment mfn when valid in xen_pt_update xen/arm: mm: Introduce _PAGE_PRESENT and _PAGE_POPULATE xen/arm: mm: Sanity check any update of Xen page tables xen/arm: mm: Rework xen_pt_update_entry to avoid use xenmap_operation xen/arm: mm: Remove enum xenmap_operation xen/arm: mm: Use {, un}map_domain_page() to map/unmap Xen page-tables xen/arm: mm: Rework Xen page-tables walk during update xen/arm: mm: Don't open-code Xen PT update in {set, clear}_fixmap() xen/arm: mm: Remove set_pte_flags_on_range() xen/arch/arm/mm.c | 421 ++++++++++++++++++++++++++++++--------------- xen/arch/arm/p2m.c | 23 +-- xen/include/asm-arm/lpae.h | 9 + xen/include/asm-arm/page.h | 9 +- 4 files changed, 305 insertions(+), 157 deletions(-)