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 X-Spam-Level: X-Spam-Status: No, score=-12.3 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 82C3AC433ED for ; Sat, 15 May 2021 08:48:52 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 22F83613F1 for ; Sat, 15 May 2021 08:48:52 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 22F83613F1 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=xen.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.127688.239993 (Exim 4.92) (envelope-from ) id 1lhpyP-0008K3-QX; Sat, 15 May 2021 08:48:37 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 127688.239993; Sat, 15 May 2021 08:48:37 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lhpyP-0008Jw-NM; Sat, 15 May 2021 08:48:37 +0000 Received: by outflank-mailman (input) for mailman id 127688; Sat, 15 May 2021 08:48:36 +0000 Received: from mail.xenproject.org ([104.130.215.37]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lhpyO-0008Jq-FJ for xen-devel@lists.xenproject.org; Sat, 15 May 2021 08:48:36 +0000 Received: from xenbits.xenproject.org ([104.239.192.120]) by mail.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1lhpyN-0003HE-67; Sat, 15 May 2021 08:48:35 +0000 Received: from [54.239.6.185] (helo=a483e7b01a66.ant.amazon.com) by xenbits.xenproject.org with esmtpsa (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1lhpyM-0004se-RT; Sat, 15 May 2021 08:48:35 +0000 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" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=xen.org; s=20200302mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To: MIME-Version:Date:Message-ID:From:References:Cc:To:Subject; bh=Vu/Ot5cSLCpfQgycmsExf1exDNYGKOqncuBqdooCr0U=; b=v9z/IdBG1NQVdb/bHrcuN8efdC iKZe6ZCJ3VtvVG+9EZis0qc82/7ng4gJ+f1S5Dq7k5aJiNzHM5y6iju3dQKFkKzevnz4/qkoSFpvs 5qfM6FkMJHlkOn0i/11KF18gMdpZCfjUdb+jOwTBpEJ7y7PcdJ3dch6uO7sssN/CTIZA=; Subject: Re: [PATCH RFCv2 10/15] xen/arm: mm: Allocate xen page tables in domheap rather than xenheap To: Stefano Stabellini Cc: xen-devel@lists.xenproject.org, Wei.Chen@arm.com, Henry.Wang@arm.com, Penny.Zheng@arm.com, Bertrand.Marquis@arm.com, Julien Grall , Volodymyr Babchuk References: <20210425201318.15447-1-julien@xen.org> <20210425201318.15447-11-julien@xen.org> <9429bec0-8706-42b9-cda6-77adde961235@xen.org> From: Julien Grall Message-ID: <602bea61-9db2-a27d-1fed-001e2b5b2176@xen.org> Date: Sat, 15 May 2021 09:48:32 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-GB Content-Transfer-Encoding: 7bit Hi Stefano, On 13/05/2021 23:27, Stefano Stabellini wrote: > On Thu, 13 May 2021, Julien Grall wrote: >> Hi Stefano, >> >> On 12/05/2021 23:44, Stefano Stabellini wrote: >>> On Sun, 25 Apr 2021, Julien Grall wrote: >>>> From: Julien Grall >>>> >>>> xen_{un,}map_table() already uses the helper to map/unmap pages >>>> on-demand (note this is currently a NOP on arm64). So switching to >>>> domheap don't have any disavantage. >>>> >>>> But this as the benefit: >>>> - to keep the page tables unmapped if an arch decided to do so >>>> - reduce xenheap use on arm32 which can be pretty small >>>> >>>> Signed-off-by: Julien Grall >>> >>> Thanks for the patch. It looks OK but let me ask a couple of questions >>> to clarify my doubts. >>> >>> This change should have no impact to arm64, right? >>> >>> For arm32, I wonder why we were using map_domain_page before in >>> xen_map_table: it wasn't necessary, was it? In fact, one could even say >>> that it was wrong? >> In xen_map_table() we need to be able to map pages from Xen binary, xenheap... >> On arm64, we would be able to use mfn_to_virt() because everything is mapped >> in Xen. But that's not the case on arm32. So we need a way to map anything >> easily. >> >> The only difference between xenheap and domheap are the former is always >> mapped while the latter may not be. So one can also view a xenheap page as a >> glorified domheap. >> >> I also don't really want to create yet another interface to map pages (we have >> vmap(), map_domain_page(), map_domain_global_page()...). So, when I >> implemented xen_map_table() a couple of years ago, I came to the conclusion >> that this is a convenient (ab)use of the interface. > > Got it. Repeating to check if I see the full picture. On ARM64 there are > no changes. On ARM32, at runtime there are no changes mapping/unmapping > pages because xen_map_table is already mapping all pages using domheap, > even xenheap pages are mapped as domheap; so this patch makes no > difference in mapping/unmapping, correct? For arm32, it makes a slight difference when allocating a new page table (we didn't call map/unmap before) but this is not called often. The main "drop" in performance happened when xen_{,map}_table() was introduced. > > The only difference is that on arm32 we are using domheap to allocate > the pages, which is a different (larger) pool. Yes. Would you be happy to give you acked-by/reviewed-by on this basis? Cheers, -- Julien Grall