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

Re: [Xen-devel] gross qemu behavior

2014-03-29 8:31 GMT+01:00 Paolo Bonzini <pbonzini@xxxxxxxxxx>:
Il 28/03/2014 19:30, Stefano Stabellini ha scritto:

On Fri, 28 Mar 2014, Paolo Bonzini wrote:
Il 28/03/2014 18:52, Stefano Stabellini ha scritto:
This is a thorny issue, fixing this behavior is not going to be trivial:

- The hypervisor/libxc does not currently expose a
  xc_domain_remove_from_physmap function.

- QEMU works by allocating memory regions at the end of the guest
  physmap and then moving them at the right place.

- QEMU can destroy a memory region and in that case we could free the
  memory and remove it from the physmap, however that is NOT what QEMU
  does with the vga ROM. In that case it calls
  memory_region_del_subregion, so we can't be sure that the ROM won't be
  mapped again, therefore we cannot free it. We need to move it
  somewhere else, hence the problem.

Right; QEMU cannot know either if the ROM will be mapped again (examples
include "cd /sys/bus/pci/devices/0000:0:03.0 && echo 1 > rom && cat rom" or a
warm reset).

But fortunately we don't actually need to add the VGA ROM to the guest
physmap for it to work, QEMU can trap and emulate. In fact even today we
are not mapping it at the right place anyway, see xen_set_memory:

But how can you execute from the VGA ROM then?

I don't know, I guess we don't? In that case why does it work today?

Right, the ROM is copied down to low memory by firmware (hvmloader?).

Only vgabios and other rom of qemu traditional are include and loaded by hvmloader.
Time ago when I was trying to solve some problems with the emulated vgas I came to doubt that the vgabios of qemu upstream were not loaded or used correctly.
Someone had told me that they were loaded automatically from qemu when you use the qemu upstream.
Unfortunately I do not have enough knowledge and are not able to find exactly the problems or things missing in xen to solve problems with the emulated vgas.
I did a lot of tests, comparing with kvm using same qemu parameters used with xen showed almost always higher video performance on kvm and qxl was not working on xen but showing too few errors/details in logs that I posted long ago, unfortunately no answers.
It seemed to me from what little I knew that was not allocated or used correctly all the ram or one or more regions (having memory errors in logs) and / or not being loaded or used properly the vgabios.
Seems that in this thread you are probably trying to solve problems including the ones I found.

Last mail of my qxl tests for example is this:
And the memory error on domU logs of this test was:
ioremap error for 0xfc001000-0xfc002000, requested 0x10, got 0x0

There was also another test maybe 2 years ago for which data have made me doubt the proper loading or use of vgabios stdvga with xen and qemu upstream but unfortunately can not find it now.

I will try to help with test and post results/details if I can.
For example some posts ago I see Stabellini patch that seems about load of vgabios and other roms, should be tested?

Thanks for any reply and sorry for my bad english.

Also, how do you migrate its contents?

That would also not work. We would have to re-initialize it in QEMU on
the receiving end.

That is problematic.  It would mean that a system reset after migration may auto-upgrade some parts of the firmware.


Xen-devel mailing list

Xen-devel mailing list



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