xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: "Alex Braunegg" <alex.braunegg@gmail.com>
To: xen-devel@lists.xen.org
Subject: [QUESTION] x86_64 -> i386/i686 CPU translation between xl and qemu binary?
Date: Fri, 5 Feb 2016 09:06:55 +1100	[thread overview]
Message-ID: <56b3cb85.c542620a.6af1e.ffff9622@mx.google.com> (raw)

Hi all,

Following on from Steven's question
(http://lists.xen.org/archives/html/xen-devel/2016-02/msg00801.html) - I
have a question around xl's usage of the 'qemu-system-i386' binary

When I was testing the changes required for enabling websockets, I was
testing qemu by itself (to validate that vnc & websockets were working
through qemu) by using the a command similar to the following:

	/usr/lib/xen/bin/qemu-system-i386 -boot d -cdrom
/storage0/data-shares/iso/CentOS-6.5-x86_64-minimal.iso -vnc
:1,websocket,x509=/etc/pki/xen

In this case, proceeding past the 'Install' selection of the ISO Grub menu
always resulted in the following error:

	This kernel requires an x86_64 CPU but only detected an i686 CPU
	Unable to boot - please use a kernel appropriate for your CPU

I get this and understand why - I invoked qemu using 'qemu-system-i386'
which is emulating an i386 / i686 system.

This is where things get interesting - consider the following HVM
configuration (test2.cfg):

------------------------------------------

builder='hvm'
memory = 512
shadow_memory = 8
uuid = '4789b84d-3cdd-409f-9899-88bb13652176'
name = 'test2'
vif = [ 'bridge=br0, mac=00:16:3e:f1:48:8c' ]
disk = [
'/dev/zvol/storage0/xen/test2/disk_sda,,hda','/storage0/data-shares/iso/Cent
OS-6.5-x86_64-minimal.iso,,hdc,cdrom' ]
boot='cd'
sdl=0
vnc=1
vncconsole=1
vnclisten='0.0.0.0'
stdvga=1
serial='pty'
usbdevice='tablet'
vncpasswd='12fDKOkCEZ'
vncdisplay=0
localtime=1
audio='1'
soundhw='ac97'

------------------------------------------

When the configuration file is used via 'xl':

	xl create /etc/xen/config/test2.cfg

The virtual machine starts without issue, there is no problem installing the
system, there is no OS warning about the CPU type. 

Looking at the ps output:

------------------------------------------

root     30511 46.4  0.1 398728  1860 ?        RLsl 08:47   0:27
/usr/lib/xen/bin/qemu-system-i386 -xen-domid 6 -chardev
socket,id=libxl-cmd,path=/var/run/xen/qmp-libxl-6,server,n
owait -no-shutdown -mon chardev=libxl-cmd,mode=control -chardev
socket,id=libxenstat-cmd,path=/var/run/xen/qmp-libxenstat-6,server,nowait
-mon chardev=libxenstat-cmd,mode=control
-nodefaults -name test2 -vnc
0.0.0.0:0,websocket,x509=/etc/pki/xen,password,to=99 -display none -serial
pty -device VGA,vgamem_mb=16 -boot order=cd -usb -usbdevice tablet -soundhw
 ac97 -device rtl8139,id=nic0,netdev=net0,mac=00:16:3e:f1:48:8c -netdev
type=tap,id=net0,ifname=vif6.0-emu,script=no,downscript=no -machine xenfv -m
496 -drive file=/dev/zvol/stor
age0/xen/test2/disk_sda,if=ide,index=0,media=disk,format=raw,cache=writeback
-drive
file=/storage0/data-shares/iso/CentOS-6.5-x86_64-minimal.iso,if=ide,index=2,
readonly=on,media=c
drom,format=raw,cache=writeback,id=ide-5632

------------------------------------------

So - to me it appears that xl is performing some sort of x86_64 -> i386/i686
instruction translation to make things work.

Would this not be introducing a performance impediment by having some sort
of extra translation processing going on between xl and the qemu binary?




Best regards,

Alex

             reply	other threads:[~2016-02-04 22:06 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-04 22:06 Alex Braunegg [this message]
2016-02-04 22:22 ` [QUESTION] x86_64 -> i386/i686 CPU translation between xl and qemu binary? Andrew Cooper
2016-02-04 23:14   ` Steven Haigh
2016-02-05  0:12     ` Andrew Cooper
2016-02-05  9:56       ` Ian Campbell
2016-02-04 23:44   ` Alex Braunegg
2016-02-05  0:04     ` Andrew Cooper
2016-02-05  0:18       ` Alex Braunegg

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=56b3cb85.c542620a.6af1e.ffff9622@mx.google.com \
    --to=alex.braunegg@gmail.com \
    --cc=xen-devel@lists.xen.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).