Re: [RFC 6/7] x86/asm: Remap the TSS into the cpu entry area

From: Dave Hansen
Date: Mon Nov 13 2017 - 14:22:57 EST


On 11/10/2017 08:05 PM, Andy Lutomirski wrote:
> diff --git a/arch/x86/include/asm/fixmap.h b/arch/x86/include/asm/fixmap.h
> index fbc9b7f4e35e..8a9ba5553cab 100644
> --- a/arch/x86/include/asm/fixmap.h
> +++ b/arch/x86/include/asm/fixmap.h
> @@ -52,6 +52,13 @@ extern unsigned long __FIXADDR_TOP;
> struct cpu_entry_area
> {
> char gdt[PAGE_SIZE];
> +
> + /*
> + * The gdt is just below cpu_tss and thus serves (on x86_64) as a
> + * a read-only guard page for the SYSENTER stack at the bottom
> + * of the TSS region.
> + */
> + struct tss_struct tss;
> };
>

Aha, and here's the place that you need sizeof(tss_struct) to be nice
and page-aligned.

But why don't we just do:

char tss_space[PAGE_SIZE*something];

?