qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 6b37a2: vhost: memory sync fixes


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 6b37a2: vhost: memory sync fixes
Date: Mon, 04 Mar 2013 07:30:25 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 6b37a23df98faa26391a93373930bfb15b943e00
      
https://github.com/qemu/qemu/commit/6b37a23df98faa26391a93373930bfb15b943e00
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2013-02-26 (Tue, 26 Feb 2013)

  Changed paths:
    M hw/vhost.c

  Log Message:
  -----------
  vhost: memory sync fixes

This fixes two bugs related to memory sync during
migration:
    - ram address calculation was missing the chunk
      address, so the wrong page was dirtied
    - one after last was used instead of the
      end address of a region, which might overflow to 0
      and cause us to skip the region when the region ends at
      ~0x0ull.

Signed-off-by: Michael S. Tsirkin <address@hidden>
Tested-by: Jason Wang <address@hidden>


  Commit: 199ee608f0d08510b5c6c37f31a7fbff211d63c4
      
https://github.com/qemu/qemu/commit/199ee608f0d08510b5c6c37f31a7fbff211d63c4
  Author: Luigi Rizzo <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M net/hub.c
    M net/hub.h
    M net/net.c

  Log Message:
  -----------
  net: fix qemu_flush_queued_packets() in presence of a hub

When frontend and backend are connected through a hub as below
(showing only one direction), and the frontend (or in general, all
output ports of the hub) cannot accept more traffic, the backend
queues packets in queue-A.

When the frontend (or in general, one output port) becomes ready again,
quemu tries to flush packets from queue-B, which is unfortunately empty.

  e1000.0 <--[queue B]-- hub0port0(hub)hub0port1 <--[queue A]-- tap.0

To fix this i propose to introduce a new function net_hub_flush()
which is called when trying to flush a queue connected to a hub.

Signed-off-by: Luigi Rizzo <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 7d91ddd25e3a4e5008a2ac16127d51a34fd56bf1
      
https://github.com/qemu/qemu/commit/7d91ddd25e3a4e5008a2ac16127d51a34fd56bf1
  Author: Luigi Rizzo <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M net/queue.c

  Log Message:
  -----------
  net: fix unbounded NetQueue

In the current implementation of qemu, running without a network
backend will cause the queue to grow unbounded when the guest is
transmitting traffic.

This patch fixes the problem by implementing bounded size NetQueue,
used with an arbitrary limit of 10000 packets, and dropping packets
when the queue is full _and_ the sender does not pass a callback.

The second condition makes sure that we never drop packets that
contains a callback (which would be tricky, because the producer
expects the callback to be run when all previous packets have been
consumed; so we cannot run it when the packet is dropped).

If documentation is correct, producers that submit a callback should
stop sending when their packet is queued, so there is no real risk
that the queue exceeds the max size by large values.

Signed-off-by: Luigi Rizzo <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: ce675a7579fea498397c5d2da3c5367671e9f02a
      
https://github.com/qemu/qemu/commit/ce675a7579fea498397c5d2da3c5367671e9f02a
  Author: Jason Wang <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M net/tap.c

  Log Message:
  -----------
  tap: forbid creating multiqueue tap when hub is used

Obviously, hub does not support multiqueue tap. So this patch forbids creating
multiple queue tap when hub is used to prevent the crash when command line such
as "-net tap,queues=2" is used.

Cc: address@hidden
Signed-off-by: Jason Wang <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: d26e445c80fddcc7483b83f3115e5067fef28fe6
      
https://github.com/qemu/qemu/commit/d26e445c80fddcc7483b83f3115e5067fef28fe6
  Author: Peter Lieven <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M net/tap-linux.c
    M net/tap-linux.h

  Log Message:
  -----------
  tap: set IFF_ONE_QUEUE per default

historically the kernel queues packets two times. once
at the device and second in qdisc. this is believed to cause
interface stalls if one of these queues overruns.

setting IFF_ONE_QUEUE is the default in kernels >= 3.8. the
flag is ignored since then. see kernel commit
5d097109257c03a71845729f8db6b5770c4bbedc

Signed-off-by: Peter Lieven <address@hidden>
Acked-by: Michael S. Tsirkin <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: f6b26cf257232e5854c0e5c98a8685c625bf986e
      
