aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-03-01Merge remote-tracking branch 'remotes/stefanha/tags/tracing-pull-request' ↵Peter Maydell39-113/+339
into staging # gpg: Signature made Tue 01 Mar 2016 15:48:04 GMT using RSA key ID 81AB73C8 # gpg: Good signature from "Stefan Hajnoczi <stefanha@redhat.com>" # gpg: aka "Stefan Hajnoczi <stefanha@gmail.com>" * remotes/stefanha/tags/tracing-pull-request: trace: Add a proper API to manage auto-generated events from the 'tcg' property trace: Add 'vcpu' event property to trace guest vCPU typedefs: Add CPUState trace: Add helper function to cast event arguments tcg: Move definition of type TCGv tcg: Add type for vCPU pointers trace: Remove unnecessary intermediate event copies trace: Extend API to manage event arguments vl: fix tracing initialization trace: use addresses instead of offsets in memory tracepoints trace: split subpage MMIOs into their own trace events. trace: docs: "simple" backend does support strings trace: drop trailing empty strings Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01trace: Add a proper API to manage auto-generated events from the 'tcg' propertyLluís Vilanova1-3/+10
Formalizes the existence of the 'event_trans' and 'event_exec' event attributes, which until now were monkey-patched only when necessary. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 145640558759.20978.6374959404425591089.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01trace: Add 'vcpu' event property to trace guest vCPULluís Vilanova11-32/+189
This property identifies events that trace vCPU-specific information. It adds a "CPUState*" argument to events with the property, identifying the vCPU raising the event. TCG translation events also have a "TCGv_env" implicit argument that is later used as the "CPUState*" argument at execution time. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 145641861797.30295.6991314023181842105.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01typedefs: Add CPUStateLluís Vilanova3-3/+2
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 145641861239.30295.8564457138934628740.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01trace: Add helper function to cast event argumentsLluís Vilanova1-0/+4
Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 145641860680.30295.1873612736245870753.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01tcg: Move definition of type TCGvLluís Vilanova2-2/+7
The target-dependant type TCGv must be defined in "tcg/tcg.h" before including the tracing helper wrappers in "tcg/tcg-op.h". It also makes more sense to define it here, where other TCG types are defined too. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 145641860129.30295.17554707227384022653.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01tcg: Add type for vCPU pointersLluís Vilanova20-20/+22
Adds the 'TCGv_env' type for pointers to 'CPUArchState' objects. The tracing infrastructure later needs to differentiate between regular pointers and pointers to vCPUs. Also changes all targets to use the new 'TCGv_env' type instead of the generic 'TCGv_ptr'. As of now, the change is merely cosmetic ('TCGv_env' translates into 'TCGv_ptr'), but that could change in the future to enforce the difference. Note that a 'TCGv_env' type (for 'CPUState') is not added, since all helpers currently receive the architecture-specific pointer ('CPUArchState'). Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Acked-by: Richard Henderson <rth@twiddle.net> Message-id: 145641859552.30295.7821536833590725201.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01trace: Remove unnecessary intermediate event copiesLluís Vilanova3-7/+6
The current code forces the use of a chain of ".original" dereferences, which looks odd. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 145641858988.30295.7223459456488075843.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01trace: Extend API to manage event argumentsLluís Vilanova1-2/+13
Lets the user manage event arguments as a list, and simplifies argument concatenation. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 145641858432.30295.3069911069472672646.stgit@localhost Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01vl: fix tracing initializationDenis V. Lunev1-4/+3
we should call trace_init_backends() before trace_init_file() for CONFIG_TRACE_SIMPLE There is no difference for other cases. This problem was introduced by the commit commit 41fc57e44ed64cd4ab5393d83624afd897dabd4f Author: Paolo Bonzini <pbonzini@redhat.com> Date: Thu Jan 7 16:55:24 2016 +0300 trace: split trace_init_file out of trace_init_backends 'make check' was failed as a result if configured with --enable-trace-backends=simple Spotted by Alex Bennée. Signed-off-by: Denis V. Lunev <den@openvz.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Alex Bennée <alex.bennee@linaro.org> Tested-by: Christian Borntraeger <borntraeger@de.ibm.com> Message-id: 1455036545-14870-1-git-send-email-den@openvz.org CC: Alex Bennée <alex.bennee@linaro.org> CC: Paolo Bonzini <pbonzini@redhat.com> CC: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01trace: use addresses instead of offsets in memory tracepointsHollis Blanchard2-14/+34
When memory_region_ops tracepoints are enabled, calculate and record the absolute address being accessed. Otherwise, we only get offsets into the memory region instead of addresses. [Fixed "offset" -> "addr" in trace event format strings. --Stefan] Signed-off-by: Hollis Blanchard <hollis_blanchard@mentor.com> Message-id: 1454976185-30095-3-git-send-email-hollis_blanchard@mentor.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01trace: split subpage MMIOs into their own trace events.Hollis Blanchard2-8/+34
Previously, a single MMIO could trigger the memory_region_ops tracepoint twice: once on its way into subpage ops, then later on its way into the model's ops. Also, the fields previously called "addr" are actually offsets into the memory region. Rename them to "offset" while we're editing the tracepoint definitions. Signed-off-by: Hollis Blanchard <hollis_blanchard@mentor.com> Message-id: 1454976185-30095-2-git-send-email-hollis_blanchard@mentor.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01trace: docs: "simple" backend does support stringsHollis Blanchard1-3/+0
The simple tracing backend has supported strings for more than three years (62bab73213ba885426a781eb2741670b9f3cae36). Signed-off-by: Hollis Blanchard <hollis_blanchard@mentor.com> Message-id: 1454976185-30095-1-git-send-email-hollis_blanchard@mentor.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01trace: drop trailing empty stringsGreg Kurz1-32/+32
Also fix a typo in the virtio_balloon_handle_output() trace while here. [The double-quoting was a limitation of the old tracetool.sh script. The modern tracetool.py script does not require double-quotes at the end of the line. See commit cf85cf8e972f3ad79f203be4edb7968d6e052293 ("trace: Format strings must begin/end with double quotes"). --Stefan] Signed-off-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Reviewed-by: Eric Blake <eblake@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Message-id: 20160111173036.24764.59878.stgit@bahia.huguette.org Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
2016-03-01Merge remote-tracking branch 'remotes/cohuck/tags/s390x-20160301' into stagingPeter Maydell23-240/+246
Assorted fixes, cleanups and enhancements. # gpg: Signature made Tue 01 Mar 2016 11:45:12 GMT using RSA key ID C6F02FAF # gpg: Good signature from "Cornelia Huck <huckc@linux.vnet.ibm.com>" # gpg: aka "Cornelia Huck <cornelia.huck@de.ibm.com>" * remotes/cohuck/tags/s390x-20160301: s390x/css: only suspend when enabled by orb MAINTAINERS: Remove entry for hw/s390x/s390-virtio-bus.[ch] MAINTAINERS: Remove the old s390-virtio machine s390x/pci: use PCI_MSIX_FLAGS on retrieving the MSIX entries s390x/css: Use static initialization for channel_subsys fields s390x/css: Allocate channel_subsys statically s390x/pci: fix reg/dereg irq functions s390x/css: introduce indicator refcounting interfaces s390x/virtio: old machine leftovers watchdog/diag288: avoid race condition on expired watchdog s390x: remove {kvm_}s390_virtio_irq() s390x: fix debug statement in trigger_page_fault() s390x/kvm: sync fprs via kvm_run linux-headers: update against kvm/next Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01Merge remote-tracking branch 'remotes/kraxel/tags/pull-seabios-20160301-1' ↵Peter Maydell9-0/+0
into staging seabios: update to 1.9.1 stable release # gpg: Signature made Tue 01 Mar 2016 08:39:53 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-seabios-20160301-1: seabios: update to 1.9.1 stable release Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01s390x/css: only suspend when enabled by orbCornelia Huck1-3/+8
We must not allow a channel program to suspend if the suspend control bit in the orb had not been specified. Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01MAINTAINERS: Remove entry for hw/s390x/s390-virtio-bus.[ch]Thomas Huth1-1/+0
The files have been deleted recently, no need to keep these entries anymore. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <1456397100-22746-1-git-send-email-thuth@redhat.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01MAINTAINERS: Remove the old s390-virtio machineThomas Huth1-6/+0
The old s390-virtio machine has been removed last year, so we don't need the corresponding section in the MAINTAINERS file anymore. Signed-off-by: Thomas Huth <thuth@redhat.com> Message-Id: <1456394274-21082-1-git-send-email-thuth@redhat.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x/pci: use PCI_MSIX_FLAGS on retrieving the MSIX entriesWei Yang1-1/+1
Even PCI_CAP_FLAGS has the same value as PCI_MSIX_FLAGS, the later one is the more proper on retrieving MSIX entries. This patch uses PCI_MSIX_FLAGS to retrieve the MSIX entries. Signed-off-by: Wei Yang <richard.weiyang@gmail.com> CC: Cornelia Huck <cornelia.huck@de.ibm.com> CC: Christian Borntraeger <borntraeger@de.ibm.com> Message-Id: <1455895091-7589-3-git-send-email-richard.weiyang@gmail.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x/css: Use static initialization for channel_subsys fieldsEduardo Habkost1-14/+11
machine_init() will be gone, but we don't need it if we just initialize the channel_subsys fields statically. Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Richard Henderson <rth@twiddle.net> Cc: Alexander Graf <agraf@suse.de> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <1455656347-29033-4-git-send-email-ehabkost@redhat.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> [adapted on top of indicator changes] Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x/css: Allocate channel_subsys staticallyEduardo Habkost1-93/+92
There's no need to use g_malloc0() to allocate the channel_subsys struct, just use a static variable. Cc: Cornelia Huck <cornelia.huck@de.ibm.com> Cc: Christian Borntraeger <borntraeger@de.ibm.com> Cc: Richard Henderson <rth@twiddle.net> Cc: Alexander Graf <agraf@suse.de> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Message-Id: <1455656347-29033-3-git-send-email-ehabkost@redhat.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> [adapted on top of indicator changes] Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x/pci: fix reg/dereg irq functionsYi Min Zhao2-12/+13
Indicator refcounting interfaces are introduced. This patch fixes introducing unneeded indicator mappings and failure to release AISB mappings on deregistration. Signed-off-by: Yi Min Zhao <zyimin@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x/css: introduce indicator refcounting interfacesYi Min Zhao4-72/+79
Currently, virtio-ccw uses its own interfaces to keep indicators mapped just once even if the same address has been registered multiple times. These interfaces fit the PCI use case as well. Therefore, move them to css and make them generic interfaces. Signed-off-by: Yi Min Zhao <zyimin@linux.vnet.ibm.com> Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x/virtio: old machine leftoversCornelia Huck1-2/+0
Remove some now unused #defines. Reviewed-By: Sascha Silbe <silbe@linux.vnet.ibm.com> Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01watchdog/diag288: avoid race condition on expired watchdogSascha Silbe1-4/+8
When configured to inject an NMI, watchdog_perform_action() may cause the BQL to be temporarily relinquished (inject_nmi() → ... → s390_nmi() → s390_cpu_restart() → run_on_cpu()). When the guest issues diag 288 again in response to the NMI, the diag 288 operation will race against wdt_diag288_reset(). Depending on scheduler behaviour, wdt_diag288_reset() may be run after the guest issued a diag 288 Init. As a result, we will cancel the timer the guest just set up. The effect observed by the guest is that a second expiry does not trigger the watchdog action and diag 288 Change operations fail. Fix this by resetting the timer _before_ invoking the action. Signed-off-by: Sascha Silbe <silbe@linux.vnet.ibm.com> Acked-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x: remove {kvm_}s390_virtio_irq()Cornelia Huck3-27/+0
This interface was only used by the old virtio machine and therefore is not needed anymore. Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x: fix debug statement in trigger_page_fault()David Hildenbrand1-1/+1
When mmu_translate debugging output is enabled, code won't compile. Let's just use the same statement as in trigger_prot_fault(). Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01s390x/kvm: sync fprs via kvm_runDavid Hildenbrand1-0/+11
We can now also sync the fprs via kvm_run, avoiding one ioctl. Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01linux-headers: update against kvm/nextCornelia Huck9-16/+34
Update against commit efef127c, but keep userfaultd.h. Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>
2016-03-01Merge remote-tracking branch 'remotes/kraxel/tags/pull-input-20160301-1' ↵Peter Maydell17-99/+104
into staging qapi: fix input-send-event and promote to stable # gpg: Signature made Tue 01 Mar 2016 08:19:52 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-input-20160301-1: qapi: promote input-send-event to stable qapi: rename InputAxis values. qapi: rename input buttons qapi: switch x-input-send-event from console to device+head console: add & use qemu_console_lookup_by_device_name Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01Merge remote-tracking branch 'remotes/kraxel/tags/pull-vga-20160301-1' into ↵Peter Maydell2-2/+4
staging vga: minor cirrus/qxl bugfixes. # gpg: Signature made Tue 01 Mar 2016 07:16:22 GMT using RSA key ID D3E87138 # gpg: Good signature from "Gerd Hoffmann (work) <kraxel@redhat.com>" # gpg: aka "Gerd Hoffmann <gerd@kraxel.org>" # gpg: aka "Gerd Hoffmann (private) <kraxel@gmail.com>" * remotes/kraxel/tags/pull-vga-20160301-1: qxl: lock current_async update in qxl_soft_reset cirrus_vga: fix off-by-one in blit_region_is_unsafe Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into stagingPeter Maydell12-234/+641
# gpg: Signature made Mon 29 Feb 2016 20:08:16 GMT using RSA key ID C0DE3057 # gpg: Good signature from "Jeffrey Cody <jcody@redhat.com>" # gpg: aka "Jeffrey Cody <jeff@codyprime.org>" # gpg: aka "Jeffrey Cody <codyprime@gmail.com>" * remotes/cody/tags/block-pull-request: iotests/124: Add cluster_size mismatch test block/backup: avoid copying less than full target clusters block/backup: make backup cluster size configurable mirror: Add mirror_wait_for_io mirror: Rewrite mirror_iteration vhdx: Simplify vhdx_set_shift_bits() vhdx: DIV_ROUND_UP() in vhdx_calc_bat_entries() iscsi: add support for getting CHAP password via QCryptoSecret API curl: add support for HTTP authentication parameters rbd: add support for getting password from QCryptoSecret object sheepdog: allow to delete snapshot block/nfs: add support for setting debug level Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-03-01seabios: update to 1.9.1 stable releaseGerd Hoffmann9-0/+0
git shortlog rel-1.9.0..rel-1.9.1 ================================= Cole Robinson (1): biostables: Support SMBIOS 2.6+ UUID format Kevin O'Connor (7): xhci: Check for device disconnects during USB2 reset polling xhci: Wait for port enable even for USB3 devices sdcard: Only enable error_irq_enable for bits defined in SDHCI v1 spec sdcard: fix typo causing 32bit write to 16bit block_size field nmi: Don't try to switch onto extra stack in NMI handler scsi: Do not call printf() from scsi_is_ready() coreboot: Check for unaligned cbfs header Marcel Apfelbaum (1): fw/pci: do not automatically allocate IO region for PCIe bridges Roger Pau Monne (1): build: fix typo in buildversion.py Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-03-01qapi: promote input-send-event to stableGerd Hoffmann3-19/+13
With all fixups being in place now, we can promote input-send-event to stable abi by removing the x- prefix. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
2016-03-01qapi: rename InputAxis values.Gerd Hoffmann3-7/+3
Lowercase them. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
2016-03-01qapi: rename input buttonsGerd Hoffmann14-28/+24
All lowercase, use-dash instead of CamelCase. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com>
2016-03-01qapi: switch x-input-send-event from console to device+headGerd Hoffmann3-28/+36
Use display device qdev id and head number instead of console index to specify the QemuConsole. This makes things consistent with input devices (for input routing) and vnc server configuration, which both use display and head too. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com>
2016-03-01console: add & use qemu_console_lookup_by_device_nameGerd Hoffmann4-22/+33
We have two places needing this, and a third one will come shortly. So factor things out into a helper function to reduce code duplication. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Daniel P. Berrange <berrange@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com>
2016-03-01qxl: lock current_async update in qxl_soft_resetGerd Hoffmann1-0/+2
This should fix a defect report from Coverity. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
2016-03-01cirrus_vga: fix off-by-one in blit_region_is_unsafePaolo Bonzini1-2/+2
The "max" value is being compared with >=, but addr + width points to the first byte that will _not_ be copied. Laszlo suggested using a "greater than" comparison, instead of subtracting one like it is already done above for the height, so that max remains always positive. The mistake is "safe"---it will reject some blits, but will never cause out-of-bounds writes. Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Message-id: 1455121059-18280-1-git-send-email-pbonzini@redhat.com Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2016-02-29iotests/124: Add cluster_size mismatch testJohn Snow2-7/+55
If a backing file isn't specified in the target image and the cluster_size is larger than the bitmap granularity, we run the risk of creating bitmaps with allocated clusters but empty/no data which will prevent the proper reading of the backup in the future. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Message-id: 1456433911-24718-4-git-send-email-jsnow@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29block/backup: avoid copying less than full target clustersJohn Snow1-3/+22
During incremental backups, if the target has a cluster size that is larger than the backup cluster size and we are backing up to a target that cannot (for whichever reason) pull clusters up from a backing image, we may inadvertantly create unusable incremental backup images. For example: If the bitmap tracks changes at a 64KB granularity and we transmit 64KB of data at a time but the target uses a 128KB cluster size, it is possible that only half of a target cluster will be recognized as dirty by the backup block job. When the cluster is allocated on the target image but only half populated with data, we lose the ability to distinguish between zero padding and uninitialized data. This does not happen if the target image has a backing file that points to the last known good backup. Even if we have a backing file, though, it's likely going to be faster to just buffer the redundant data ourselves from the live image than fetching it from the backing file, so let's just always round up to the target granularity. The same logic applies to backup modes top, none, and full. Copying fractional clusters without the guarantee of COW is dangerous, but even if we can rely on COW, it's likely better to just re-copy the data. Reported-by: Fam Zheng <famz@redhat.com> Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Message-id: 1456433911-24718-3-git-send-email-jsnow@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29block/backup: make backup cluster size configurableJohn Snow1-28/+36
64K might not always be appropriate, make this a runtime value. Signed-off-by: John Snow <jsnow@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Message-id: 1456433911-24718-2-git-send-email-jsnow@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29mirror: Add mirror_wait_for_ioFam Zheng1-12/+12
The three lines are duplicated a number of times now, refactor a function. Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: 1454637630-10585-3-git-send-email-famz@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29mirror: Rewrite mirror_iterationFam Zheng3-173/+243
The "pnum < nb_sectors" condition in deciding whether to actually copy data is unnecessarily strict, and the qiov initialization is unnecessarily for bdrv_aio_write_zeroes and bdrv_aio_discard. Rewrite mirror_iteration to fix both flaws. The output of iotests 109 is updated because we now report the offset and len slightly differently in mirroring progress. Signed-off-by: Fam Zheng <famz@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: 1454637630-10585-2-git-send-email-famz@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29vhdx: Simplify vhdx_set_shift_bits()Max Reitz1-4/+4
For values which are powers of two (and we do assume all of these to be), sizeof(x) * 8 - 1 - clz(x) == ctz(x). Therefore, use ctz(). Signed-off-by: Max Reitz <mreitz@redhat.com> Message-id: 1450451066-13335-3-git-send-email-mreitz@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29vhdx: DIV_ROUND_UP() in vhdx_calc_bat_entries()Max Reitz1-8/+2
We have DIV_ROUND_UP(), so we can use it to produce more easily readable code. It may be slower than the bit shifting currently performed (because it actually performs a division), but since vhdx_calc_bat_entries() is never used in a hot path, this is completely fine. Signed-off-by: Max Reitz <mreitz@redhat.com> Message-id: 1450451066-13335-2-git-send-email-mreitz@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29iscsi: add support for getting CHAP password via QCryptoSecret APIDaniel P. Berrange1-1/+23
The iSCSI driver currently accepts the CHAP password in plain text as a block driver property. This change adds a new "password-secret" property that accepts the ID of a QCryptoSecret instance. $QEMU \ -object secret,id=sec0,filename=/home/berrange/example.pw \ -drive driver=iscsi,url=iscsi://example.com/target-foo/lun1,\ user=dan,password-secret=sec0 Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-id: 1453385961-10718-4-git-send-email-berrange@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
2016-02-29curl: add support for HTTP authentication parametersDaniel P. Berrange1-0/+66
If connecting to a web server which has authentication turned on, QEMU gets a 401 as curl has not been configured with any authentication credentials. This adds 4 new parameters to the curl block driver options 'username', 'password-secret', 'proxy-username' and 'proxy-password-secret'. Passwords are provided using the recently added 'secret' object type $QEMU \ -object secret,id=sec0,filename=/home/berrange/example.pw \ -object secret,id=sec1,filename=/home/berrange/proxy.pw \ -drive driver=http,url=http://example.com/some.img,\ username=dan,password-secret=sec0,\ proxy-username=dan,proxy-password-secret=sec1 Of course it is possible to use the same secret for both the proxy & server passwords if desired, or omit the proxy auth details, or the server auth details as required. Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-id: 1453385961-10718-3-git-send-email-berrange@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>