[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the pagetable_reserve PVOPS
On Tue, 14 Aug 2012, Attilio Rao wrote: > The informations added on the hook are: > - Native behaviour > - Xen specific behaviour > - Logic behind the Xen specific behaviour > - PVOPS semantic > > Signed-off-by: Attilio Rao <attilio.rao@xxxxxxxxxx> Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx> > arch/x86/include/asm/x86_init.h | 19 +++++++++++++++++-- > 1 files changed, 17 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h > index 38155f6..b22093c 100644 > --- a/arch/x86/include/asm/x86_init.h > +++ b/arch/x86/include/asm/x86_init.h > @@ -72,8 +72,23 @@ struct x86_init_oem { > * struct x86_init_mapping - platform specific initial kernel pagetable setup > * @pagetable_reserve: reserve a range of addresses for kernel > pagetable usage > * > - * For more details on the purpose of this hook, look in > - * init_memory_mapping and the commit that added it. > + * It does reserve a range of pages, to be used as pagetable pages. > + * The start and end parameters are expected to be contained in the > + * [pgt_buf_start, pgt_buf_top] range. > + * The native implementation reserves the pages via the memblock_reserve() > + * interface. > + * The Xen implementation, besides reserving the range via > memblock_reserve(), > + * also sets RW the remaining pages contained in the ranges > + * [pgt_buf_start, start) and [end, pgt_buf_top). > + * This is needed because the range [pgt_buf_start, pgt_buf_top] was > + * previously mapped read-only by xen_set_pte_init: when running > + * on Xen all the pagetable pages need to be mapped read-only in order to > + * avoid protection faults from the hypervisor. However, once the correct > + * amount of pages is reserved for the pagetables, all the others contained > + * in the range must be set to RW so that they can be correctly recycled by > + * the VM subsystem. > + * This operation is meant to be performed only during init_memory_mapping(), > + * just after space for the kernel direct mapping tables is found. > */ > struct x86_init_mapping { > void (*pagetable_reserve)(u64 start, u64 end); > -- > 1.7.2.5 > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |