Chris Emerson <[EMAIL PROTECTED]> wrote:
> I've just tested it with Linux 2.0.36, gcc 2.7.2.3, GNU ld 2.9.1, the
> stock Debian 2.0 stuff, so nothing out of the ordinary except for
> running under VMWare. Works fine.
Hmmm. I'm *really* wondering what exactly happens when you reload
the PDBR in Linux running under VMWare :-/
> I remember finding all sorts of amusing ways to reboot a PC when
> working on my OS - my favourite was forgetting to mark the PTEs in
> which the page fault handler lived as present. :-)
Yup. I managed nearly the same thing; while I took care to create
a mapping of the code page where the PDBR reloading takes place
at the same linear address as in the host, I forgot (due to a
copy-and-paste error :-/) to mark the PDE pointing to the page
table spanning that range present --> instant triple fault after
the PDBR reloading instruction ;-) Took me about five reboots to
find this :-/
Interestingly enough, after a triple fault my computer doesn't
even boot properly; it starts to boot, but then crashes somewhere
inside the BIOS ... No idea how that can happen :-/
Bye,
Ulrich