https://github.com/qemu/qemu/commit/f6b26cf257232e5854c0e5c98a8685c625bf986e
  Author: Jason Wang <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M hw/virtio-net.c
    M include/net/net.h
    M net/net.c

  Log Message:
  -----------
  net: reduce the unnecessary memory allocation of multiqueue

Edivaldo reports a problem that the array of NetClientState in NICState is too
large - MAX_QUEUE_NUM(1024) which will wastes memory even if multiqueue is not
used.

Instead of static arrays, solving this issue by allocating the queues on demand
for both the NetClientState array in NICState and VirtIONetQueue array in
VirtIONet.

Tested by myself, with single virtio-net-pci device. The memory allocation is
almost the same as when multiqueue is not merged.

Cc: Edivaldo de Araujo Pereira <address@hidden>
Cc: address@hidden
Signed-off-by: Jason Wang <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 40e8c26d7b7e260cc3566c6b68cee969e816970e
      
https://github.com/qemu/qemu/commit/40e8c26d7b7e260cc3566c6b68cee969e816970e
  Author: Stefan Hajnoczi <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M hmp-commands.hx
    M qemu-options.hx

  Log Message:
  -----------
  doc: document -netdev hubport

Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: af347aa5a521555f5342e67993eb717d4f542ba8
      
https://github.com/qemu/qemu/commit/af347aa5a521555f5342e67993eb717d4f542ba8
  Author: Markus Armbruster <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M qmp-commands.hx

  Log Message:
  -----------
  qmp: netdev_add is like -netdev, not -net, fix documentation

Cc: address@hidden
Signed-off-by: Markus Armbruster <address@hidden>
Reviewed-by: Laszlo Ersek <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 2af234e61d59f39ae16ba882271e7c4fef2c41c1
      
https://github.com/qemu/qemu/commit/2af234e61d59f39ae16ba882271e7c4fef2c41c1
  Author: Michael S. Tsirkin <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M hw/e1000.c
    M hw/pc_piix.c

  Log Message:
  -----------
  e1000: unbreak the guest network migration to 1.3

QEMU 1.3 does not emulate the link auto negotiation, so if migrate to a
1.3 machine during link auto negotiation, the guest link will be set to down.
Fix this by just disabling auto negotiation for 1.3 and older.

Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 7feb640cf32d86f91f5a624136345eb6a63eab42
      
https://github.com/qemu/qemu/commit/7feb640cf32d86f91f5a624136345eb6a63eab42
  Author: Alexey Korolev <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M hw/sysbus.c
    M hw/sysbus.h
    M target-i386/cpu.c

  Log Message:
  -----------
  Fix guest OS hang when 64bit PCI bar present

This patch addresses the issue fully described here:
http://lists.nongnu.org/archive/html/qemu-devel/2013-02/msg01804.html

Linux kernels prior to 2.6.36 do not disable the PCI device during
enumeration process. Since lower and higher parts of a 64bit BAR
are programmed separately this leads to qemu receiving a request to occupy
a completely wrong address region for a short period of time.
We have found that the boot process screws up completely if kvm-apic range
is overlapped even for a short period of time (it is fine for other
regions though).

This patch raises the priority of the kvm-apic memory region, so it is
never pushed out by PCI devices. The patch is quite safe as it does not
touch memory manager.

Signed-off-by: Alexey Korolev <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 0e98b436eceb9d31caad898f4983a369c76524e0
      
https://github.com/qemu/qemu/commit/0e98b436eceb9d31caad898f4983a369c76524e0
  Author: Laszlo Ersek <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M hw/ich9.h
    M hw/lpc_ich9.c

  Log Message:
  -----------
  ICH9 LPC: Reset Control Register, basic implementation

This commit does the same for the ICH9 LPC as commit 1ec4ba74 for the
PIIX3. For the present we're ignoring the Full Reset (FULL_RST) and System
Reset (SYS_RST) bits; the guest can read them back but that's it.

Signed-off-by: Laszlo Ersek <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 554f1997f0328bc259454239db64b20b3376d9a6
      
