[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Emulated vgas problems with qemu upstream on Xen



Il 06/03/2013 11:38, Frediano Ziglio ha scritto:
Some times ago I have reported several times the problem with emulated vgas with
qemu upstream on xen.
For example this was my last report about:
WIth both cirrus and stdvga under qemu upstream with xen the performance are
poor even if I increase video memory, respect to qemu-only and qemu-kvm
(without xen).
Qxl is definitely not working under xen and conversely is ok on qemu-kvm and
qemu-only.

It seem that xen need change and/or fix to have full working emulated vga on
qemu upstream.
At the moment all emulated vgas have problems with xen that aren't present
without xen.

The performance differences are noticeable (in some case very big) with xen
and without xen using resolution > 1024x768.

Probably the first link explain the change/fix necessary in xen about vga
(probably in hvmloader).
Which link refer this sentence ?

The quote was only a part of a previous mail, the link refered is:
http://xenbits.xen.org/gitweb/?p=staging/qemu-upstream-unstable.git;a=blob_plain;f=docs/specs/standard-vga.txt;hb=HEAD


I tried to do that more times failing but unfortunately I do not have
sufficient knowledge about this.
Can someone help me please?

I think this is important, years ago the minimal resolution used on desktop
was 1024x768, and no problem with actual vga setting but now minimal
resolution seems increased to up 1366x768 and many people are using even
higher resolutions.
http://www.screenresolution.org/year-2013/
When I started testing qemu upstream at the end of 2011 there were critical bugs
on videoram setting resolved with patches on qemu and xen.
I did recently libxl patch that correctly set videoram and add qxl support but
it seems that on xen with qemu upstream all the emulated vga working only as
standard vga.
What I mean is: even if I see the total amout of ram (i.e. 64 mb) on guest, the
performances are poor in special mode when I increase the resolution even in
real simple operations like screen updates.

I spent some days to find a solution, after comparative tests with qemu-kvm and
qemu-only when using same build of qemu and seabios on both linux/windows
domU/vm the problem seem of hvmloader.
I have tried to find what is exactly the culprit to no avail.
I don't have knownladge about bios parts.
I also tried to see the differences of seabios tables between xen and kvm or
qemu-only with:

-chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios

but Xen domU doesn't show the details (probably because seabios with xen uses
the tables passed by hvmloader)

Today I also tested this patches probably related to solution:

[PATCH]xen/hvmloader: define a TOM register
[PATCH] qemu: define a TOM register to report the base of PCI

The problem persists, probably this is only partial solution about hvmloader
changes needed for full support upstream qemu vgas.

This is an important problem to solve, not only for support bigger resolutions
and good support of a opensource vdi solution but also because with stdvga is
impossible to use some resolutions, for example the actually most used 1366x768.
(screenshots of examples with windows 7 on attachment)
Screenshots show list of resolutions supported by standard vga and qxl full
working.

There is also a strange difference on bios info line of qxl between xen and kvm.
Someone tells that hvmloader do not cause problem with upstream qemu vgabioses,
the difference is only caused by hvmloader generated tables or probably or is
there another problem to found?

I also did some tests with ovmf after applied this patch:
http://lists.xen.org/archives/html/xen-devel/2013-02/msg01363.html
and using updated tianocore git, but it seems there are more work to do on
hvmloader for complete integration.
I think like others that a hvmloader rewrite more minimal without including
firmwares in hvmloader but linking them instead and using ovmf with seabios
included (for support both eufi and bios) will be the best definitive solution
for future of hvm domU.
Probably now the more important thing is fixes to hvmloader with seabios to have
a full feature and stable qemu upstream on xen 4.3.

Is there someone that can help me to solve emulated vgas problem with upstream
qemu?

Thanks for any reply and sorry for my bad english.

Could you give more details. Are you measuring performance or just are
sensible slow? Did you try with qemu traditional and works better? Which
system are you using and which resolution are you trying to use? Do you
use vnc or other graphics output?

We are using qemu upstream since over one year, all performances except video are much better than traditional one, so we would prefer testing/support it instead of traditional. Dom0 is Wheezy with kernel from package, xen-unstable from source and both qemu from experimental package recompiled and qemu-xen from xen source. DomU target is mainly Windows 7 pro 64 bit, tested also some linux hvm domU (Wheezy, Precise and Quantal).
We use Linux PV domU only with server without DE.
Mainly used resolution and problematic are 1366x768, 1920x1080, 1600x900.
Our customers need to access Windows domU with rdp sessions for now.
Windows 7 had cirrus driver dropped, so forced as to use standard vga in our domUs until qxl will be full working on xen (spice with qxl is our final goal). Standard vga is missing some resoution with vnc or spice, for example the more used 1366x768. The performance problem is probably due to a lack of use of effective videoram size. For example: on cirrus it seems to work because if videoram passed is minor of qemu parameter, vga.vram_size_mb gives a correct "xen out of memory error" on qemu-dm log. With stdvga we cannot replicate the above error, so I think that real videoram used was forced to something hardcoded (probably in hvmloader and/or vgabios). We got the error only if we set <16mb videoram (default value of stdvga is 16 mb with qemu 1.4). Performance is poorer increasing resolutions over 1024x768 (even simple screen refresh operation).



There could be problems in the video resolution informations. Other
issue could happen if OS have problems detecting linear frame pointer
and fall back to page switching. I had a similar problem with Qemu
traditional and Windows 8.

Where I can check this kind of problems?

It's not hard to backport new resolutions.

Frediano




Attachment: smime.p7s
Description: Firma crittografica S/MIME

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.