qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] KVM call minutes for 2013-08-06


From: Juan Quintela
Subject: [Qemu-devel] KVM call minutes for 2013-08-06
Date: Tue, 06 Aug 2013 17:15:28 +0200

Hi

if you find that Today minutes are better than usual,  I am learning to
delegate and ask people for help.  Thanks to:
- mst
- eduardo
- stephan


2013-08-06
----------

What libvirt needs/miss Today?
- how to handle machine types? creating them inside qemu?
- qemu --cpu help
  only shows cpus,  not what features qemu will use
- qemu -cpu host
  what does this exactly means?  kvm removes same flags.
- Important to know if migration would work.
- Machine types sometimes disable some feature, so cpu alone is not
  enough.

- if kvm initialization fails, we should fall back to tcg, depending
  of command line options.

- migration is not the only user case
  openstack choose host depending on what features the hosts have.

- not easy shortcut that creating a guest with that options and query
  if features are there or not.

- this information is "static",  but it depends on:
  * configuration files
  * machine type
  * command line options
  * ....

- So it is complicated to get it without launching a guest with the
  current command line.

- Libvirt wants it because it is slow to use it,  so they cache the information.

- Libvirt creates a big table of supported options

- At this point, libvirt don't export this information to its users

- Anthony would send a qmp command proposal to qemu-devel@

- -cpu host "is not supported from cross-machine migration"
  you need to use -cpu host to check what features the host have.

- kernel removes some features because it knows it can't be virtualised
- qemu adds some others because it knows it don't need host support
- and then lots of features in the middle

Probing for host information ("-cpu host" details):
 * Needed to find out if it's possible to create or migrate a VM, or to choose 
an appropriate host to migrate to
 * Depends on host capabilities: CPU host capabilities, kernel capabilities 
(kernel version), QEMU capabilities (kernel version)
 * Does not depend on machine-type
 * libvirt will probably want to build a table beforehand, with information 
about all hosts
 * Note that live-migration of "-cpu host" is not supported, but we use the 
"-cpu host" results as a way to find out about host capabilities
 * Problem: allowing it to be probed using "-machine none"
   * Needs KVM to be initialized
   * Solution: add KVM to be requested with fallback to TCG (does it work 
today?)
   * libvirt should be able to create a "-cpu host" CPU object, query for its 
information, and destroy it
Probing for the actual results of a given machine-type + CPU model combination:
 * Depends on machine-type
 * MUST NOT depend on host capabilities, otherwise migration would be already 
broken
 * Probably no need to build a large table with all machine-type/CPU-models 
combinations beforehand. Just querying for the information on the VM before 
migrating it should be enough?
 * Anyway, if libvirt needs to query for all combinations beforehand, we may 
provide a QMP command to apply compat properties from a machine-type 
(suggestion by Anthony)


* pvpanic
- was added by default in 1.5, this might have been too rash:
        - might change guest behaviour if guest is set to reboot on panic
        - might cause slightly annoying warnings/queries from device
          manager
        - generally somewhat inelegant/non-symmetrical, libvirt
          developers prefer "no magic devices"
- conclusions:
        - for -M 1.6, will change QEMU don't add by default, teach libvirt to 
add
          with -device pvpanic
        - separately discuss doing same for 1.5 stable branch and -M 1.5
          on mailing list

* reverse execution for qemu
  caturing IO is complicated
  determinising and the clocks
  how it relates with kemari
  you don't need to wait for two weeks.
  they do a fork as an snapshot instead of getting the machine to snapshot 
itself.
  merging forks and threads: enough said.
  icount changes for reverse execution will probably conflict with qemu-timer.c 
changes for thread-safety and AioContext timers.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]