https://github.com/qemu/qemu/commit/554f1997f0328bc259454239db64b20b3376d9a6
  Author: Gal Hammer <address@hidden>
  Date:   2013-02-27 (Wed, 27 Feb 2013)

  Changed paths:
    M hw/pc.h
    M hw/virtio-pci.c

  Log Message:
  -----------
  Set virtio-serial device to have a default of 2 MSI vectors.

The virtio-serial device is expected to use 2 MSI vectors, one for
control queue and a second shared for all queues.

Signed-off-by: Gal Hammer <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>


  Commit: 5c75fb10029c5fd1e705a6ef5d698fbea06c7a33
      
https://github.com/qemu/qemu/commit/5c75fb10029c5fd1e705a6ef5d698fbea06c7a33
  Author: Gerd Hoffmann <address@hidden>
  Date:   2013-02-28 (Thu, 28 Feb 2013)

  Changed paths:
    M pc-bios/bios.bin
    M roms/seabios

  Log Message:
  -----------
  update seabios to 1.7.2.1

Alex Williamson (3):
      seabios q35: Enable all PIRQn IRQs at startup
      seabios q35: Add new PCI slot to irq routing function
      seabios: Add a dummy PCI slot to irq mapping function

Avik Sil (1):
      USB-EHCI: Fix null pointer assignment

Kevin O'Connor (4):
      Update tools/acpi_extract.py to handle iasl 20130117 release.
      Fix Makefile - don't reference "out/" directly, instead use "$(OUT)".
      build: Don't require $(OUT) to be a sub-directory of the main
directory.
      Verify CC is valid during build tests.

Signed-off-by: Gerd Hoffmann <address@hidden>


  Commit: 02d583c7232d65920634f7553700eb348f84e472
      
https://github.com/qemu/qemu/commit/02d583c7232d65920634f7553700eb348f84e472
  Author: Mark Cave-Ayland <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M hw/macio.c

  Log Message:
  -----------
  ide/macio: Fix macio DMA initialisation.

Commit 07a7484e5d713f1eb7c1c37b18a8ab0d56d88875 accidentally introduced a bug
in the initialisation of the second macio DMA device which could cause some
DMA operations to segfault QEMU.

CC: Andreas Färber <address@hidden>
Signed-off-by: Mark Cave-Ayland <address@hidden>
Acked-by: Andreas Färber <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 69b302b2044a9a0f6d157d25b39a91ff7124c61f
      
https://github.com/qemu/qemu/commit/69b302b2044a9a0f6d157d25b39a91ff7124c61f
  Author: Christian Borntraeger <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M hw/virtio-blk.c

  Log Message:
  -----------
  virtio-blk: fix unplug + virsh reboot

virtio-blk registers a vmstate change handler. Unfortunately this
handler is not unregistered on unplug, leading to some random
crashes if the system is restarted, e.g. via virsh reboot.
Lets unregister the vmstate change handler if the device is removed.

Signed-off-by: Christian Borntraeger <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 2c20e711de308cdebc91ae4b7a983396b56f1de0
      
https://github.com/qemu/qemu/commit/2c20e711de308cdebc91ae4b7a983396b56f1de0
  Author: Paolo Bonzini <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M hw/dataplane/Makefile.objs
    R hw/dataplane/event-poll.c
    R hw/dataplane/event-poll.h
    M hw/dataplane/virtio-blk.c

  Log Message:
  -----------
  dataplane: remove EventPoll in favor of AioContext

During the review of the dataplane code, the EventPoll API morphed itself
(not concidentially) into something very very similar to an AioContext.
Thus, it is trivial to convert virtio-blk-dataplane to use AioContext,
and a first baby step towards letting dataplane talk directly to the
QEMU block layer.

The only interesting note is the value-copy of EventNotifiers.  At least
in my opinion this is part of the EventNotifier API and is even portable
to Windows.  Of course, in this case you should not close the notifier's
underlying file descriptors or handle with event_notifier_cleanup.

Signed-off-by: Paolo Bonzini <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 4ef7b8944cc5eae66159c60066b21466e2dc1ee4
      
