History | View | Annotate | Download (77.2 kB)
memory: add tracepoints for MMIO reads/writes
This is quite handy to debug softmmu targets.
Reviewed-by: Andreas Faerber <afaerber@suse.de>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Message-id: 1375016242-32651-1-git-send-email-pbonzini@redhat.com...
Xen PV Device
Introduces a new Xen PV PCI device which will act as a binding point forPV drivers for Xen.The device has parameterized vendor-id, device-id and revision to allow tobe configured as a binding point for any vendor's PV drivers.
Signed-off-by: Paul Durrant <paul.durrant@citrix.com>...
trace-events: Drop unused events
Dropped event Unused sincemirror_cow 884fea4paio_complete 47e6b25paio_cancel 47e6b25usb_ehci_data 0ce668b...
trace-events: Fix up source file comments
They're all wrong since (at least) Paolo's big source treereorganization. Need to shuffle some event declarations around tokeep them under the correct source file comment.
Signed-off-by: Markus Armbruster <armbru@redhat.com>...
Force auto-convegence of live migration
If a user chooses to turn on the auto-converge migration capabilitythese changes detect the lack of convergence and throttle down theguest. i.e. force the VCPUs out of the guest for some durationand let the migration thread catchup and help converge....
block: add basic backup support to block driver
backup_start() creates a block job that copies a point-in-time snapshotof a block device to a target block device.
We call backup_do_cow() for each write during backup. That functionreads the original data from the block device before it gets...
Merge remote-tracking branch 'bonzini/iommu-for-anthony' into staging
exec: eliminate qemu_put_ram_ptr
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
coroutine: stop using AioContext in CoQueue
qemu_co_queue_next(&queue) arranges that the next queued coroutine isrun at a later point in time. This deferred restart is useful becausethe caller may not want to transfer control yet.
This behavior was implemented using QEMUBH in the past, which meant that...
osdep: fix qemu_anon_ram_free trace (+ fix compilation on 32 bit hosts)
Commit e7a09b92b70786f9e8c5fbf787e0248c6ebbe707 added a trace at eachmemory freeing, but unfortunately inverted size and pointer when printingthem. Fix trace.
This also led to a compilation error on 32 bit hosts:...
osdep, kvm: rename low-level RAM allocation functions
This is preparatory to the introduction of a separate freeing API.
Reported-by: Amos Kong <akong@redhat.com>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Reviewed-by: Amos Kong <akong@redhat.com>...
osdep: introduce qemu_anon_ram_free to free qemu_anon_ram_alloc-ed memory
We switched from qemu_memalign to mmap() but then we don't modifyqemu_vfree() to do a munmap() over free(). Which we cannot dobecause qemu_vfree() frees memory allocated by qemu_{mem,block}align....
qom: trace asserting casts
This provides a way to detect the cast that leads to a (reproducible)crash even when QOM cast debugging is disabled.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Message-id: 1368188203-3407-6-git-send-email-pbonzini@redhat.com...
kvm-all: add kvm_run_exit tracepoint
This patch enable us to know exit reason of KVM_RUN. It will help usknow where the trouble is caused.
Signed-off-by: Kazuya Saito <saito.kazuya@jp.fujitsu.com>Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
kvm-all: add kvm_ioctl, kvm_vm_ioctl, kvm_vcpu_ioctl tracepoints
This patch adds tracepoints at ioctl to kvm. Tracing these ioctl isuseful for clarification whether the cause of troubles is qemu or kvm.
Signed-off-by: Kazuya Saito <saito.kazuya@jp.fujitsu.com>...
pvscsi: fix compilation on 32 bit hosts
This fixes the following error:In file included from qemu/include/trace.h:4:0, from trace/generated-events.c:3:./trace/generated-tracers.h: In function ‘trace_pvscsi_get_sg_list’:./trace/generated-tracers.h:4271:9: error: format ‘%lu’ expects argument of...
usb: better speed mismatch error reporting
Report the supported speeds for device and port in the error message.Also add the speeds to the tracepoint. And while being at it dropthe redundant error message in usb_desc_attach, usb_device_attach willreport the error anyway....
scsi: VMWare PVSCSI paravirtual device implementation
Signed-off-by: Dmitry Fleytman <dmitry@daynix.com>Signed-off-by: Yan Vugenfirer <yan@daynix.com>[ Rename files to vmw_pvscsi, fix setting of hostStatus in pvscsi_request_cancelled - Paolo ]Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Merge remote-tracking branch 'kraxel/usb.80' into staging
use libusb for usb-host
Reimplement usb-host on top of libusb.Reasons to do this:
(1) Largely rewritten from scratch, nice opportunity to kill historical cruft. (2) Offload usbfs handling to libusb. (3) Have a single portable code base instead of bsd + linux variants....
xhci: fix portsc writes
Check for port reset first and skip everything else then.Add sanity checks for PLS updates.Add PLC notification when entering PLS_U0 state.
This gets host-initiated port resume going on win8.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
console: gui timer fixes
Make gui update rate adaption code in gui_update() actually work.Sprinkle in a tracepoint so you can see the code at work. Removethe update rate adaption code in vnc and make vnc simply use thegeneric bits instead.
hw/vmware_vga.c: add tracepoints for mmio reads+writes
hw/vmware_vga.c: various vmware vga fixes.
Hardcode depth to 32 bpp. It effectively was that way before becausethat is the default surface depth, this just makes it explicit in thecode.
Rename depth to new_depth to make it consistent with the new_width +...
console: add trace events
xhci: remove unimplemented printfs
Replace them with a tracepoint, so they don't spam stderr by default.
Merge remote-tracking branch 'stefanha/block' into staging
vl: add runstate_set tracepoint
This patch enables us to know RunState transition. It will be userfulfor investigation when the trouble occured in special event such likelive migration, shutdown, suspend, and so on.
qcow2: Factor out handle_alloc()
Signed-off-by: Kevin Wolf <kwolf@redhat.com>Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
qcow2: Factor out handle_copied()
console: fix displaychangelisteners interface
Split callbacks into separate Ops struct. Pass DisplayChangeListenerpointer as first argument to all callbacks. Uninline a bunch ofdisplay functions and move them from console.h to console.c
console: rework DisplaySurface handling [vga emu side]
Decouple DisplaySurface allocation & deallocation from DisplayState.Replace dpy_gfx_resize + dpy_gfx_setdata with a dpy_gfx_replace_surfacefunction.
This handles the graphic hardware emulation.
threadpool: move globals into struct ThreadPool
Move global variables into a struct so multiple thread pools can besupported in the future.
This patch does not change thread-pool.h interfaces. There is still aglobal thread pool and it is not yet possible to create/destroy...
Add search path support for qemu data files.
This patch allows to specify multiple directories where qemu should lookfor data files. To implement that the behavior of the -L switch isslightly different now: Instead of replacing the data directory the...
migration: add migrate_set_state tracepoint
Signed-off-by: Kazuya Saito <saito.kazuya@jp.fujitsu.com>Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>Signed-off-by: Juan Quintela <quintela@redhat.com>
scsi: do not call scsi_read_data/scsi_write_data for a canceled request
Cc: qemu-stable@nongnu.orgSigned-off-by: Paolo Bonzini <pbonzini@redhat.com>
usb-xhci: usb3 streams
Add streams support to the xhci emulation. No secondary streams yet,only linear stream arays are supported for now.
s390: Add channel I/O instructions.
Provide handlers for (most) channel I/O instructions.
Signed-off-by: Cornelia Huck <cornelia.huck@de.ibm.com>Signed-off-by: Alexander Graf <agraf@suse.de>
s390: Virtual channel subsystem support.
Provide a mechanism for qemu to provide fully virtual subchannels tothe guest.
s390: Add new channel I/O based virtio transport.
Add a new virtio transport that uses channel commands to performvirtio operations.
mirror: support more than one in-flight AIO operation
With AIO support in place, we can start copying more than one chunkin parallel. This patch introduces the required infrastructure forthis: the buffer is split into multiple granularity-sized chunks,...
mirror: support arbitrarily-sized iterations
Yet another optimization is to extend the mirroring iteration to include moreadjacent dirty blocks. This limits the number of I/O operations and makesmirroring efficient even with a small granularity. Most of the infrastructure...
mirror: switch mirror_iteration to AIO
There is really no change in the behavior of the job here, sincethere is still a maximum of one in-flight I/O operation betweenthe source and the target. However, this patch already introducesthe AIO callbacks (which are unmodified in the next patch)...
block: implement dirty bitmap using HBitmap
This actually uses the dirty bitmap in the block layer, and convertsmirroring to use an HBitmapIter.
Reviewed-by: Laszlo Ersek <lersek@redhat.com> (except block/mirror.c parts)Reviewed-by: Eric Blake <eblake@redhat.com>...
mirror: perform COW if the cluster size is bigger than the granularity
When mirroring runs, the backing files for the target may not yet beready. However, this means that a copy-on-write operation on the targetwould fill the missing sectors with zeros. Copy-on-write only happens...
add hierarchical bitmap data type and test cases
HBitmaps provides an array of bits. The bits are stored as usual in anarray of unsigned longs, but HBitmap is also optimized to provide fastiteration over set bits; going from one bit to the next is O(logB n)...
qxl: stop using non revision 4 rom fields for revision < 4
Signed-off-by: Alon Levy <alevy@redhat.com>Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
fw_cfg: Use void *, size_t instead of uint8_t *, uint32_t for blobs
Many callers pass size_t, which gets silently truncated to uint32_t.Harmless, because all practical sizes are well below 4GiB. Clean itup anyway. Size overflow now fails assertions....
fw_cfg: Replace debug prints by tracepoints
Signed-off-by: Markus Armbruster <armbru@redhat.com>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Merge branch 'master' of git://git.qemu.org/qemu into prep-up
Conflicts: hw/Makefile.objs hw/ppc_prep.c
Signed-off-by: Andreas Färber <andreas.faerber@web.de>
uhci: stop using portio lists
dataplane: add virtio-blk data plane code
virtio-blk-data-plane is a subset implementation of virtio-blk. It onlyhandles read, write, and flush requests. It does this using a dedicatedthread that executes an epoll(2)-based event loop and processes I/O...
dataplane: add virtqueue vring code
The virtio-blk-data-plane cannot access memory using the usual QEMUfunctions since it executes outside the global mutex and the memory APIsare this time are not thread-safe.
This patch introduces a virtqueue module based on the kernel's vhost...
spice-qemu-char: add spiceport chardev
Add a new spice chardev to allow arbitrary communication between thehost and the Spice client via the spice server.
Examples:
This allows the Spice client to have a special port for the qemumonitor:
... -chardev spiceport,name=org.qemu.monitor,id=monitorport...
pseries: Add tracepoints to the XICS interrupt controller
This patch adds tracing / debugging calls to the XICS interrupt controllerimplementation used on the pseries machine.
Signed-off-by: Ben Herrenschmidt <benh@kernel.crashing.org>Signed-off-by: David Gibson <david@gibson.dropbear.id.au>...
ehci: handle dma errors
Starting with commit 1c380f9460522f32c8dd2577b2a53d518ec91c6d dmatransfers can actually fail. This patch makes ehci keep trackof the busmaster bit in pci config space, by setting/clearing thedma_context pointer. Attempts to dma without context will result...
usb-host: update tracing
Now that we have separate status and length fields in USBPacketupdate the completion tracepoint to log both.
hw/qxl: qxl_send_events: nop if stopped
Added a trace point for easy logging.
RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=870972
Merge remote-tracking branch 'kraxel/usb.69' into staging
xhci: add port trace points
Merge remote-tracking branch 'origin/master' into threadpool
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
aio: add generic thread-pool facility
Add a generic thread-pool. The code is roughly based on posix-aio-compat.c,with some changes, especially the following:
- use QemuSemaphore instead of QemuCond;
- separate the state of the thread from the return code of the worker...
Merge remote-tracking branch 'kraxel/usb.68' into staging
uhci: Verify queue has not been changed by guest
According to the spec a guest can unlink a qh, and then as soon as frindexhas changed by 1 since the unlink, assume it is idle and re-use it. Howeverfor various reasons, we cannot simply consider a qh as unlinked if we've not...
block: add block-job-complete
While streaming can be dropped as soon as it progressed through the wholeimage, mirroring needs to be completed manually for two reasons: 1) so thatmanagement knows exactly when the VM switches to the target; 2) becausefor other use cases such as replication, we may leave the operation running...
mirror: introduce mirror job
This patch adds the implementation of a new job that mirrors a disk toa new image while letting the guest continue using the old image.The target is treated as a "black box" and data is copied from thesource to the target in the background. This can be used for several...
ram: create trace event for migration sync bitmap
Signed-off-by: Juan Quintela <quintela@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
qmp: add block-job-pause and block-job-resume
Add QMP commands matching the functionality.
Paused jobs cannot be canceled without first resuming them. Thisensures that I/O errors are never missed by management. However, anoptional force argument can be specified to allow that....
blockdev: rename block_stream_cb to a generic block_job_cb
Signed-off-by: Jeff Cody <jcody@redhat.com>Reviewed-by: Eric Blake <eblake@redhat.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block: add live block commit functionality
This adds the live commit coroutine. This iteration focuses on thecommit only below the active layer, and not the active layer itself.
The behaviour is similar to block streaming; the sectors are walkedthrough, and anything that exists above 'base' is committed back down...
Merge branch 'usb.65' of git://git.kraxel.org/qemu
hw/qxl: support client monitor configuration via device
Until now we used only the agent to change the monitor count and eachmonitor resolution. This patch introduces the qemu part of using thedevice as the mediator instead of the agent via virtio-serial....
hw/qxl: tracing fixes
Add two new trace events:qxl_send_events(int qid, uint32_t events) "%d %d" qxl_set_guest_bug(int qid) "%d"
Change qxl_io_unexpected_vga_mode parameters to be equivalent to thoseof qxl_io_write for easier grouping under a single systemtap probe....
qxl: add trace-event for QXL_IO_LOG
ehci: switch to new-style memory ops
Also register different memory regions for capabilities,operational registers and port status registers. Createseparate tracepoints for operational regs and port statusregs. Ditch a bunch of sanity checks because the memory...
xhci: add msix support
xhci: add XHCIInterrupter
Move all state belonging to the (single) interrupter into a separatestruct. First step in adding support for multiple interrupters.
xhci: drop buffering
This patch splits the xhci_xfer_data function into three.The xhci_xfer_data function used to do does two things:
(1) copy transfer data between guest memory and a temporary buffer. (2) report transfer results to the guest using events....
xhci: trace cc codes in cleartext
xhci: add trace_usb_xhci_ep_set_dequeue
usb3: bos decriptor
Add support for creating BOS descriptor anddevice cappability descriptors.
ehci: trace guest bugs
make qemu_queue_{cancel,reset} return the number of packets released,so the caller can figure whenever there have been active packets eventhough there shouldn't have been any. Add tracepoint to log this.
ehci: add doorbell trace events
qxl: add QXL_IO_MONITORS_CONFIG_ASYNC
Revision bumped to 4 for new IO support, enabled for spice-server >=0.11.1. New io enabled if revision is 4. Revision can be set to 4.
[ kraxel: 3 continues to be the default revision. Once we have a new stable spice-server release and the qemu patches to enable...
prep: Add pc87312 Super I/O emulation
This provides floppy and IDE controllers as well as serial and parallelports. However, dynamic configuration of devices is not yet supported.
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>[AF: QOM'ify, split out header, create CharDriverState if absent]...
pseries: Add trace event for PCI irqs
This adds a trace event in the pseries PCI specific set_irq() function toassist in debugging.
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>Signed-off-by: David Gibson <david@gibson.dropbear.id.au>[agraf: add trace.h include]...
pseries: Add PCI MSI/MSI-X support
This patch implements MSI and MSI-X support for the pseries PCI hostbridge. To do this it adds:
scsi: establish precedence levels for unit attention
When a device is resized, we will report a unit attention conditionfor CAPACITY DATA HAS CHANGED. However, we should ensure that thiscondition does not override a more important unit attention condition....
scsi: add tracepoint for scsi_req_cancel
megasas: Replace trace_megasas_dcmd_dump_frame()
trace_megasas_dcmd_dump_frame() takes 9 arguments, which israther much. Plus the trace infrastructure doesn't supportit. As we can get the information via other means it's pointlessto have it in the driver, so rather use some proper trace...
Merge remote-tracking branch 'kwolf/for-anthony' into staging
Merge remote-tracking branch 'kraxel/usb.57' into staging
hd-geometry: Add tracepoints
Signed-off-by: Markus Armbruster <armbru@redhat.com>Signed-off-by: Kevin Wolf <kwolf@redhat.com>
hd-geometry: Switch to uint32_t to match BlockConf
Best to use the same type, to avoid unwanted truncation or signextension.
BlockConf can't use plain int for cyls, heads and secs, becauseinteger properties require an exact width.
esp: add AMD PCscsi emulation (PCI SCSI adapter)
The PCI version is supported in lots of Operating Systems,and has been successfully tested on:- MS DOS 6.22 (using DC390 driver)- MS Windows 3.11 (using DC390 driver)- MS Windows 98 SE (using default driver)...
esp: use trace framework instead of stderr output
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org>Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
esp: implement Reset ATN command
esp: implement Disable selection command
ehci: implement Interrupt Threshold Control support
Also reorganize and comment the irq functions while being at it.
usb: add usb attached scsi emulation
$subject says all. First cut.
It's a pure UAS (usb attached scsi) emulation, without BOT (bulk-onlytransport) compatibility. If your guest can't handle it use usb-storageinstead.
The emulation works like any other scsi hba emulation (eps, lsi, virtio,...