From: Julien Grall <julien.grall@linaro.org>
To: Tamas K Lengyel <tklengyel@sec.in.tum.de>, xen-devel@lists.xen.org
Cc: ian.campbell@citrix.com, tim@xen.org, ian.jackson@eu.citrix.com,
stefano.stabellini@citrix.com, andres@lagarcavilla.org,
jbeulich@suse.com, dgdegra@tycho.nsa.gov
Subject: Re: [PATCH v4 11/16] xen/arm: Data abort exception (R/W) mem_events.
Date: Mon, 08 Sep 2014 17:25:39 -0700 [thread overview]
Message-ID: <540E4903.90001@linaro.org> (raw)
In-Reply-To: <1409907524-12509-12-git-send-email-tklengyel@sec.in.tum.de>
Hi Tamas,
On 05/09/14 01:58, Tamas K Lengyel wrote:
> #define P2M_ONE_DESCEND 0
> #define P2M_ONE_PROGRESS_NOP 0x1
> #define P2M_ONE_PROGRESS 0x10
> @@ -502,6 +568,14 @@ static int apply_one_level(struct domain *d,
> pte = mfn_to_p2m_entry(page_to_mfn(page), mattr, t, a);
> if ( level < 3 )
> pte.p2m.table = 0;
> +
> + if ( p2m_mem_access_radix_set(p2m, paddr_to_pfn(*addr), a) < 0 )
> + {
> + /* If we fail to save the setting in the Radix tree, we
> + * need to clear the PTE mem_access permissions. */
> + p2m_set_permission(&pte, pte.p2m.type, p2m_access_rwx);
> + }
> +
[..]
> @@ -538,6 +612,13 @@ static int apply_one_level(struct domain *d,
> if ( level < 3 )
> pte.p2m.table = 0; /* Superpage entry */
>
> + if ( p2m_mem_access_radix_set(p2m, paddr_to_pfn(*addr), a) < 0 )
> + {
> + /* If we fail to save the setting in the Radix tree, we
> + * need to clear the PTE mem_access permissions. */
> + p2m_set_permission(&pte, pte.p2m.type, p2m_access_rwx);
> + }
> +
Can't this be abstract to another helper?
Also is it acceptable from mem access POV to unconditionally set the
access to rwx when an error occured? Shouldn't you report an error?
> +static int p2m_set_entry(struct domain *d, paddr_t paddr, p2m_access_t p2ma)
> +{
As I said on the previous version, I still think this can be merge in
apply_p2m_changes without any difficulties.
The main reason is to avoid increasing the number of function that have
a common pattern to use the p2m. Also apply_p2m_changes have some
interesting performance improvement (such as avoid map/unmap every time
page table).
Finally, it will make life simpler when 4-Level page table will be
supported (see Ian's series [1])
[..]
> +bool_t p2m_mem_access_check(paddr_t gpa, vaddr_t gla, struct npfec npfec)
const struct npfect
[..]
> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
> index 019991f..7eb875a 100644
> --- a/xen/arch/arm/traps.c
> +++ b/xen/arch/arm/traps.c
> @@ -1852,13 +1852,38 @@ static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
[..]
> + switch ( dabt.dfsc )
> + {
> + case DABT_DFSC_PERMISSION_1:
> + case DABT_DFSC_PERMISSION_2:
> + case DABT_DFSC_PERMISSION_3:
> + {
> + struct npfec npfec = {
const as you won't modify it later.
Regards,
[1] http://lists.xen.org/archives/html/xen-devel/2014-09/msg00596.html
--
Julien Grall
next prev parent reply other threads:[~2014-09-09 0:25 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-05 8:58 [PATCH v4 00/16] Mem_event and mem_access for ARM Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 01/16] xen: Relocate mem_access and mem_event into common Tamas K Lengyel
2014-09-05 9:14 ` Jan Beulich
2014-09-05 9:45 ` Tamas K Lengyel
2014-09-05 10:07 ` Jan Beulich
2014-09-05 10:36 ` Tamas K Lengyel
2014-09-05 10:48 ` Jan Beulich
2014-09-05 10:52 ` Tamas K Lengyel
2014-09-05 11:26 ` Jan Beulich
2014-09-05 11:30 ` Tamas K Lengyel
2014-09-05 11:46 ` Jan Beulich
2014-09-05 8:58 ` [PATCH v4 02/16] xen: Relocate p2m_mem_access_resume to mem_access common Tamas K Lengyel
2014-09-05 9:16 ` Jan Beulich
2014-09-05 9:25 ` Tamas K Lengyel
2014-09-05 9:43 ` Jan Beulich
2014-09-05 9:48 ` Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 03/16] xen: Relocate struct npfec definition into common Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 04/16] xen: Relocate mem_event_op domctl and access_op memop " Tamas K Lengyel
2014-09-05 9:23 ` Jan Beulich
2014-09-05 9:29 ` Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 05/16] xen/mem_event: Clean out superfluous white-spaces Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 06/16] xen/mem_event: Relax error condition on debug builds Tamas K Lengyel
2014-09-05 9:25 ` Jan Beulich
2014-09-05 9:26 ` Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 07/16] xen/mem_event: Abstract architecture specific sanity checks Tamas K Lengyel
2014-09-05 9:28 ` Jan Beulich
2014-09-05 9:35 ` Tamas K Lengyel
2014-09-05 9:44 ` Jan Beulich
2014-09-05 9:47 ` Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 08/16] xen/mem_access: Abstract architecture specific sanity check Tamas K Lengyel
2014-09-05 9:29 ` Jan Beulich
2014-09-05 9:51 ` Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 09/16] xen/arm: p2m type definitions and changes Tamas K Lengyel
2014-09-09 0:06 ` Julien Grall
2014-09-05 8:58 ` [PATCH v4 10/16] xen/arm: Add set access required domctl Tamas K Lengyel
2014-09-09 0:07 ` Julien Grall
2014-09-12 15:54 ` Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 11/16] xen/arm: Data abort exception (R/W) mem_events Tamas K Lengyel
2014-09-09 0:25 ` Julien Grall [this message]
2014-09-05 8:58 ` [PATCH v4 12/16] xen/arm: Instruction prefetch abort (X) mem_event handling Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 13/16] xen/arm: Shatter large pages when using mem_acces Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 14/16] xen/arm: Enable the compilation of mem_access and mem_event on ARM Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 15/16] tools/libxc: Allocate magic page for mem access " Tamas K Lengyel
2014-09-05 8:58 ` [PATCH v4 16/16] tools/tests: Enable xen-access " Tamas K Lengyel
2014-09-09 0:29 ` 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=540E4903.90001@linaro.org \
--to=julien.grall@linaro.org \
--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=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 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.