From: Ed White <edmund.h.white@intel.com>
To: Tamas K Lengyel <tamas.lengyel@zentific.com>,
Jan Beulich <JBeulich@suse.com>
Cc: Keir Fraser <keir@xen.org>,
Ian Campbell <ian.campbell@citrix.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Tim Deegan <tim@xen.org>,
"xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
Ian Jackson <ian.jackson@eu.citrix.com>
Subject: Re: [PATCH 00/11] Alternate p2m: support multiple copies of host p2m
Date: Wed, 14 Jan 2015 09:35:21 -0800 [thread overview]
Message-ID: <54B6A8D9.904@intel.com> (raw)
In-Reply-To: <CAErYnsgCpzjZuDJT7vaZcbZjhTmEGS+E8d1_UF9Z0RcC4HPa_w@mail.gmail.com>
On 01/14/2015 03:28 AM, Tamas K Lengyel wrote:
> On Wed, Jan 14, 2015 at 12:09 PM, Jan Beulich <JBeulich@suse.com> wrote:
>>>>> On 14.01.15 at 11:31, <tamas.lengyel@zentific.com> wrote:
>>> On Wed, Jan 14, 2015 at 8:04 AM, Jan Beulich <jbeulich@suse.com> wrote:
>>>>>>> Ed White <edmund.h.white@intel.com> 01/13/15 10:32 PM >>>
>>>>> On 01/13/2015 12:45 PM, Andrew Cooper wrote:
>>>>>> On 13/01/15 20:02, Ed White wrote:
>>>>>>> The set of mfn's is the same, but I do allow gfn->mfn mappings to be
>>>>>>> modified under certain circumstances. One use of this is to point the
>>>>>>> same VA to different physical pages (with different access permissions)
>>>>>>> in different p2m's to hide memory changes.
>>>>>>
>>>>>> What is the practical use of being able to play paging tricks like this
>>>>>> behind a VMs back?
>>>>>
>>>>> I'm restricted in how much detail I can go into on a public mailing list,
>>>>> but imagine that you want a data read to see one thing and an instruction
>>>>> fetch to see something else.
>>>>
>>>> How would that work? There can only be one P2M in use at a time, and that's
>>>> used for both translations. Or are you saying at least one of the two accesses
>>>> would be emulated nevertheless?
>>>
>>> I can see it working by having data fetch access to a page trapped via
>>> mem_access, while instruction fetch is not.
>>
>> Understood, but how do you then carry out the data access? The
>> question I raised was whether that would then involve emulation.
>>
>> Jan
>
> At the mem_access trap point you can swap in an altp2m where the
> gfn->mfn mapping is the one where the breakpoints are hidden,
> singlestep, then swap the original p2m back. While this approach still
> has some overhead because of the use of singlestepping, it is going to
> be faster then what you currently have to do, which is removing all
> breakpoints, singlestep, then put breakpoints back. Now it would just
> be a matter of swapping a single pointer.
>
Right. The key observation is that at any single point in time, a given
hardware thread can be fetching an instruction or reading data, but not
both. These patches add a low-overhead way of switching p2m's for a single
vcpu between any two such operations. There are ways of avoiding the
single-step too, although I don't think that falls within the scope
of this conversation.
Ed
next prev parent reply other threads:[~2015-01-14 17:35 UTC|newest]
Thread overview: 135+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-09 21:26 [PATCH 00/11] Alternate p2m: support multiple copies of host p2m Ed White
2015-01-09 21:26 ` [PATCH 01/11] VMX: VMFUNC and #VE definitions and detection Ed White
2015-01-12 13:06 ` Andrew Cooper
2015-01-13 18:50 ` Ed White
2015-01-14 14:38 ` Andrew Cooper
2015-01-09 21:26 ` [PATCH 02/11] VMX: implement suppress #VE Ed White
2015-01-12 16:43 ` Andrew Cooper
2015-01-12 17:45 ` Ed White
2015-01-13 18:36 ` Ed White
2015-01-15 16:25 ` Tim Deegan
2015-01-15 18:46 ` Ed White
2015-01-16 17:22 ` Tim Deegan
2015-03-25 17:30 ` Ed White
2015-03-26 10:15 ` Tim Deegan
2015-01-09 21:26 ` [PATCH 03/11] x86/HVM: Hardware alternate p2m support detection Ed White
2015-01-12 17:08 ` Andrew Cooper
2015-01-12 17:46 ` Ed White
2015-01-15 16:32 ` Tim Deegan
2015-01-09 21:26 ` [PATCH 04/11] x86/MM: Improve p2m type checks Ed White
2015-01-12 17:48 ` Andrew Cooper
2015-01-13 19:39 ` Ed White
2015-01-15 16:36 ` Tim Deegan
2015-01-09 21:26 ` [PATCH 05/11] x86/altp2m: basic data structures and support routines Ed White
2015-01-13 11:28 ` Andrew Cooper
2015-01-13 19:49 ` Ed White
2015-03-25 20:59 ` Ed White
2015-03-26 10:48 ` Tim Deegan
2015-03-26 18:00 ` Ed White
2015-01-15 16:48 ` Tim Deegan
2015-01-15 16:53 ` Jan Beulich
2015-01-15 18:49 ` Ed White
2015-01-16 7:37 ` Jan Beulich
2015-01-16 17:23 ` Tim Deegan
2015-01-09 21:26 ` [PATCH 06/11] VMX/altp2m: add code to support EPTP switching and #VE Ed White
2015-01-13 11:58 ` Andrew Cooper
2015-01-15 16:56 ` Tim Deegan
2015-01-15 18:55 ` Ed White
2015-01-16 17:50 ` Tim Deegan
2015-01-16 17:57 ` Ed White
2015-01-09 21:26 ` [PATCH 07/11] x86/altp2m: introduce p2m_ram_rw_ve type Ed White
2015-01-15 17:03 ` Tim Deegan
2015-01-15 20:38 ` Ed White
2015-01-16 8:20 ` Jan Beulich
2015-01-16 17:14 ` Ed White
2015-01-19 8:49 ` Jan Beulich
2015-01-19 19:53 ` Ed White
2015-01-16 17:52 ` Tim Deegan
2015-01-16 18:35 ` Ed White
2015-01-17 9:37 ` Tim Deegan
2015-01-09 21:26 ` [PATCH 08/11] x86/altp2m: add remaining support routines Ed White
2015-01-15 17:25 ` Tim Deegan
2015-01-15 20:57 ` Ed White
2015-01-16 18:04 ` Tim Deegan
2015-01-15 17:33 ` Tim Deegan
2015-01-15 21:00 ` Ed White
2015-01-16 8:24 ` Jan Beulich
2015-01-16 17:17 ` Ed White
2015-01-19 8:52 ` Jan Beulich
2015-01-16 18:09 ` Tim Deegan
2015-01-09 21:26 ` [PATCH 09/11] x86/altp2m: define and implement alternate p2m HVMOP types Ed White
2015-01-15 17:09 ` Tim Deegan
2015-01-15 20:43 ` Ed White
2015-01-16 17:57 ` Tim Deegan
2015-01-09 21:26 ` [PATCH 10/11] x86/altp2m: fix log-dirty handling Ed White
2015-01-15 17:20 ` Tim Deegan
2015-01-15 20:49 ` Ed White
2015-01-16 17:59 ` Tim Deegan
2015-01-09 21:26 ` [PATCH 11/11] x86/altp2m: alternate p2m memory events Ed White
2015-01-09 22:06 ` [PATCH 00/11] Alternate p2m: support multiple copies of host p2m Andrew Cooper
2015-01-09 22:21 ` Ed White
2015-01-09 22:41 ` Andrew Cooper
2015-01-09 23:04 ` Ed White
2015-01-12 10:00 ` Jan Beulich
2015-01-12 17:36 ` Ed White
2015-01-13 8:56 ` Jan Beulich
2015-01-13 11:28 ` Ian Jackson
2015-01-13 17:42 ` Ed White
2015-01-12 12:17 ` Ian Jackson
2015-01-12 17:39 ` Ed White
2015-01-12 17:43 ` Ian Jackson
2015-01-12 17:50 ` Ed White
2015-01-12 18:00 ` Ian Jackson
2015-01-12 18:31 ` Ed White
2015-01-13 10:21 ` Tamas K Lengyel
2015-01-13 18:25 ` Ed White
2015-01-13 11:16 ` Ian Jackson
2015-01-12 17:51 ` Andrew Cooper
2015-01-13 19:01 ` Andrew Cooper
2015-01-13 20:02 ` Ed White
2015-01-13 20:45 ` Andrew Cooper
2015-01-13 21:30 ` Ed White
2015-01-14 7:04 ` Jan Beulich
2015-01-14 10:31 ` Tamas K Lengyel
2015-01-14 11:09 ` Jan Beulich
2015-01-14 11:28 ` Tamas K Lengyel
2015-01-14 17:35 ` Ed White [this message]
2015-01-15 8:16 ` Jan Beulich
2015-01-15 17:28 ` Ed White
2015-01-15 17:45 ` Tim Deegan
2015-01-15 18:44 ` Ed White
2015-03-04 23:06 ` Tamas K Lengyel
2015-03-04 23:41 ` Ed White
2015-03-05 10:51 ` Tamas K Lengyel
2015-03-13 17:38 ` Ed White
2015-03-05 10:36 ` Tim Deegan
2015-03-05 10:58 ` Tamas K Lengyel
2015-03-05 11:13 ` Tim Deegan
2015-01-16 7:35 ` Jan Beulich
2015-01-16 16:54 ` Ed White
2015-01-15 10:39 ` Tamas K Lengyel
2015-01-15 17:31 ` Ed White
2015-01-16 10:43 ` Tamas K Lengyel
2015-01-16 17:21 ` Ed White
2015-03-05 13:45 ` Egger, Christoph
2015-01-14 7:01 ` Jan Beulich
2015-01-15 16:15 ` Tim Deegan
2015-01-15 18:23 ` Ed White
2015-01-16 8:12 ` Jan Beulich
2015-01-16 17:01 ` Ed White
2015-01-16 18:33 ` Tim Deegan
2015-01-16 20:32 ` Ed White
2015-01-17 9:34 ` Tim Deegan
2015-01-16 21:43 ` Ed White
2015-01-17 9:49 ` Tim Deegan
2015-01-19 19:35 ` Ed White
2015-01-17 9:31 ` Tim Deegan
2015-01-17 15:01 ` Andrew Cooper
2015-01-19 12:17 ` Tim Deegan
2015-01-19 21:54 ` Ed White
2015-01-20 8:47 ` Jan Beulich
2015-01-20 18:43 ` Ed White
2015-01-22 15:42 ` Tim Deegan
2015-01-22 19:15 ` Ed White
2015-03-25 17:41 ` Ed White
2015-03-26 10:40 ` Tim Deegan
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=54B6A8D9.904@intel.com \
--to=edmund.h.white@intel.com \
--cc=JBeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=keir@xen.org \
--cc=tamas.lengyel@zentific.com \
--cc=tim@xen.org \
--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 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.