From: Paolo Bonzini <pbonzini@redhat.com>
To: Jim MacArthur <jim@mode7.co.uk>
Cc: kvm@vger.kernel.org
Subject: Re: Starting a VM using /dev/kvm
Date: Wed, 20 Nov 2013 18:28:57 +0100 [thread overview]
Message-ID: <528CF159.10001@redhat.com> (raw)
In-Reply-To: <CAMGYSmF9m-GWVRKugan9mcKB9Md4EXtGVjCZh-iV9d0h-SmOBw@mail.gmail.com>
Il 20/11/2013 00:56, Jim MacArthur ha scritto:
> I haven't been able to find much information on it, but by reading the
> API document and stracing qemu I've put together a small program which
> creates a VM, VCPU, and sets up some memory. All of these ioctls
> return successfully, but trying to run always returns with exit code
> 17 and suberror 1 which so far as I can tell seems to be a problem
> with page tables. I'm on an x86_64 host.
>
> The question is, how does a new vcpu start up? Will it start in full
> 64-bit mode or 16-bit real mode?
By default it start in 16-bit real mode, with CS=0xf000 and EIP=0xfff0,
but CS.base = 0xffff0000. However, you can send ioctls to modify
CR0/CR4/EFER and place the VCPU in whatever mode you'd like to have.
> And will I need a full set of
> translation tables to run a single instruction or can I just point it
> at some memory and expect it to run?
Real mode doesn't need page tables of course, and so does 32-bit
protected mode with CR0.PG=0. However, 64-bit mode only exists with
paging (and PAE) enabled. So you need page tables to enable 64-bit mode.
Paolo
next prev parent reply other threads:[~2013-11-20 17:29 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-19 23:56 Starting a VM using /dev/kvm Jim MacArthur
2013-11-20 17:28 ` Paolo Bonzini [this message]
2013-11-21 0:39 ` Jim MacArthur
2013-11-21 7:27 ` Gleb Natapov
2013-11-21 23:57 ` Jim MacArthur
2013-11-22 6:56 ` Gleb Natapov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=528CF159.10001@redhat.com \
--to=pbonzini@redhat.com \
--cc=jim@mode7.co.uk \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.