All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gleb Natapov <gleb@redhat.com>
To: Jan Kiszka <jan.kiszka@web.de>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>,
	Isaku Yamahata <yamahata@valinux.co.jp>,
	Alex Williamson <alex.williamson@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [Qemu-devel] Why does -device qxl-vga not suppress default vga?
Date: Wed, 18 May 2011 11:18:42 +0300	[thread overview]
Message-ID: <20110518081842.GX19019@redhat.com> (raw)
In-Reply-To: <4DD37D2A.3060006@web.de>

On Wed, May 18, 2011 at 10:02:50AM +0200, Jan Kiszka wrote:
> On 2011-05-18 09:47, Gleb Natapov wrote:
> > On Wed, May 18, 2011 at 09:19:07AM +0200, Jan Kiszka wrote:
> >> On 2011-05-17 09:52, Markus Armbruster wrote:
> >>> Jan Kiszka <jan.kiszka@siemens.com> writes:
> >>>
> >>>> On 2011-05-16 09:28, Gerd Hoffmann wrote:
> >>>>> On 05/13/11 16:18, Markus Armbruster wrote:
> >>>>>> VGA, cirrus-vga and vmware-svga do.  Gerd, you added it (commit
> >>>>>> a19cbfb3), care to explain?
> >>>>>
> >>>>> Just forgot to add it to the list when merging.
> >>>>> I'll go stuff a patch into the spice patch queue.
> >>>>>
> >>>>> Does "-device VGA" work these days btw?
> >>>>> Last time I tries it didn't due to some init order issues.
> >>>>
> >>>> I've (mostly) fixed the PAM/SMRAM stuff that still breaks this. Will
> >>>> post the series soon.
> >>>
> >>> Good to know, thanks!
> >>
> >> I'm afraid I was too optimistic. Further testing revealed a regression
> >> of my series which is fundamentally coupled to the QEMU limitation of
> >> tracking the physical memory mapping at page level: even with lots of
> >> hacks applied, KVM runs out of slots in certain setups when replaying
> >> the original memory mapping from the i440fx cache.
> >>
> > KVM memory slot handling code doesn't do a good job of merging two
> > adjacent memory areas into one slot which only magnifies the small
> > number of slots problem.
> 
> That's partly due to legacy kernels without
> KVM_CAP_JOIN_MEMORY_REGIONS_WORKS.
> 
But this is not a good excuse for no doing merges if kernel allows it :)

> > Of course guest may program i440fx in such a
> > way that merging will not be possible and the only way to handle such
> > config will be allow for more memory slots, but the only part of a gust
> > that program such low level detail is BIOS and it doesn't do that.
> 
> Right, that's something which would still require more work on KVM side
> to allow for more slots. We had this discussion recently.
> 
> Still, it should not have be KVM's or vhost's or i440fx'es job to
> maintain their own slot tables in such details. They should be told via
> a CPUPhysMemoryClient callback that slot X goes away and slots Y and Z
> appear, or that slot X changes in some way. They should be able to rely
> on the core reporting the optimal set of slots.
Yes, memory slot code was sort of hacked into qemu memory model.

> 
> > 
> >> Yes, I could hack the third slot tracking algorithm, now into the i440fx
> >> code, but that appears to be completely. I think we better finally
> >> renovate that QEMU area, simplifying KVM and vhost memory clients,
> >> allowing for correct PAM/SMRAM emulation without hacks, and ideally also
> >> saving tons of memory by reducing the number of PhysPageDesc
> >> (specifically with multi-GB guest memory - something the PhysPageDesc
> >> tree was not designed for).
> >>
> >> If anyone has good design ideas in mind or some helping hands free,
> >> please speak up!
> 
> I think we are lucky: PhysPageDesc is an exec.c-internal thing we should
> be able to change without affecting other parts of QEMU. E.g. we could
> replace the two-level page tree with a tree of memory slots and maintain
> its layout in an optimal way, ie. merge adjacent slots and report
> changes on that base via set_memory.
> 
> Jan
> 



--
			Gleb.

  reply	other threads:[~2011-05-18  8:18 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-13 14:18 [Qemu-devel] Why does -device qxl-vga not suppress default vga? Markus Armbruster
2011-05-16  7:28 ` Gerd Hoffmann
2011-05-16  7:43   ` Jan Kiszka
2011-05-17  7:52     ` Markus Armbruster
2011-05-18  7:19       ` Jan Kiszka
2011-05-18  7:47         ` Gleb Natapov
2011-05-18  8:02           ` Jan Kiszka
2011-05-18  8:18             ` Gleb Natapov [this message]
2011-05-16  8:05   ` Markus Armbruster
2011-05-18 12:32   ` Markus Armbruster

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=20110518081842.GX19019@redhat.com \
    --to=gleb@redhat.com \
    --cc=alex.williamson@redhat.com \
    --cc=armbru@redhat.com \
    --cc=jan.kiszka@web.de \
    --cc=kraxel@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yamahata@valinux.co.jp \
    /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.