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

pushing a few more qemu-kvm fixes from upstream



Hello again.

There are quite a few fixes accumulated in qemu-kvm 1.1
stable upstream branch since qemu-kvm 1.1 debian release.
Some of them are already included in the debian release.

The others.. some aren't relevant for qemu-kvm (like
non-x86 bits), some are just compiler warning suppressions
or other neatiness, but some are real fixes for real bugs.

In this message I'm just drawing some overview of the changes
which I think are important, to ask for opinion of the
release team -- which changes are considered acceptable and
which aren't.  Based on this, I'll prepare a new release
with a proper debdiff and changelog, etc.

The relevant upstream git tree:
 http://git.qemu.org/?p=qemu.git;a=shortlog;h=refs/heads/stable-1.1

>From these 32 patches, the following patches are "nice to have" in
wheezy:

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=c63c453889d0bfbd183da686bc076590220fd44a
 "virtio-blk: Fix geometry sector calculation"
 somewhat large patch which allows CHS geometry to be used with
 virtio block devices.  Not hugely important, but I already come
 across this issue more than once when testing various partitioning
 tools in guests.

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=07ff37597bee726681c94c650568870bd4ff94d1
 "exec: fix TB invalidation after breakpoint insertion/deletion"
 this one-liner re-enables debugging of qemu-kvm

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=ca09717e8e0664801522781962a3c727d04eef33
 "kvm/apic: correct short memset"
 Epic one-liner:
  -    memset(kapic, 0, sizeof(kapic));
  +    memset(kapic, 0, sizeof(*kapic));
 I'm not sure what problem it actually fixes, it might even be a
 security issue.

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=c49dd1bf6450b7880972b2f176ec10e8a496073c
 "monitor: Fix memory leak with readline completion"
 Memory for monitor command completion is never freed.
 The memleak isn't large, and this feature isn't used often, but the memleak is present.
 Simple patch.

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=065436479b9164b51892dbd7a7e35a3f9f496894
 "rtl8139: honor RxOverflow flag in can_receive method"
 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=b7093f294c330c4db789c077dac9d8611e4f8ee0
 "rtl8139: validate rx ring before receiving packets"
 Two changes for rtl8139 virtual device which makes it behave
 more like real hardware.  I don't know whenever there are any
 real usage cases triggering these issues, but this stuff is
 very difficult to debug - when a guest expects one thing from
 the "hardware" but the hardware does something else.
 First fix is trivial, second is a bit larger.

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=70d582074f0b9485ad9800f8e0126ef68608ba85
 "fdc: fix implied seek while there is no media in drive"
 This is another fix from the same theme: making virtual hw behave
 more like real hw.  Apparently without this fix, windows can't
 be installed into a virtual machine with a (virtual) floppy drive.
 Simple fix.

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=1658e3cd893e3a35d89388fdd736a6d81cb405e8
 "ahci: Fix reset of MSI function"
 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=0ec39075710ae15acc2a5825cd21e0c229fa04af
 "intel-hda: Fix reset of MSI function"
 Two simple fixes for two virtual devices which currently
 mis-handle device reset in some cases (when MSI is in use).
 Device resets aren't frequent thing to see from a guest,
 but when it happens, without these fixes the devices will
 stop working.  Appears to be from the same theme again.

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=cd63a77e990f68a699ba220c8006386bd4379f81
 "ahci: SATA FIS is 20 bytes, not 0x20"
 Yet another from the "device compatibility" theme, a 2-liner.

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=7672b714b28e3d49f73c605873404bf6f644c2b2
 "kvm: i8254: Fix conversion of in-kernel to userspace state"
 This is a relatively large fix for timekeeping (kernel<=>user
 timer conversion was wrong).  Timekeeping is a very difficult
 topic in virtual environment, and this appears to be an important
 part of it.


 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=0da4c073228c645a0366f3fe801df072cf268482
 "qcow2: fix autoclear image header update"
 This one is relatively simple fix for an interesting problem,
 which may lead to data corruption.

 http://git.qemu.org/?p=qemu.git;a=commitdiff;h=845685265756467050859e2359acf16321111352
 "qemu-img: document qed format on qemu-img man page"
 Not a bugfix obviously, but should be a welcome change, I hope.


Neither of these issues are filed as bugreports against
debian bts, as in, no debian users (me included) hit the
issues yet, and some issues are difficult to hit (esp.
the ones from more-hardware-like-behavour category, like
the rtl8139 things above - it excersises a "edge" code
paths which rarely happens in real life but leads to
unexpected and very difficult to debug results when
actually happens).  I can try to create bugreports with
actual reproducers for each, when appropriate, but it
will be a large work.

There are a few other issues found with fixes already
written, which hopefully will be part of next upstream
stable release (1.1.2).  For some of them I already filed
bugreports:

  #684261 "qemu segfaults whith aio=native, virtio and a block device"
  #684263: "ahci: large cdrom reads leads to corrupt data"

and some others are like other fixes already mentioned
above.

The question is: what to do with all this?  Which fixes
are okay for wheezy still, and which should be dropped?
(To be fair, I don't want to drop any of these, each is
a clear bug with a good possibility to be hit by users
once wheezy is released and the software will be in much
more wider use).

Alternatively, maybe it is a good idea to apply whole
1.1.1 series with other not-so-important-or-relevant
changes (like changes for build system, silencing of
warnings, or changes for non-x86 architecture), -- to
be more on-line with upstream stable branch.. all the
other changes in there are at least harmless, and may
be useful for debian in the future (like compiler
warnings happening with more recent gcc).


I'm sorry this email is so large with so many technical
details.  I tried to give a short and clear summary for
each change which I think is important, and am asking
for some hints from the release team about how to
proceed.

BTW, almost every change in there is also relevant for
qemu package.

Thank you for your attention!

/mjt


Reply to: