From mboxrd@z Thu Jan 1 00:00:00 1970 From: Julien Grall Subject: Re: [PATCH for-4.5 v6 10/17] xen/arm: p2m type definitions and changes Date: Tue, 16 Sep 2014 13:38:04 -0700 Message-ID: <54189FAC.50308@linaro.org> References: <1410789775-24197-1-git-send-email-tklengyel@sec.in.tum.de> <1410789775-24197-11-git-send-email-tklengyel@sec.in.tum.de> <1410820555.6908.14.camel@hastur.hellion.org.uk> <1410874037.18008.2.camel@hastur.hellion.org.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1410874037.18008.2.camel@hastur.hellion.org.uk> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Campbell , Tamas K Lengyel Cc: Tim Deegan , Ian Jackson , "xen-devel@lists.xen.org" , Stefano Stabellini , Andres Lagar-Cavilla , Jan Beulich , Daniel De Graaf , Tamas K Lengyel List-Id: xen-devel@lists.xenproject.org Hi Ian, On 16/09/14 06:27, Ian Campbell wrote: > On Tue, 2014-09-16 at 10:49 +0200, Tamas K Lengyel wrote: >> >> >> On Tue, Sep 16, 2014 at 12:35 AM, Ian Campbell >> wrote: >> On Mon, 2014-09-15 at 16:02 +0200, Tamas K Lengyel wrote: >> > Define p2m_access_t in ARM and add necessary changes for >> page table >> > construction routines to pass the default access >> information. Also, >> > define the Radix tree that will hold access permission >> settings as >> > the PTE's don't have enough software programmable bits >> available. >> >> So my main concern here is the overhead for non-xenaccess >> users. I think >> it amounts to a few extra fields in the p2m_domain struct >> which I can >> see here and presumably some NULL vs. non-NULL type checks >> which I guess >> we will get to later. The important thing is that the fast >> paths for the >> common case don't get a lot of extra overhead. >> >> WRT the xenaccess performance did you consider any options >> other than a >> radix tree (which seems quite expensive to me)? e.g. perhaps >> allocating >> (only when needed) as second page for each real T page as a >> shadow/extended region? Perhaps pointed to by a filed in the >> real PT >> struct page_info. I'm sure there are other possible ideas too. >> >> Ian, >> >> >> Those would all be possible solutions. I used the Radix tree >> implementation already in Xen as a matter of convenience and because >> it has an acceptable overhead. I certainly don't oppose further >> optimizing this code, I'm just not sure if it needs to happen now, >> provided feature freeze is rapidly approaching. The main concern >> should be impact on non-xenaccess code-paths, which I agree are a >> showstopper of any feature like this. If you say it can't be merged >> unless the xenaccess code-path is also optimized I'm afraid this >> series will be postponed till 4.6 as I won't have the time to test out >> which approach puts the least overhead on the system under what >> usage-scenarios etc in this timeframe. > > WRT merging I'm only concerned about the impact on non-xenaccess uses, > the stuff about the xenaccess-on case was just idle wondering, sorry for > not making that clear. I didn't write this code, but read it multiple time and ask the similar question to Tamas few version ago. So, the radix tree is only used when the access type of the page is different than access_rwx. This is the default access when xenaccess is not used. AFAIU, the only overhead we have is the new fields in the arch_domain structure. Regards, -- Julien Grall