{"push_id":1062492676,"size":58,"distinct_size":54,"ref":"refs/heads/pve2.6-next","head":"585aa6c98400bee8c21d41dfc8df51ab71c19359","before":"d611c5ef8ba2773b5d935ab954414b556527245a","commits":[{"sha":"a77fd4bb2988c05953fdc9f1524085870ec1c939","author":{"email":"df9fd617995bad07eac70e27aa3fe5069270e3bd@redhat.com","name":"Fam Zheng"},"message":"block: Fix bdrv_drain in coroutine\n\nUsing the nested aio_poll() in coroutine is a bad idea. This patch\nreplaces the aio_poll loop in bdrv_drain with a BH, if called in\ncoroutine.\n\nFor example, the bdrv_drain() in mirror.c can hang when a guest issued\nrequest is pending on it in qemu_co_mutex_lock().\n\nMirror coroutine in this case has just finished a request, and the block\njob is about to complete. It calls bdrv_drain() which waits for the\nother coroutine to complete. The other coroutine is a scsi-disk request.\nThe deadlock happens when the latter is in turn pending on the former to\nyield/terminate, in qemu_co_mutex_lock(). The state flow is as below\n(assuming a qcow2 image):\n\n  mirror coroutine               scsi-disk coroutine\n  -------------------------------------------------------------\n  do last write\n\n    qcow2:qemu_co_mutex_lock()\n    ...\n                                 scsi disk read\n\n                                   tracked request begin\n\n                                   qcow2:qemu_co_mutex_lock.enter\n\n    qcow2:qemu_co_mutex_unlock()\n\n  bdrv_drain\n    while (has tracked request)\n      aio_poll()\n\nIn the scsi-disk coroutine, the qemu_co_mutex_lock() will never return\nbecause the mirror coroutine is blocked in the aio_poll(blocking=true).\n\nWith this patch, the added qemu_coroutine_yield() allows the scsi-disk\ncoroutine to make progress as expected:\n\n  mirror coroutine               scsi-disk coroutine\n  -------------------------------------------------------------\n  do last write\n\n    qcow2:qemu_co_mutex_lock()\n    ...\n                                 scsi disk read\n\n                                   tracked request begin\n\n                                   qcow2:qemu_co_mutex_lock.enter\n\n    qcow2:qemu_co_mutex_unlock()\n\n  bdrv_drain.enter\n>   schedule BH\n>   qemu_coroutine_yield()\n>                                  qcow2:qemu_co_mutex_lock.return\n>                                  ...\n                                   tracked request end\n    ...\n    (resumed from BH callback)\n  bdrv_drain.return\n  ...\n\nReported-by: Laurent Vivier <lvivier@redhat.com>\nSigned-off-by: Fam Zheng <famz@redhat.com>\nMessage-id: 1459855253-5378-2-git-send-email-famz@redhat.com\nSuggested-by: Paolo Bonzini <pbonzini@redhat.com>\nSigned-off-by: Fam Zheng <famz@redhat.com>\nSigned-off-by: Stefan Hajnoczi <stefanha@redhat.com>","distinct":false,"url":"https://api.github.com/repos/GamerSource/qemu/commits/a77fd4bb2988c05953fdc9f1524085870ec1c939"},{"sha":"39bf92dd703efb04fc516aad1376986aea7d96bf","author":{"email":"df9fd617995bad07eac70e27aa3fe5069270e3bd@redhat.com","name":"Fam Zheng"},"message":"mirror: Replace bdrv_drain(bs) with bdrv_co_drain(bs)\n\nSuggested-by: Stefan Hajnoczi <stefanha@redhat.com>\nSigned-off-by: Fam Zheng <famz@redhat.com>\nMessage-id: 1459855253-5378-3-git-send-email-famz@redhat.com\nSigned-off-by: Stefan Hajnoczi <stefanha@redhat.com>","distinct":false,"url":"https://api.github.com/repos/GamerSource/qemu/commits/39bf92dd703efb04fc516aad1376986aea7d96bf"},{"sha":"9ca3003df3c9882925c023c1411ab3b2041d7db5","author":{"email":"df9fd617995bad07eac70e27aa3fe5069270e3bd@redhat.com","name":"Fam Zheng"},"message":"MAINTAINERS: Add Fam Zheng as a co-maintainer of block I/O path\n\nAs agreed with Stefan, I'm listing myself a co-maintainer of block I/O\npath and assist with the maintainership.\n\nSigned-off-by: Fam Zheng <famz@redhat.com>\nMessage-id: 1459849105-7767-1-git-send-email-famz@redhat.com\nSigned-off-by: Stefan Hajnoczi <stefanha@redhat.com>","distinct":false,"url":"https://api.github.com/repos/GamerSource/qemu/commits/9ca3003df3c9882925c023c1411ab3b2041d7db5"},{"sha":"42bb626f7ebc9197d2943b897a99e127315275ab","author":{"email":"313afa09ce093b19ae1dd74f57c1ebd94508584c@linaro.org","name":"Peter Maydell"},"message":"Merge remote-tracking branch 'remotes/stefanha/tags/block-pull-request' into staging\n\n# gpg: Signature made Tue 12 Apr 2016 09:29:54 BST using RSA key ID 81AB73C8\n# gpg: Good signature from \"Stefan Hajnoczi <stefanha@redhat.com>\"\n# gpg:                 aka \"Stefan Hajnoczi <stefanha@gmail.com>\"\n\n* remotes/stefanha/tags/block-pull-request:\n  MAINTAINERS: Add Fam Zheng as a co-maintainer of block I/O path\n  mirror: Replace bdrv_drain(bs) with bdrv_co_drain(bs)\n  block: Fix bdrv_drain in coroutine\n\nSigned-off-by: Peter Maydell <peter.maydell@linaro.org>","distinct":false,"url":"https://api.github.com/repos/GamerSource/qemu/commits/42bb626f7ebc9197d2943b897a99e127315275ab"},{"sha":"a3f7085035a32ad26580f533075fd56a6523de54","author":{"email":"21a0ac3a0184cbb5f322585bd41886b0e67aa0d7@linux.vnet.ibm.com","name":"Greg Kurz"},"message":"spapr: skip configuration section during migration of older machines\n\nSince QEMU 2.4, we have a configuration section in the migration stream.\nThis must be skipped for older machines, like it is already done for x86.\n\nThis patch fixes the migration of pseries-2.3 from/to QEMU 2.3, but it\nbreaks migration of the same machine from/to QEMU 2.4/2.4.1/2.5. We do\nthat anyway because QEMU 2.3 is likely to be more widely deployed than\nnewer QEMU versions.\n\nFixes: 61964c23e5ddd5a33f15699e45ce126f879e3e33\nSigned-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com>\nReviewed-by: Laurent Vivier <lvivier@redhat.com>\nReviewed-by: Juan Quintela <quintela@redhat.com>\nSigned-off-by: David Gibson <david@gibson.dropbear.id.au>\n(cherry picked from commit 09b5e30da5b19f44768a5429f603caaede216757)\n\nConflicts:\n\thw/ppc/spapr.c\n\n*remove dep on 5013c5474\n\nSigned-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/a3f7085035a32ad26580f533075fd56a6523de54"},{"sha":"c314b72b97efd34328cc30e3d2857997b7573d51","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"fr-ca keymap corrections","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/c314b72b97efd34328cc30e3d2857997b7573d51"},{"sha":"bf65ff37df661ea5f4e13e80e7cdc5e4ea5e7d65","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"Adjust network script path to /etc/kvm/","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/bf65ff37df661ea5f4e13e80e7cdc5e4ea5e7d65"},{"sha":"6464e7e845233b6139755715c3ad928fe011c015","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"vnc: altgr emulation","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/6464e7e845233b6139755715c3ad928fe011c015"},{"sha":"cfff1405cbeb59e4fb7540a8a868a726c5935eb0","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"qemu-img: return success on info without snapshots","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/cfff1405cbeb59e4fb7540a8a868a726c5935eb0"},{"sha":"c36372c24832f2ec3bc5624ae4c713e124a944cd","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"use kvm by default","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/c36372c24832f2ec3bc5624ae4c713e124a944cd"},{"sha":"8971bbc2d4384d42038599ad9e876acd801c32fc","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"virtio-balloon: fix query\n\nActually provide memory information via the query-balloon\ncommand.","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/8971bbc2d4384d42038599ad9e876acd801c32fc"},{"sha":"4740697bbbb97cf4db775a2c98b7ad6b00d14073","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"set the CPU model to kvm64/32 instead of qemu64/32","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/4740697bbbb97cf4db775a2c98b7ad6b00d14073"},{"sha":"ccc246a346d8ed659764ac6c93a7234c1e098af5","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"qapi: modify query machines\n\nprovide '*is-current' in MachineInfo struct","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/ccc246a346d8ed659764ac6c93a7234c1e098af5"},{"sha":"98786fa2c17fed1e8cac6eebbda388de308d44a6","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"qapi: modify spice query\n\nProvide the last ticket in the SpiceInfo struct optionally.","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/98786fa2c17fed1e8cac6eebbda388de308d44a6"},{"sha":"6281d31d9d56dc6fc9f6d96f74603131ddedd3e1","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"ui/spice: default to pve certs unless otherwise specified","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/6281d31d9d56dc6fc9f6d96f74603131ddedd3e1"},{"sha":"3f2f1f6881cd37d81aacbd51f3f62b620ba93e32","author":{"email":"e35e8b2bbfdcf2327cda41ac7fce32f25587cf5b@proxmox.com","name":"Dietmar Maurer"},"message":"introduce new vma archive format\n\nThis is a very simple archive format, see docs/specs/vma_spec.txt\n\nSigned-off-by: Dietmar Maurer <dietmar@proxmox.com>","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/3f2f1f6881cd37d81aacbd51f3f62b620ba93e32"},{"sha":"5cf3e55b23990036fcea39369f8dd92598c4a8ee","author":{"email":"e35e8b2bbfdcf2327cda41ac7fce32f25587cf5b@proxmox.com","name":"Dietmar Maurer"},"message":"vma: add verify command\n\nUsers wants to verify the archive after backup.\n\nExamples:\n\n # vma verify -v test.vma\n\n # lzop -d -c test.vma.lzo |vma verify -\n\nSigned-off-by: Dietmar Maurer <dietmar@proxmox.com>","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/5cf3e55b23990036fcea39369f8dd92598c4a8ee"},{"sha":"06c92219abd7b137103f7b0a7bf126545f671776","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"vma: add 'config' command to dump the config","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/06c92219abd7b137103f7b0a7bf126545f671776"},{"sha":"9060df116df46d9706cda22004f6176263516331","author":{"email":"e35e8b2bbfdcf2327cda41ac7fce32f25587cf5b@proxmox.com","name":"Dietmar Maurer"},"message":"vma restore: tolerate a size difference up to 4M\n\nSigned-off-by: Dietmar Maurer <dietmar@proxmox.com>","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/9060df116df46d9706cda22004f6176263516331"},{"sha":"ed63676242ace661c4e4b5a93e2d1d7cfa2605d5","author":{"email":"bac7898f539fd233d9ce33be7a9eda13ee647930@proxmox.com","name":"Wolfgang Bumiller"},"message":"backup: modify job api\n\nIntroduces a BackupDump function callback and a pause_count\nfor backup_start. For a dump-backup the target parameter\ncan now be NULL so access to target needs to be guarded now.","distinct":true,"url":"https://api.github.com/repos/GamerSource/qemu/commits/ed63676242ace661c4e4b5a93e2d1d7cfa2605d5"}]}