aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-11-14fdc-tests: add tests for VERIFY commandHervé Poussineau1-3/+13
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc: implement VERIFY commandHervé Poussineau1-7/+18
VERIFY command is like a READ command, except that read data is not transfered by DMA. As DMA engine is not used, so we have to start data transfer ourselves. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc-test: Check READ IDKevin Wolf1-0/+66
ST0 shouldn't include 0x20 (FD_SR0_SEEK) after READ ID. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Tested-by: Hervé Poussineau <hpoussin@reactos.org>
2012-11-14fdc: fix false FD_SR0_SEEKHervé Poussineau2-6/+10
Do not always set FD_SR0_SEEK, as callers already set it if needed. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc: fix FD_SR0_SEEK for initial seek on DMA transfersHervé Poussineau1-7/+1
fdctrl_start_transfer() used to set FD_SR0_SEEK no matter if there actually was a seek or not. This is obviously wrong. fdctrl_start_transfer() has this information because it performs the initial seek itself. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc: fix FD_SR0_SEEK for non-DMA transfers and multi sectors transfersHervé Poussineau1-2/+4
On non-DMA transfers, fdctrl_stop_transfer() used to set FD_SR0_SEEK no matter if there actually was a seek or not. This is obviously wrong. fdctrl_seek_to_next_sect() has this information because it performs the seek itself. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc: use status0 field instead of a local variableHervé Poussineau1-11/+16
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc-test: add tests for non-DMA READ commandHervé Poussineau1-0/+98
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc-test: insert media before fuzzing registersHervé Poussineau1-0/+1
A media will be required for future fdc tests. Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc-test: split test_media_change() test, so insert part can be reusedHervé Poussineau1-1/+8
Signed-off-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14fdc: Remove status0 parameter from fdctrl_set_fifo()Kevin Wolf1-17/+16
It decided whether an interrupt is triggered. Only one caller made use of this functionality, so move the code there. In this one caller, the interrupt must actually be triggered unconditionally, like it was before commit 2fee0088. For example, a successful read without an implied seek can result in st0 = 0, but still triggers the interrupt. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Tested-by: Hervé Poussineau <hpoussin@reactos.org>
2012-11-14aio: rename AIOPool to AIOCBInfoStefan Hajnoczi15-46/+46
Now that AIOPool no longer keeps a freelist, it isn't really a "pool" anymore. Rename it to AIOCBInfo and make it const since it no longer needs to be modified. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14aio: use g_slice_alloc() for AIOCB poolingStefan Hajnoczi2-13/+4
AIO control blocks are frequently acquired and released because each aio request involves at least one AIOCB. Therefore, we pool them to avoid heap allocation overhead. The problem with the freelist approach in AIOPool is thread-safety. If we want BlockDriverStates to associate with AioContexts that execute in multiple threads, then a global freelist becomes a problem. This patch drops the freelist and instead uses g_slice_alloc() which is tuned for per-thread fixed-size object pools. qemu_aio_get() and qemu_aio_release() are now thread-safe. Note that the change from g_malloc0() to g_slice_alloc() should be safe since the freelist reuse case doesn't zero the AIOCB either. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14aio: switch aiocb_size type int -> size_tStefan Hajnoczi1-1/+1
Using appropriate types for variables is a good thing :). All users simply do sizeof(MyType) and the value is passed to a memory allocator, it should be size_t. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14tests: allow qemu-iotests to be run against nbd backendNick Thomas3-8/+38
To do this, we start a qemu-nbd process at _make_test_img and kill it in _cleanup_test_img. $TEST_IMG is changed to point at the TCP server. We also remove the checks for existence of binaries from common.config - they're duplicated in common, and we can make the qemu-nbd check conditional on $IMGPROTO being "nbd" if we do it there. Signed-off-by: Nick Thomas <nick@bytemark.co.uk> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14block: Workaround for older versions of MinGW gccStefan Weil1-5/+5
Versions before gcc-4.6 don't support unnamed fields in initializers (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=10676). Offset and OffsetHigh belong to an unnamed struct which is part of an unnamed union. Therefore the original code does not work with older versions of gcc. Signed-off-by: Stefan Weil <sw@weilnetz.de> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14MAINTAINERS: add Stefan Hajnoczi as block and virtio-blk co-maintainerStefan Hajnoczi1-0/+2
Kevin has requested co-maintainership to give him more time to write code. We will alternate patch review duties on a weekly basis. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14qemu-iotests: qcow2: Test growing large refcount tableKevin Wolf5-5/+134
Actually writing all the content with 512 byte sector size would take forever, therefore build the image file with a Python script and use qemu-io for the last write that actually triggers the refcount table growth. Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14qcow2: Fix refcount table size calculationKevin Wolf1-1/+2
A missing factor for the refcount table entry size in the calculation could mean that too little memory was allocated for the in-memory representation of the table, resulting in a buffer overflow. Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Michael Tokarev <mjt@tls.msk.ru> Tested-by: Michael Tokarev <mjt@tls.msk.ru>
2012-11-14qemu: Document GlusterFS block driver usageBharata B Rao2-0/+66
Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2012-11-14Merge remote-tracking branch 'awilliam/tags/vfio-pci-for-qemu-1.3.0-rc0' ↵Anthony Liguori9-49/+241
into staging vfio-pci: KVM INTx accel & common msi_get_message * awilliam/tags/vfio-pci-for-qemu-1.3.0-rc0: vfio-pci: Use common msi_get_message vfio-pci: Add KVM INTx acceleration linux-headers: Update to 3.7-rc5 Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-11-14Merge remote-tracking branch 'kraxel/pixman.v5' into stagingAnthony Liguori4-9/+28
* kraxel/pixman.v5: pixman: cleanup properly on make distclean pixman: add licensing info pixman: build internal version early pixman: pass cflags, add -fPIC pixman: disable gtk pixman: set --host for cross builds pixman: add output dir to include path Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-11-14Merge remote-tracking branch 'bonzini/nbd-next' into stagingAnthony Liguori8-36/+275
* bonzini/nbd-next: nbd: fixes to read-only handling hmp: add NBD server commands nbd: disallow nbd-server-add before nbd-server-start nbd: force read-only export for read-only devices nbd: fix nbd_server_stop crash when no server was running nbd: accept URIs nbd: accept relative path to Unix socket qemu-nbd: initialize main loop before block layer Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-11-14Merge remote-tracking branch 'bonzini/scsi-next' into stagingAnthony Liguori7-24/+46
* bonzini/scsi-next: virtio-scsi: use dma_context_memory dma: Define dma_context_memory and use in sysbus-ohci megasas: Correct target/lun mapping scsi-disk: flush cache after disabling it megasas: do not include block_int.h scsi: remove superfluous call to scsi_device_set_ua virtio-scsi: factor checks for VIRTIO_SCSI_S_DRIVER_OK when reporting events scsi: do not return short responses for emulated commands Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-11-14Merge remote-tracking branch 'kraxel/usb.70' into stagingAnthony Liguori26-797/+775
* kraxel/usb.70: ehci: fix migration xhci: Fix some DMA host endian bugs usb/combined-packet: Move freeing of combined to usb_combined_packet_remove() xhci: Add support for packets with both data and an error status ehci: Add support for packets with both data and an error status ehci: Get rid of the magical PROC_ERR status usb-redir: Allow packets to have both data and an error-status usb: split packet result into actual_length + status Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-11-14Merge remote-tracking branch 'spice/spice.v63' into stagingAnthony Liguori10-274/+79
* spice/spice.v63: spice: fix initialization order pflib: unused, remove it. spice: switch to pixman qxl: call dpy_gfx_resize when entering vga mode qxl: fix cursor reset hw/qxl: qxl_send_events: nop if stopped hw/qxl: guest bug on primary create with stride %4 != 0 Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
2012-11-14pixman: cleanup properly on make distcleanGerd Hoffmann1-0/+1
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-11-14pixman: add licensing infoGerd Hoffmann2-0/+10
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-11-14pixman: build internal version earlyGerd Hoffmann1-3/+4
Signed-off-by: Eric Johnson <ericj@mips.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-11-14pixman: pass cflags, add -fPICGerd Hoffmann1-1/+1
Pass on CFLAGS to the pixman configure script. Add -fPIC to the cflags, needed to make the final link succeed. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-11-14pixman: disable gtkGerd Hoffmann1-1/+1
gtk is only needed to build test cases. Disable it to simplify the build. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-11-14pixman: set --host for cross buildsGerd Hoffmann2-1/+6
Set --host when calling pixman configure while doing cross builds so pixman's autoconf picks up the cross build tools correctly. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-11-14pixman: add output dir to include pathGerd Hoffmann1-5/+7
Needed to make sure the (generated) pixman-version.h file is found. Based on a patch from Blue Swirl. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
2012-11-13vfio-pci: Use common msi_get_messageAlex Williamson1-23/+1
We can get rid of our local version now that a helper exists. Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2012-11-13vfio-pci: Add KVM INTx accelerationAlex Williamson1-0/+186
This makes use of the new level irqfd support enabling bypass of qemu userspace both on INTx injection and unmask. This significantly boosts the performance of devices making use of legacy interrupts (ex. ~60% better netperf TCP_RR scores for an e1000e assigned to a Linux guest and booted with pci=nomsi). This also avoids flipping mmaps on and off to simulate EOIs, so greatly improves performance of device access in addition to interrupt latency. Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2012-11-13linux-headers: Update to 3.7-rc5Alex Williamson8-26/+54
update-linux-headers.sh script run against Linux tag v3.7-rc5 Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2012-11-13nbd: fixes to read-only handlingPaolo Bonzini1-13/+12
We do not need BLKROSET if the kernel supports setting flags. Also, always do BLKROSET even for a read-write export, otherwise the read-only state remains "sticky" after the invocation of "qemu-nbd -r". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12aio: fix aio_ctx_prepare with idle bottom halvesPaolo Bonzini1-4/+2
Commit ed2aec4867f0d5f5de496bb765347b5d0cfe113d changed the return value of aio_ctx_prepare from false to true when only idle bottom halves are available. This broke PC old-style DMA, which uses them. Fix this by making aio_ctx_prepare return true only when non-idle bottom halves are scheduled to run. Reported-by: malc <av1474@comtv.ru> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: malc <av1474@comtv.ru>
2012-11-12virtio-scsi: use dma_context_memoryPaolo Bonzini1-1/+1
Until address_space_rw was introduced, NULL was accepted as a placeholder for DMA with no IOMMU (to address_space_memory). This does not work anymore, and dma_context_memory needs to be specified explicitly. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12dma: Define dma_context_memory and use in sysbus-ohciPeter Maydell3-1/+11
Define a new global dma_context_memory which is a DMAContext corresponding to the global address_space_memory AddressSpace. This can be used by sysbus peripherals like sysbus-ohci which need to do DMA. In particular, use it in the sysbus-ohci device, which fixes a segfault when attempting to use that device. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
2012-11-12megasas: Correct target/lun mappingHannes Reinecke2-1/+2
The structure to reference a logical drive has an unused field, which can be used to carry the lun ID. This enabled seabios to establish the proper target/LUN mapping. Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12scsi-disk: flush cache after disabling itPaolo Bonzini1-0/+9
SBC says that "if an application client changes the WCE bit from one to zero via a MODE SELECT command, then the device server shall write any data in volatile cache to non-volatile medium before completing the command". Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12megasas: do not include block_int.hPaolo Bonzini1-1/+0
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12scsi: remove superfluous call to scsi_device_set_uaPaolo Bonzini1-1/+0
Suggested by Laszlo Ersek. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12virtio-scsi: factor checks for VIRTIO_SCSI_S_DRIVER_OK when reporting eventsPaolo Bonzini1-3/+5
Suggested by Laszlo Ersek. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12scsi: do not return short responses for emulated commandsPaolo Bonzini1-16/+18
The inquiry command, for the case of VPD=1, was returning short responses; the number of returned bytes was just the number of bytes in the request, without padding to the specified allocation length with zero bytes. This is usually harmless, but it is a violation of the SCSI specification. To fix this, always pad with zero bytes to r->cmd.xfer in scsi_disk_emulate_command, and return at most r->buflen bytes (the size of the buffer for command data) rather than at most buflen bytes (the number of bytes that was filled in). Before this patch, "strace sg_inq -p0x83 /dev/sda" would report a non-zero resid value. After this patch, it reports resid=0. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12hmp: add NBD server commandsPaolo Bonzini3-0/+124
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12nbd: disallow nbd-server-add before nbd-server-startPaolo Bonzini1-0/+5
It works nicely with the QMP commands, but it adds useless complication with HMP. In particular, see the following: (qemu) nbd_server_add -w scsi0-hd0 (qemu) nbd_server_start -a localhost:10809 NBD server already exporting device scsi0-hd0 Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12nbd: force read-only export for read-only devicesPaolo Bonzini1-0/+7
This is the desired behavior for HMP, but it is a better choice for QMP as well. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2012-11-12nbd: fix nbd_server_stop crash when no server was runningPaolo Bonzini1-3/+5
This failed on the new assertion of qemu_set_fd_handler2: qemu-system-x86_64: /home/pbonzini/work/upstream/qemu/iohandler.c:60: qemu_set_fd_handler2: Assertion `fd >= 0' failed. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>