[Lguest] lguest: mapping switcher would thwack fixmap

Rusty Russell rusty at rustcorp.com.au
Thu Apr 11 13:44:55 EST 2013


Paul Bolle <pebolle at tiscali.nl> writes:

> 0) Loading the lg module (on v3.8.5) triggers an error:
>     lguest: mapping switcher would thwack fixmap
>
> 1) I'm not enitrely sure what the fixmap is, but dmesg tells me:
>     kernel: [    0.000000]     fixmap  : 0xffa95000 - 0xfffff000   (5544 kB)

Wow, you too... how many cpus do you have?  Looks like NR_CPUS is huge,
leading to a massive fixmap.

> @@ -21,7 +21,7 @@
>  #ifdef CONFIG_X86_PAE
>  #define SWITCHER_ADDR 0xFFE00000
>  #else
> -#define SWITCHER_ADDR 0xFFC00000
> +#define SWITCHER_ADDR 0xFFA00000
>  #endif
>
>  /* Found in switcher.S */
>
> 3) But if I then try to actually run the lguest tool, that machine
> reboots. I have no clue why. (An uneducated guess would be because of
> "triple fault".)

Yeah, that would be the reason :)

> 4) Any idea what could be going on? And any suggestion to fix this?

Well, we only map the top switcher PGD entry, we need to change that to
a loop.  It's kind of assumed by the page table code:

/*
 * The Switcher uses the complete top PTE page.  That's 1024 PTE entries (4MB)
 * or 512 PTE entries with PAE (2MB).
 */
#define SWITCHER_PGD_INDEX (PTRS_PER_PGD - 1)

We should be able to modify that with some careful work.  I'll see what
I can do...

Thanks,
Rusty.


More information about the Lguest mailing list