xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
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

  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).