From: Tamas K Lengyel <tamas.lengyel@zentific.com>
To: Julien Grall <julien.grall@linaro.org>
Cc: Ian Campbell <ian.campbell@citrix.com>, Tim Deegan <tim@xen.org>,
Ian Jackson <ian.jackson@eu.citrix.com>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
Stefano Stabellini <stefano.stabellini@citrix.com>,
Andres Lagar-Cavilla <andres@lagarcavilla.org>,
Jan Beulich <jbeulich@suse.com>,
Daniel De Graaf <dgdegra@tycho.nsa.gov>,
Tamas K Lengyel <tklengyel@sec.in.tum.de>
Subject: Re: [PATCH for-4.5 v6 10/17] xen/arm: p2m type definitions and changes
Date: Tue, 16 Sep 2014 23:52:57 +0200 [thread overview]
Message-ID: <CAErYnshcv6waC+sbfdiUV_imrczntyT6B0-UWZLVH5ezb1ccuw@mail.gmail.com> (raw)
In-Reply-To: <54189FAC.50308@linaro.org>
[-- Attachment #1.1: Type: text/plain, Size: 3394 bytes --]
On Tue, Sep 16, 2014 at 10:38 PM, Julien Grall <julien.grall@linaro.org>
wrote:
> 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
>>> <ian.campbell@citrix.com> 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
>
Yeap, that's the basic outline of things (except that one thing I mentioned
in the other thread, which is already fixed in v7 of the series). I looked
into switching to an extended struct page_info and that looks like a good
alternative to consider. It seems to be like a faster lookup to get that
struct with get_page_from_gva then the radix lookup if the radix tree is
large.
Tamas
[-- Attachment #1.2: Type: text/html, Size: 4606 bytes --]
[-- Attachment #2: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
next prev parent reply other threads:[~2014-09-16 21:52 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-15 14:02 [PATCH for-4.5 v6 00/17] Mem_event and mem_access for ARM Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 01/17] xen: Relocate mem_access and mem_event into common Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 02/17] xen: Relocate p2m_mem_access_resume to mem_access common Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 03/17] xen: Relocate struct npfec definition into common Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 04/17] xen: Relocate mem_event_op domctl and access_op memop " Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 05/17] x86/p2m: Typo fix for spelling ambiguous Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 06/17] xen/mem_event: Clean out superfluous white-spaces Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 07/17] xen/mem_event: Relax error condition on debug builds Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 08/17] xen/mem_event: Abstract architecture specific sanity checks Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 09/17] xen/mem_access: Abstract architecture specific sanity check Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 10/17] xen/arm: p2m type definitions and changes Tamas K Lengyel
2014-09-15 22:35 ` Ian Campbell
2014-09-16 8:49 ` Tamas K Lengyel
2014-09-16 13:27 ` Ian Campbell
2014-09-16 20:38 ` Julien Grall
2014-09-16 21:52 ` Tamas K Lengyel [this message]
2014-09-15 14:02 ` [PATCH for-4.5 v6 11/17] xen/arm: Add set access required domctl Tamas K Lengyel
2014-09-15 22:37 ` Ian Campbell
2014-09-16 8:37 ` Tamas K Lengyel
2014-09-15 22:38 ` Ian Campbell
2014-09-16 8:33 ` Tamas K Lengyel
2014-09-16 13:25 ` Ian Campbell
2014-09-15 14:02 ` [PATCH for-4.5 v6 12/17] xen/arm: Implement domain_get_maximum_gpfn Tamas K Lengyel
2014-09-15 22:39 ` Ian Campbell
2014-09-16 8:02 ` Tamas K Lengyel
2014-09-16 16:44 ` Ian Campbell
2014-09-16 17:09 ` Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 13/17] xen/arm: Data abort exception (R/W) mem_events Tamas K Lengyel
2014-09-15 22:53 ` Ian Campbell
[not found] ` <CAErYnshu0vJJMxWwu4eo2MZf=q_g2H123p6VUk_4a9f12vYLjg@mail.gmail.com>
2014-09-16 10:07 ` Tamas K Lengyel
2014-09-16 16:50 ` Ian Campbell
2014-09-16 17:08 ` Tamas K Lengyel
2014-09-18 18:54 ` Ian Campbell
2014-09-18 20:09 ` Tamas K Lengyel
2014-09-19 9:05 ` Tamas K Lengyel
2014-09-22 9:11 ` Ian Campbell
2014-09-22 17:18 ` Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 14/17] xen/arm: Instruction prefetch abort (X) mem_event handling Tamas K Lengyel
2014-09-18 18:59 ` Ian Campbell
2014-09-18 20:12 ` Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 15/17] xen/arm: Enable the compilation of mem_access and mem_event on ARM Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 16/17] tools/libxc: Allocate magic page for mem access " Tamas K Lengyel
2014-09-15 14:02 ` [PATCH for-4.5 v6 17/17] tools/tests: Enable xen-access " Tamas K Lengyel
2014-09-18 19:02 ` Ian Campbell
2014-09-22 18:48 ` Tamas K Lengyel
2014-09-23 12:18 ` Ian Campbell
2014-10-01 17:32 ` Aravindh Puthiyaparambil (aravindp)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CAErYnshcv6waC+sbfdiUV_imrczntyT6B0-UWZLVH5ezb1ccuw@mail.gmail.com \
--to=tamas.lengyel@zentific.com \
--cc=andres@lagarcavilla.org \
--cc=dgdegra@tycho.nsa.gov \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jbeulich@suse.com \
--cc=julien.grall@linaro.org \
--cc=stefano.stabellini@citrix.com \
--cc=tim@xen.org \
--cc=tklengyel@sec.in.tum.de \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).