https://github.com/qemu/qemu/commit/4ef7b8944cc5eae66159c60066b21466e2dc1ee4
  Author: MORITA Kazutaka <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M slirp/tcp_subr.c

  Log Message:
  -----------
  slirp/tcp_subr.c: fix coding style in tcp_connect

Fix coding style in tcp_connect before the next patch.

Signed-off-by: MORITA Kazutaka <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: bf1c852aa9cbe21beeb7c37d03e167c33ac196b2
      
https://github.com/qemu/qemu/commit/bf1c852aa9cbe21beeb7c37d03e167c33ac196b2
  Author: MORITA Kazutaka <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M block/sheepdog.c
    M gdbstub.c
    M include/qemu/sockets.h
    M qemu-char.c
    M slirp/tcp_subr.c
    M util/osdep.c

  Log Message:
  -----------
  move socket_set_nodelay to osdep.c

Signed-off-by: MORITA Kazutaka <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 5d6768e3b8908a60f0a3016b7fa24194f6b47c80
      
https://github.com/qemu/qemu/commit/5d6768e3b8908a60f0a3016b7fa24194f6b47c80
  Author: MORITA Kazutaka <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M block/sheepdog.c
    M qemu-doc.texi
    M qemu-options.hx

  Log Message:
  -----------
  sheepdog: accept URIs

The URI syntax is consistent with the NBD and Gluster syntax.  The
syntax is

  sheepdog[+tcp]://[host:port]/vdiname[#snapid|#tag]

Signed-off-by: MORITA Kazutaka <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 25af257d219ed2708b3bcf7f1fabf93234d27620
      
https://github.com/qemu/qemu/commit/25af257d219ed2708b3bcf7f1fabf93234d27620
  Author: MORITA Kazutaka <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M block/sheepdog.c

  Log Message:
  -----------
  sheepdog: use inet_connect to simplify connect code

This uses the form "<host>:<port>" for the representation of the
sheepdog server to use inet_connect.

Signed-off-by: MORITA Kazutaka <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 1b8bbb46e7593b92ded74cc2a5461202c2b6c05c
      
https://github.com/qemu/qemu/commit/1b8bbb46e7593b92ded74cc2a5461202c2b6c05c
  Author: MORITA Kazutaka <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M block/sheepdog.c
    M qemu-doc.texi
    M qemu-options.hx

  Log Message:
  -----------
  sheepdog: add support for connecting to unix domain socket

This patch adds support for a unix domain socket for a connection
between qemu and local sheepdog server.  You can use the unix domain
socket with the following syntax:

 $ qemu sheepdog+unix:///<vdiname>?socket=<socket path>[#snapid]

Signed-off-by: MORITA Kazutaka <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: 272d2d8e1241b92ab9be87b2c8fb590fd84987a8
      
https://github.com/qemu/qemu/commit/272d2d8e1241b92ab9be87b2c8fb590fd84987a8
  Author: Jeff Cody <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M block.c

  Log Message:
  -----------
  block: for HMP commit() operations on 'all', skip non-COW drives

During a commit of 'all' using the HMP non-live commit, the operation
is aborted and returns error on the first error enountered.  When
non-COW drives are in use (e.g. ejected floppy, cdrom, or drives without
a backing parent), that means a commit all will return an error of either
-ENOMEDIUM or -ENOTSUP.  This is not desirable, so for the 'all' commit
case, only attempt the commit if both bs->drv and bs->backing_hd are
present.

More succinctly: 'commit all' now means a commit on all COW drives.

This means an individual commit to a specific non-COW drive will still
return the appropriate error (-ENOMEDIUM if eject / not present, -ENOTSUP
if no backing file).

Reported-by: Jan Kiszka <address@hidden>
Signed-off-by: Jeff Cody <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Reviewed-by: Kevin Wolf <address@hidden>
Signed-off-by: Stefan Hajnoczi <address@hidden>


  Commit: bf5363efcff81226d779d1cc1117cb277b458ecb
      
https://github.com/qemu/qemu/commit/bf5363efcff81226d779d1cc1117cb277b458ecb
  Author: Anthony Liguori <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M hmp-commands.hx
    M hw/virtio-net.c
    M include/net/net.h
    M net/hub.c
    M net/hub.h
    M net/net.c
    M net/queue.c
    M net/tap-linux.c
    M net/tap-linux.h
    M net/tap.c
    M qemu-options.hx
    M qmp-commands.hx

  Log Message:
  -----------
  Merge remote-tracking branch 'stefanha/net' into staging

