|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] x86/mm: Make PV linear pagetables optional
>>> On 17.10.17 at 19:10, <george.dunlap@xxxxxxxxxx> wrote:
> --- a/docs/misc/xen-command-line.markdown
> +++ b/docs/misc/xen-command-line.markdown
> @@ -1422,6 +1422,22 @@ The following resources are available:
> CDP, one COS will corespond two CBMs other than one with CAT, due to the
> sum of CBMs is fixed, that means actual `cos_max` in use will
> automatically
> reduce to half when CDP is enabled.
> +
> +### pv-linear-pt
> +> `= <boolean>`
> +
> +> Default: `false`
This looks to be wrong now.
> --- a/xen/arch/x86/Kconfig
> +++ b/xen/arch/x86/Kconfig
> @@ -97,6 +97,27 @@ config TBOOT
> Technology (TXT)
>
> If unsure, say Y.
> +
> +config PV_LINEAR_PT
> + bool "Support for PV linear pagetables"
> + depends on PV
For this to look reasonable in a hierarchical menu, it should follow
PV (with - if there were any - only other options also depending on
PV in between) rather than being added at a random place.
> + default y
> + ---help---
> + Linear pagetables (also called "recursive pagetables") refers
> + to the practice of a guest operating system having pagetable
The two lines above should match in how they're being indented.
> --- a/xen/arch/x86/mm.c
> +++ b/xen/arch/x86/mm.c
> @@ -587,6 +587,12 @@ static void put_data_page(
> put_page(page);
> }
>
> +#ifdef CONFIG_PV_LINEAR_PT
> +static void zero_linear_entries(struct page_info *pg)
When framing multiple functions, I think it is better to have a blank
line between #ifdef and first piece of code (as well as around the
#else and prior to the #endif), and I think the #else and #endif
would also benefit from having /* PV_LINEAR_PT */ or some such
added on their lines.
> @@ -719,6 +735,20 @@ get_##level##_linear_pagetable(
> \
> \
> return 1; \
> }
> +#define LPT_ASSERT ASSERT
> +#else
> +#define define_get_linear_pagetable(level) \
> +static int \
> +get_##level##_linear_pagetable( \
> + level##_pgentry_t pde, unsigned long pde_pfn, struct domain *d) \
> +{ \
> + return 0; \
> +}
> +#define zero_linear_entries(pg)
> +#define dec_linear_uses(pg)
> +#define dec_linear_entries(pg)
Would perhaps be better if these evaluated their arguments.
> +#define LPT_ASSERT(x)
> +#endif
>
>
> bool is_iomem_page(mfn_t mfn)
Could you arrange for the double blank lines to go away here with
the blank line additions asked for above?
> @@ -2330,8 +2360,8 @@ static int _put_page_type(struct page_info *page, bool
> preemptible,
> * necessary anymore for a dying domain.
> */
> ASSERT(page_get_owner(page)->is_dying);
> - ASSERT(page->linear_pt_count < 0);
> - ASSERT(ptpg->linear_pt_count > 0);
> + LPT_ASSERT(page->linear_pt_count < 0);
> + LPT_ASSERT(ptpg->linear_pt_count > 0);
Other than Andrew has suggested, with these I don't think
LPT_ASSERT() can go away, unless you played tricks and forced
the function's ptpg to be NULL regardless of caller, or unless you
put the entire if() into an #ifdef.
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |