From: Julien Grall <julien.grall@linaro.org>
To: Tim Deegan <tim@xen.org>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
George Dunlap <george.dunlap@eu.citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
George Dunlap <george.dunlap@citrix.com>,
Jan Beulich <JBeulich@suse.com>,
Andre Przywara <andre.przywara@arm.com>,
xen-devel <xen-devel@lists.xenproject.org>
Subject: Re: [RFC] xen/arm: Handling cache maintenance instructions by set/way
Date: Fri, 8 Dec 2017 14:38:33 +0000 [thread overview]
Message-ID: <0266554c-fb24-22bf-e4bb-832abffc0ef1@linaro.org> (raw)
In-Reply-To: <20171208080333.GR32346@deinos.phlegethon.org>
On 08/12/17 08:03, Tim Deegan wrote:
> Hi,
Hi Tim,
Somehow your e-mail was marked as spam by gmail.
> At 12:58 +0000 on 06 Dec (1512565090), Julien Grall wrote:
>> On 12/06/2017 12:28 PM, George Dunlap wrote:
>>> 2. It sounds like rather than using PoD, you could use the
>>> "misconfigured p2m table" technique that x86 uses: set bits in the p2m
>>> entry which cause a specific kind of HAP fault when accessed. The fault
>>> handler then looks in the p2m entry, and if it finds an otherwise valid
>>> entry, it just fixes the "misconfigured" bits and continues.
>>
>> I thought about this. But when do you set the entry to misconfigured?
>>
>> If you take the example of Linux 32-bit. There are a couple of full
>> cache clean during the boot of uni-processor. So you would need to go
>> through the p2m multiple time and reset the access bits.
>
> My 2c (echoing what some others have already said):
>
> +1 for avoiding the full majesty of PoD if you don't need it.
>
> It should be possible to do something like the misconfigured-entry bit
> trick by _allocating_ the memory up-front and building the p2m entries
> but only making them usable by the {IO}MMUs on first access. That
> would make these early p2m walks shorter (because they can skip whole
> subtrees that aren't marked present yet) without making major changes
> to domain build or introducing run-time failures.
I am not aware of any way on Arm to misconfigure an entry. We do have
valid and access bits, although they will affect the IOMMU as well. So
it will not be possible to get page-table sharing with this "feature"
enabled.
At the moment, I am thinking to provide a per-guest option to turn
on/off the possibility to use the valid/access bit. That will be at the
expense to do a full invalidate on S/W.
> Also beware of DoS conditions -- a guest that touches all its memory
> and then flushes by set/way mustn't be allowed to hurt the rest of the
> system. That probably means the set/way flush has to be preemptable.
I am fully aware about it :). This was actually mentioned in my first
e-mail.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
next prev parent reply other threads:[~2017-12-08 14:38 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-05 18:39 [RFC] xen/arm: Handling cache maintenance instructions by set/way Julien Grall
2017-12-05 22:35 ` Stefano Stabellini
2017-12-05 22:54 ` Julien Grall
2017-12-06 9:15 ` Jan Beulich
2017-12-06 12:10 ` Julien Grall
2017-12-06 12:28 ` George Dunlap
2017-12-06 12:58 ` Julien Grall
2017-12-06 13:01 ` Julien Grall
2017-12-06 15:15 ` Jan Beulich
2017-12-06 17:52 ` Julien Grall
2017-12-07 9:39 ` Jan Beulich
2017-12-07 15:22 ` Julien Grall
2017-12-07 15:49 ` Jan Beulich
2017-12-06 17:49 ` George Dunlap
2017-12-07 13:52 ` Julien Grall
2017-12-07 14:25 ` Jan Beulich
2017-12-07 14:53 ` Marc Zyngier
2017-12-07 15:45 ` Jan Beulich
2017-12-07 16:04 ` Marc Zyngier
2017-12-07 16:04 ` Julien Grall
2017-12-07 16:44 ` George Dunlap
2017-12-07 16:58 ` Marc Zyngier
2017-12-07 18:06 ` George Dunlap
2017-12-07 19:21 ` Marc Zyngier
2017-12-08 10:56 ` George Dunlap
2017-12-11 11:10 ` Andre Przywara
2017-12-11 12:15 ` George Dunlap
2017-12-11 21:11 ` Julien Grall
2017-12-08 8:03 ` Tim Deegan
2017-12-08 14:38 ` Julien Grall [this message]
2017-12-10 15:22 ` Tim Deegan
2017-12-11 19:50 ` Julien Grall
2017-12-11 10:06 ` Jan Beulich
2017-12-11 11:11 ` Andrew Cooper
2017-12-11 11:58 ` Jan Beulich
2017-12-11 20:26 ` Julien Grall
2017-12-12 7:52 ` Jan Beulich
2017-12-06 15:10 ` Konrad Rzeszutek Wilk
2017-12-06 15:19 ` Julien Grall
2017-12-06 15:24 ` George Dunlap
2017-12-06 15:26 ` Julien Grall
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=0266554c-fb24-22bf-e4bb-832abffc0ef1@linaro.org \
--to=julien.grall@linaro.org \
--cc=JBeulich@suse.com \
--cc=andre.przywara@arm.com \
--cc=andrew.cooper3@citrix.com \
--cc=george.dunlap@citrix.com \
--cc=george.dunlap@eu.citrix.com \
--cc=sstabellini@kernel.org \
--cc=tim@xen.org \
--cc=xen-devel@lists.xenproject.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.