# By Jason Wang (2) and others
# Via Stefan Hajnoczi
* stefanha/net:
  qmp: netdev_add is like -netdev, not -net, fix documentation
  doc: document -netdev hubport
  net: reduce the unnecessary memory allocation of multiqueue
  tap: set IFF_ONE_QUEUE per default
  tap: forbid creating multiqueue tap when hub is used
  net: fix unbounded NetQueue
  net: fix qemu_flush_queued_packets() in presence of a hub


  Commit: e482dedc503819a009e245996f7cdb13eed6b165
      
https://github.com/qemu/qemu/commit/e482dedc503819a009e245996f7cdb13eed6b165
  Author: Anthony Liguori <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M pc-bios/bios.bin
    M roms/seabios

  Log Message:
  -----------
  Merge remote-tracking branch 'kraxel/seabios-1.7.2.1' into staging

# By Gerd Hoffmann
# Via Gerd Hoffmann
* kraxel/seabios-1.7.2.1:
  update seabios to 1.7.2.1


  Commit: a6900601caf2286a704bdc42da33e98c65feb3a9
      
https://github.com/qemu/qemu/commit/a6900601caf2286a704bdc42da33e98c65feb3a9
  Author: Anthony Liguori <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M hw/e1000.c
    M hw/ich9.h
    M hw/lpc_ich9.c
    M hw/pc.h
    M hw/pc_piix.c
    M hw/sysbus.c
    M hw/sysbus.h
    M hw/vhost.c
    M hw/virtio-pci.c
    M target-i386/cpu.c

  Log Message:
  -----------
  Merge remote-tracking branch 'mst/tags/for_anthony' into staging

virtio,vhost,pci,e1000

Mostly bugfixes, but also some ICH work by Laszlo.

Signed-off-by: Michael S. Tsirkin <address@hidden>

# gpg: Signature made Thu 28 Feb 2013 07:13:56 AM CST using RSA key ID D28D5469
# gpg: Can't check signature: public key not found

# By Michael S. Tsirkin (2) and others
# Via Michael S. Tsirkin
* mst/tags/for_anthony:
  Set virtio-serial device to have a default of 2 MSI vectors.
  ICH9 LPC: Reset Control Register, basic implementation
  Fix guest OS hang when 64bit PCI bar present
  e1000: unbreak the guest network migration to 1.3
  vhost: memory sync fixes


  Commit: 71df81afc618da79008a7071a666cf97b62e1237
      
https://github.com/qemu/qemu/commit/71df81afc618da79008a7071a666cf97b62e1237
  Author: Anthony Liguori <address@hidden>
  Date:   2013-03-04 (Mon, 04 Mar 2013)

  Changed paths:
    M block.c
    M block/sheepdog.c
    M gdbstub.c
    M hw/dataplane/Makefile.objs
    R hw/dataplane/event-poll.c
    R hw/dataplane/event-poll.h
    M hw/dataplane/virtio-blk.c
    M hw/macio.c
    M hw/virtio-blk.c
    M include/qemu/sockets.h
    M qemu-char.c
    M qemu-doc.texi
    M qemu-options.hx
    M slirp/tcp_subr.c
    M util/osdep.c

  Log Message:
  -----------
  Merge remote-tracking branch 'stefanha/block' into staging

# By MORITA Kazutaka (5) and others
# Via Stefan Hajnoczi
* stefanha/block:
  block: for HMP commit() operations on 'all', skip non-COW drives
  sheepdog: add support for connecting to unix domain socket
  sheepdog: use inet_connect to simplify connect code
  sheepdog: accept URIs
  move socket_set_nodelay to osdep.c
  slirp/tcp_subr.c: fix coding style in tcp_connect
  dataplane: remove EventPoll in favor of AioContext
  virtio-blk: fix unplug + virsh reboot
  ide/macio: Fix macio DMA initialisation.


Compare: https://github.com/qemu/qemu/compare/806f352d3d6f...71df81afc618

reply via email to

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