From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v6 01/15] ARM: Add page table and page defines needed by KVM
Date: Thu, 24 Jan 2013 17:13:49 +0000 [thread overview]
Message-ID: <20130124171349.GH18233@arm.com> (raw)
In-Reply-To: <CANM98q+mmU4R1yQ7mnp_QynhX4mbBiViP96FMjSob=fzAHLp6Q@mail.gmail.com>
On Thu, Jan 24, 2013 at 05:04:32PM +0000, Christoffer Dall wrote:
> On Thu, Jan 24, 2013 at 12:02 PM, Catalin Marinas
> <catalin.marinas@arm.com> wrote:
> > On Thu, Jan 24, 2013 at 04:05:33PM +0000, Christoffer Dall wrote:
> >> On Thu, Jan 24, 2013 at 6:39 AM, Catalin Marinas
> >> <catalin.marinas@arm.com> wrote:
> >> > On Wed, Jan 16, 2013 at 05:57:26PM +0000, Christoffer Dall wrote:
> >> >> @@ -82,6 +85,10 @@ extern pgprot_t pgprot_kernel;
> >> >> #define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY)
> >> >> #define PAGE_KERNEL _MOD_PROT(pgprot_kernel, L_PTE_XN)
> >> >> #define PAGE_KERNEL_EXEC pgprot_kernel
> >> >> +#define PAGE_HYP _MOD_PROT(pgprot_kernel, L_PTE_HYP)
> >> >> +#define PAGE_HYP_DEVICE _MOD_PROT(pgprot_hyp_device, L_PTE_HYP)
> >> >> +#define PAGE_S2 _MOD_PROT(pgprot_s2, L_PTE_S2_RDONLY)
> >> >> +#define PAGE_S2_DEVICE _MOD_PROT(pgprot_s2_device, L_PTE_USER | L_PTE_S2_RDONLY)
> >> >
> >> > Are these S2 read-only by default?
> >>
> >> not sure I understand what you're asking here?
> >
> > Why do you pass L_PTE_S2_RDONLY? Do you need to restrict guest writes
> > via the stage 2 attributes?
> >
> yes, for example when KSM merges two pages, then it must be mapped
> read-only to the guest so that we catch writes and perform COW.
OK, so you want the default to be read-only unless write access is
required and you perform an 'or' with L_PTE_S2_RDWR. Sounds fine.
--
Catalin
WARNING: multiple messages have this Message-ID (diff)
From: Catalin Marinas <catalin.marinas@arm.com>
To: Christoffer Dall <c.dall@virtualopensystems.com>
Cc: "kvm@vger.kernel.org" <kvm@vger.kernel.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"kvmarm@lists.cs.columbia.edu" <kvmarm@lists.cs.columbia.edu>,
Marcelo Tosatti <mtosatti@redhat.com>,
Will Deacon <Will.Deacon@arm.com>
Subject: Re: [PATCH v6 01/15] ARM: Add page table and page defines needed by KVM
Date: Thu, 24 Jan 2013 17:13:49 +0000 [thread overview]
Message-ID: <20130124171349.GH18233@arm.com> (raw)
In-Reply-To: <CANM98q+mmU4R1yQ7mnp_QynhX4mbBiViP96FMjSob=fzAHLp6Q@mail.gmail.com>
On Thu, Jan 24, 2013 at 05:04:32PM +0000, Christoffer Dall wrote:
> On Thu, Jan 24, 2013 at 12:02 PM, Catalin Marinas
> <catalin.marinas@arm.com> wrote:
> > On Thu, Jan 24, 2013 at 04:05:33PM +0000, Christoffer Dall wrote:
> >> On Thu, Jan 24, 2013 at 6:39 AM, Catalin Marinas
> >> <catalin.marinas@arm.com> wrote:
> >> > On Wed, Jan 16, 2013 at 05:57:26PM +0000, Christoffer Dall wrote:
> >> >> @@ -82,6 +85,10 @@ extern pgprot_t pgprot_kernel;
> >> >> #define PAGE_READONLY_EXEC _MOD_PROT(pgprot_user, L_PTE_USER | L_PTE_RDONLY)
> >> >> #define PAGE_KERNEL _MOD_PROT(pgprot_kernel, L_PTE_XN)
> >> >> #define PAGE_KERNEL_EXEC pgprot_kernel
> >> >> +#define PAGE_HYP _MOD_PROT(pgprot_kernel, L_PTE_HYP)
> >> >> +#define PAGE_HYP_DEVICE _MOD_PROT(pgprot_hyp_device, L_PTE_HYP)
> >> >> +#define PAGE_S2 _MOD_PROT(pgprot_s2, L_PTE_S2_RDONLY)
> >> >> +#define PAGE_S2_DEVICE _MOD_PROT(pgprot_s2_device, L_PTE_USER | L_PTE_S2_RDONLY)
> >> >
> >> > Are these S2 read-only by default?
> >>
> >> not sure I understand what you're asking here?
> >
> > Why do you pass L_PTE_S2_RDONLY? Do you need to restrict guest writes
> > via the stage 2 attributes?
> >
> yes, for example when KSM merges two pages, then it must be mapped
> read-only to the guest so that we catch writes and perform COW.
OK, so you want the default to be read-only unless write access is
required and you perform an 'or' with L_PTE_S2_RDWR. Sounds fine.
--
Catalin
next prev parent reply other threads:[~2013-01-24 17:13 UTC|newest]
Thread overview: 92+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-01-16 17:57 [PATCH v6 00/15] KVM/ARM Implementation Christoffer Dall
2013-01-16 17:57 ` Christoffer Dall
2013-01-16 17:57 ` [PATCH v6 01/15] ARM: Add page table and page defines needed by KVM Christoffer Dall
2013-01-16 17:57 ` Christoffer Dall
2013-01-24 11:39 ` Catalin Marinas
2013-01-24 11:39 ` Catalin Marinas
2013-01-24 16:05 ` Christoffer Dall
2013-01-24 16:05 ` Christoffer Dall
2013-01-24 17:02 ` Catalin Marinas
2013-01-24 17:02 ` Catalin Marinas
2013-01-24 17:04 ` Christoffer Dall
2013-01-24 17:04 ` Christoffer Dall
2013-01-24 17:13 ` Catalin Marinas [this message]
2013-01-24 17:13 ` Catalin Marinas
2013-01-24 17:25 ` Christoffer Dall
2013-01-24 17:25 ` Christoffer Dall
2013-01-16 17:57 ` [PATCH v6 02/15] ARM: Section based HYP idmap Christoffer Dall
2013-01-16 17:57 ` Christoffer Dall
2013-01-24 14:32 ` Catalin Marinas
2013-01-24 14:32 ` Catalin Marinas
2013-01-24 16:36 ` Christoffer Dall
2013-01-24 16:36 ` Christoffer Dall
2013-01-24 17:05 ` Catalin Marinas
2013-01-24 17:05 ` Catalin Marinas
2013-01-24 17:10 ` Christoffer Dall
2013-01-24 17:10 ` Christoffer Dall
2013-01-16 17:57 ` [PATCH v6 03/15] KVM: ARM: Initial skeleton to compile KVM support Christoffer Dall
2013-01-16 17:57 ` Christoffer Dall
2013-01-16 17:57 ` [PATCH v6 04/15] KVM: ARM: Hypervisor initialization Christoffer Dall
2013-01-16 17:57 ` Christoffer Dall
2013-01-24 15:45 ` Catalin Marinas
2013-01-24 15:45 ` Catalin Marinas
2013-01-24 16:52 ` Christoffer Dall
2013-01-24 16:52 ` Christoffer Dall
2013-01-16 17:57 ` [PATCH v6 05/15] KVM: ARM: Memory virtualization setup Christoffer Dall
2013-01-16 17:57 ` Christoffer Dall
2013-01-16 17:58 ` [PATCH v6 06/15] KVM: ARM: Inject IRQs and FIQs from userspace Christoffer Dall
2013-01-16 17:58 ` Christoffer Dall
2013-01-16 17:58 ` [PATCH v6 07/15] KVM: ARM: World-switch implementation Christoffer Dall
2013-01-16 17:58 ` Christoffer Dall
2013-01-16 17:58 ` [PATCH v6 08/15] KVM: ARM: Emulation framework and CP15 emulation Christoffer Dall
2013-01-16 17:58 ` Christoffer Dall
2013-01-16 17:58 ` [PATCH v6 09/15] trom: Christoffer Dall <c.dall@virtualopensystems.com> Christoffer Dall
2013-01-16 17:58 ` Christoffer Dall
2013-01-16 18:14 ` [RESEND PATCH v6 09/15] KVM: ARM: User space API for getting/setting co-proc registers Christoffer Dall
2013-01-16 18:14 ` Christoffer Dall
2013-01-16 17:58 ` [PATCH v6 10/15] KVM: ARM: Demux CCSIDR in the userspace API Christoffer Dall
2013-01-16 17:58 ` Christoffer Dall
2013-01-16 17:58 ` [PATCH v6 11/15] KVM: ARM: VFP userspace interface Christoffer Dall
2013-01-16 17:58 ` Christoffer Dall
2013-01-16 17:59 ` [PATCH v6 12/15] KVM: ARM: Handle guest faults in KVM Christoffer Dall
2013-01-16 17:59 ` Christoffer Dall
2013-01-16 17:59 ` [PATCH v6 13/15] KVM: ARM: Handle I/O aborts Christoffer Dall
2013-01-16 17:59 ` Christoffer Dall
2013-01-17 16:37 ` Marc Zyngier
2013-01-17 16:37 ` Marc Zyngier
2013-01-17 17:07 ` Christoffer Dall
2013-01-17 17:07 ` Christoffer Dall
2013-01-16 17:59 ` [PATCH v6 14/15] KVM: ARM: Power State Coordination Interface implementation Christoffer Dall
2013-01-16 17:59 ` Christoffer Dall
2013-01-17 15:55 ` Marc Zyngier
2013-01-17 15:55 ` Marc Zyngier
2013-01-20 23:35 ` Christoffer Dall
2013-01-20 23:35 ` Christoffer Dall
2013-01-21 10:04 ` [kvmarm] " Marc Zyngier
2013-01-21 10:04 ` Marc Zyngier
2013-01-21 14:50 ` Christoffer Dall
2013-01-21 14:50 ` Christoffer Dall
2013-01-21 17:43 ` Marc Zyngier
2013-01-21 17:43 ` Marc Zyngier
2013-01-21 17:54 ` Christoffer Dall
2013-01-21 17:54 ` Christoffer Dall
2013-01-21 18:08 ` Marc Zyngier
2013-01-21 18:08 ` Marc Zyngier
2013-01-21 18:17 ` Peter Maydell
2013-01-21 18:17 ` Peter Maydell
2013-01-21 18:20 ` Christoffer Dall
2013-01-21 18:20 ` Christoffer Dall
2013-01-21 13:52 ` Gleb Natapov
2013-01-21 13:52 ` Gleb Natapov
2013-01-16 17:59 ` [PATCH v6 15/15] KVM: ARM: Add maintainer entry for KVM/ARM Christoffer Dall
2013-01-16 17:59 ` Christoffer Dall
2013-01-17 16:26 ` Will Deacon
2013-01-17 16:26 ` Will Deacon
2013-01-20 22:57 ` Christoffer Dall
2013-01-20 22:57 ` Christoffer Dall
2013-01-24 16:26 ` [PATCH v6 00/15] KVM/ARM Implementation Catalin Marinas
2013-01-24 16:26 ` Catalin Marinas
2013-01-24 16:36 ` Christoffer Dall
2013-01-24 16:36 ` Christoffer Dall
2013-01-24 17:14 ` Gleb Natapov
2013-01-24 17:14 ` Gleb Natapov
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=20130124171349.GH18233@arm.com \
--to=catalin.marinas@arm.com \
--cc=linux-arm-kernel@lists.infradead.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.