[Qemu-commits] [qemu/qemu] 924fe1: aio: fix qemu_bh_schedule() bh-ctx race condition
Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: 924fe1293c3e7a3c787bbdfb351e7f168caee3e9 https://github.com/qemu/qemu/commit/924fe1293c3e7a3c787bbdfb351e7f168caee3e9 Author: Stefan Hajnoczi stefa...@redhat.com Date: 2014-06-04 (Wed, 04 Jun 2014) Changed paths: M async.c Log Message: --- aio: fix qemu_bh_schedule() bh-ctx race condition qemu_bh_schedule() is supposed to be thread-safe at least the first time it is called. Unfortunately this is not quite true: bh-scheduled = 1; aio_notify(bh-ctx); Since another thread may run the BH callback once it has been scheduled, there is a race condition if the callback frees the BH before aio_notify(bh-ctx) has a chance to run. Reported-by: Stefan Priebe s.pri...@profihost.ag Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com Tested-by: Stefan Priebe s.pri...@profihost.ag Commit: 2572b37a4751cc967582d7d04f21d9bf97187ae5 https://github.com/qemu/qemu/commit/2572b37a4751cc967582d7d04f21d9bf97187ae5 Author: Stefan Hajnoczi stefa...@redhat.com Date: 2014-06-04 (Wed, 04 Jun 2014) Changed paths: M block.c Log Message: --- block: use BlockDriverState AioContext Drop the assumption that we're using the main AioContext. Convert qemu_aio_wait() to aio_poll() and qemu_bh_new() to aio_bh_new() so the BlockDriverState AioContext is used. Note there is still one qemu_aio_wait() left in bdrv_create() but we do not have a BlockDriverState there and only main loop code invokes this function. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: ed78cda3de92056737364ab3cb748b16f5f17dea https://github.com/qemu/qemu/commit/ed78cda3de92056737364ab3cb748b16f5f17dea Author: Stefan Hajnoczi stefa...@redhat.com Date: 2014-06-04 (Wed, 04 Jun 2014) Changed paths: M block.c Log Message: --- block: acquire AioContext in bdrv_*_all() bdrv_close_all(), bdrv_commit_all(), bdrv_flush_all(), bdrv_invalidate_cache_all(), and bdrv_clear_incoming_migration_all() are called by main loop code and touch all BlockDriverState instances. Some BlockDriverState instances may be running in another AioContext. Make sure to acquire the AioContext before closing the BlockDriverState. This will protect against race conditions once virtio-blk data-plane is using the BlockDriverState from another AioContext event loop. Note that this patch does not convert bdrv_drain_all() yet since that conversion is non-trivial. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 9b536adcbefb72090f43c9715ce042e37e47af73 https://github.com/qemu/qemu/commit/9b536adcbefb72090f43c9715ce042e37e47af73 Author: Stefan Hajnoczi stefa...@redhat.com Date: 2014-06-04 (Wed, 04 Jun 2014) Changed paths: M block.c Log Message: --- block: acquire AioContext in bdrv_drain_all() Modify bdrv_drain_all() to take into account that BlockDriverState instances may be running in different AioContexts. This patch changes the implementation of bdrv_drain_all() while preserving the semantics. Previously kicking throttled requests and checking for pending requests were done across all BlockDriverState instances in sequence. Now we process each BlockDriverState in turn, making sure to acquire and release its AioContext. This prevents race conditions between the thread executing bdrv_drain_all() and the thread running the AioContext. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: dcd042282d855edf70df90b7d61d33b515320b7a https://github.com/qemu/qemu/commit/dcd042282d855edf70df90b7d61d33b515320b7a Author: Stefan Hajnoczi stefa...@redhat.com Date: 2014-06-04 (Wed, 04 Jun 2014) Changed paths: M block.c M include/block/block.h M include/block/block_int.h Log Message: --- block: add bdrv_set_aio_context() Up until now all BlockDriverState instances have used the QEMU main loop for fd handlers, timers, and BHs. This is not scalable on SMP guests and hosts so we need to move to a model with multiple event loops on different host CPUs. bdrv_set_aio_context() assigns the AioContext event loop to use for a particular BlockDriverState. It first detaches the entire BlockDriverState graph from the current AioContext and then attaches to the new AioContext. This function will be used by virtio-blk data-plane to assign a BlockDriverState to its IOThread AioContext. Make bdrv_aio_set_context() public since data-plane should not include block_int.h. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 7e1efdf0a30faa2b3e560deafe16b8bd12c6f399 https://github.com/qemu/qemu/commit/7e1efdf0a30faa2b3e560deafe16b8bd12c6f399 Author: Stefan Hajnoczi stefa...@redhat.com Date: 2014-06-04 (Wed, 04 Jun 2014) Changed paths: M block/blkdebug.c Log Message: --- blkdebug: use BlockDriverState's AioContext Drop the assumption that
[Qemu-commits] [qemu/qemu] 40e76f: net: xilinx_ethlite: Fix Rx-pong interrupt
Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: 40e76f736d09535bc20e980a06c059229c7b5265 https://github.com/qemu/qemu/commit/40e76f736d09535bc20e980a06c059229c7b5265 Author: Peter Crosthwaite peter.crosthwa...@xilinx.com Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M hw/net/xilinx_ethlite.c Log Message: --- net: xilinx_ethlite: Fix Rx-pong interrupt There is no CTRL_I bit in the pong buffer control register. The CTRL_I bit from the ping buffer masks both ping and pong buffers. Fix. Signed-off-by: Peter Crosthwaite peter.crosthwa...@xilinx.com Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: b44672849ad9baaa6734f16bfd7aa0d6b0780065 https://github.com/qemu/qemu/commit/b44672849ad9baaa6734f16bfd7aa0d6b0780065 Author: Jiri Pirko j...@resnulli.us Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M hw/net/vmxnet3.c Log Message: --- vmxnet3: fix msix vectors unuse In vmxnet3_cleanup_msix(), there is called msix_vector_unuse() with VMXNET3_MAX_INTRS. That is not correct since vector of value VMXNET3_MAX_INTRS was never used. Also all the used vectors are not un-used. So call vmxnet3_unuse_msix_vectors() instead which does the correct job. Signed-off-by: Jiri Pirko j...@resnulli.us Acked-by: Dmitry Fleytman dmi...@daynix.com Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 8597f2e19e68a70e4f45de7a5f29b4fdc047fcff https://github.com/qemu/qemu/commit/8597f2e19e68a70e4f45de7a5f29b4fdc047fcff Author: Gabriel L. Somlo gso...@gmail.com Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M hw/net/e1000.c M hw/net/e1000_regs.h Log Message: --- e1000: allow command-line selection of card model Allow selection of different card models from the qemu command line, to better accomodate a wider range of guests. Signed-off-by: Romain Dolbeau rom...@dolbeau.org Signed-off-by: Gabriel Somlo so...@cmu.edu Reviewed-by: Michael S. Tsirkin m...@redhat.com Reviewed-by: Peter Crosthwaite peter.crosthwa...@xilinx.com Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: b167383ffbe995c6d48fbe8ca2bab5eb667e45dc https://github.com/qemu/qemu/commit/b167383ffbe995c6d48fbe8ca2bab5eb667e45dc Author: Gabriel L. Somlo gso...@gmail.com Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M tests/e1000-test.c Log Message: --- tests: e1000: test additional device IDs Update e1000-test.c to check all currently supported devices. Suggested-by: Andreas Färber afaer...@suse.de Signed-off-by: Gabriel Somlo so...@cmu.edu Reviewed-by: Michael S. Tsirkin m...@redhat.com Reviewed-by: Peter Crosthwaite peter.crosthwa...@xilinx.com Reviewed-by: Stefan Hajnoczi stefa...@redhat.com Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 7efea763772c815ad6220d5ea7a46447329f6015 https://github.com/qemu/qemu/commit/7efea763772c815ad6220d5ea7a46447329f6015 Author: Gabriel L. Somlo gso...@gmail.com Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M hw/net/e1000.c M tests/e1000-test.c Log Message: --- e1000: remove broken support for 82573L Currently, e1000 support is based on the manual for the 8254xx model series. 82573x models are documented in a separate manual (see http://www.intel.com/content/dam/www/public/us/en/documents/manuals/pcie-gbe-controllers-open-source-manual.pdf) and the 82573L device ID no longer works correctly on either Linux (3.14.*) or Windows 7. This patch removes stale code claiming to support 82573L, cleaning up the code base for the remaining 8254xx model series. Signed-off-by: Gabriel Somlo so...@cmu.edu Reviewed-by: Michael S. Tsirkin m...@redhat.com Reviewed-by: Peter Crosthwaite peter.crosthwa...@xilinx.com Reviewed-by: Stefan Hajnoczi stefa...@redhat.com Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 4a331bb33bdf112ba95470e5d6ea3561b049c280 https://github.com/qemu/qemu/commit/4a331bb33bdf112ba95470e5d6ea3561b049c280 Author: Peter Maydell peter.mayd...@linaro.org Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M hw/net/e1000.c M hw/net/e1000_regs.h M hw/net/vmxnet3.c M hw/net/xilinx_ethlite.c M tests/e1000-test.c Log Message: --- Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging Net patches # gpg: Signature made Mon 09 Jun 2014 14:41:34 BST using RSA key ID 81AB73C8 # gpg: Good signature from Stefan Hajnoczi stefa...@redhat.com # gpg: aka Stefan Hajnoczi stefa...@gmail.com * remotes/stefanha/tags/net-pull-request: e1000: remove broken support for 82573L tests: e1000: test additional device IDs e1000: allow command-line selection of card model vmxnet3: fix msix vectors unuse net: xilinx_ethlite: Fix Rx-pong interrupt Signed-off-by: Peter Maydell peter.mayd...@linaro.org Compare:
[Qemu-commits] [qemu/qemu] 26896c: trace: add pid field to simpletrace record
Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: 26896cbf353e3017f76da8193074839b6e875250 https://github.com/qemu/qemu/commit/26896cbf353e3017f76da8193074839b6e875250 Author: Stefan Hajnoczi stefa...@redhat.com Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M trace/simple.c Log Message: --- trace: add pid field to simpletrace record It is useful to know the QEMU process ID when working with traces from multiple VMs. Although the trace filename may contain the pid, tools that aggregate traces or even trace globally need somewhere to record the pid. There is a reserved field in the trace event header struct that we can use. It is not necessary to bump the simpletrace file format version number because it has already been incremented for the QEMU 2.1 release cycle in commit trace: [simple] Bump up log version number. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 80ff35cd3ff451e8f200413ddf27816058630c1f https://github.com/qemu/qemu/commit/80ff35cd3ff451e8f200413ddf27816058630c1f Author: Stefan Hajnoczi stefa...@redhat.com Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M scripts/simpletrace.py Log Message: --- simpletrace: add support for trace record pid field Extract the pid field from the trace record and print it. Change the trace record tuple from: (event_num, timestamp, arg1, ..., arg6) to: (event_num, timestamp, pid, arg1, ..., arg6) Trace event methods now support 3 prototypes: 1. event-name(arg1, arg2, arg3) 2. event-name(timestamp, arg1, arg2, arg3) 3. event-name(timestamp, pid, arg1, arg2, arg3) Existing script continue to work without changes, they only know about prototypes 1 and 2. Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 82432638ebeedda8a2e18838b6fbef4b14a94f31 https://github.com/qemu/qemu/commit/82432638ebeedda8a2e18838b6fbef4b14a94f31 Author: Alexey Kardashevskiy a...@ozlabs.ru Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M trace/control.c Log Message: --- trace: Replace error with warning if event is not defined At the moment QEMU exits if trace point is not defined which makes a developer life harder if he has to switch between branches with different traces implemented. This replaces error+exit wit WARNING if the tracepoint does not exist or not traceable. Signed-off-by: Alexey Kardashevskiy a...@ozlabs.ru Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 5b808275f3bbe8cc95bb9301f4d5a41331d0e0e6 https://github.com/qemu/qemu/commit/5b808275f3bbe8cc95bb9301f4d5a41331d0e0e6 Author: Lluís Vilanova vilan...@ac.upc.edu Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M .travis.yml M Makefile M Makefile.target M configure M docs/tracing.txt M qemu-io.c M scripts/tracetool.py M scripts/tracetool/__init__.py M scripts/tracetool/backend/__init__.py M trace/Makefile.objs M trace/control-internal.h M trace/control.c M trace/control.h R trace/default.c M trace/ftrace.c M trace/ftrace.h M trace/simple.c M trace/simple.h R trace/stderr.c M vl.c Log Message: --- trace: Multi-backend tracing Adds support to compile QEMU with multiple tracing backends at the same time. For example, you can compile QEMU with: $ ./configure --enable-trace-backends=ftrace,dtrace Where 'ftrace' can be handy for having an in-flight record of events, and 'dtrace' can be later used to extract more information from the system. This patch allows having both available without recompiling QEMU. Signed-off-by: Lluís Vilanova vilan...@ac.upc.edu Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: a35d9be622a85d9ad6be5448e78c8a3f95ee5f00 https://github.com/qemu/qemu/commit/a35d9be622a85d9ad6be5448e78c8a3f95ee5f00 Author: Alexey Kardashevskiy a...@ozlabs.ru Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M trace/control.c Log Message: --- trace: Replace fprintf with error_report and print location This replaces fprintf(stderr) with error_report. This moves local variables to the beginning of the function to comply with QEMU's coding style. Suggested-by: Lluís Vilanova vilan...@ac.upc.edu Signed-off-by: Alexey Kardashevskiy a...@ozlabs.ru Signed-off-by: Stefan Hajnoczi stefa...@redhat.com Commit: 14ac57339288c07b47e7e91fa192735158aa6a1e https://github.com/qemu/qemu/commit/14ac57339288c07b47e7e91fa192735158aa6a1e Author: Peter Maydell peter.mayd...@linaro.org Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M .travis.yml M Makefile M Makefile.target M configure M docs/tracing.txt M qemu-io.c M scripts/simpletrace.py M scripts/tracetool.py M scripts/tracetool/__init__.py M scripts/tracetool/backend/__init__.py M trace/Makefile.objs M trace/control-internal.h M trace/control.c M
[Qemu-commits] [qemu/qemu] 61e992: vexpress: Add support for the -bios flag to provid...
paths: M target-arm/helper.h M target-arm/iwmmxt_helper.c M target-arm/translate.c Log Message: --- target-arm: Delete unused iwmmxt_msadb helper The iwmmxt_msadb helper and its corresponding gen function are unused; delete them. (This function appears to have never been used right back to the initial implementation of iwMMXt; it is identical to iwmmxt_madduq, and is presumably an accidental remnant from the initial development.) Reviewed-by: Peter Crosthwaite peter.crosthwa...@xilinx.com Signed-off-by: Peter Maydell peter.mayd...@linaro.org Message-id: 1401822125-1822-1-git-send-email-peter.mayd...@linaro.org Commit: 7721a3044234c46cd6f5f899e7467dc9351f3c8d https://github.com/qemu/qemu/commit/7721a3044234c46cd6f5f899e7467dc9351f3c8d Author: Peter Maydell peter.mayd...@linaro.org Date: 2014-06-09 (Mon, 09 Jun 2014) Changed paths: M hw/arm/vexpress.c M linux-user/elfload.c M target-arm/cpu.c M target-arm/cpu.h M target-arm/cpu64.c M target-arm/crypto_helper.c M target-arm/helper-a64.c M target-arm/helper-a64.h M target-arm/helper.c M target-arm/helper.h M target-arm/iwmmxt_helper.c M target-arm/neon_helper.c M target-arm/translate-a64.c M target-arm/translate.c Log Message: --- Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20140609-1' into staging target-arm queue: * support -bios option in vexpress boards * register the Cortex-A57 impdef system registers * fix handling of UXN bit in ARMv8 page tables * complete support of crypto insns in A32/T32 * implement CRC and crypto insns in A64 * fix bugs in generic timer control register # gpg: Signature made Mon 09 Jun 2014 16:08:26 BST using RSA key ID 14360CDE # gpg: Good signature from Peter Maydell peter.mayd...@linaro.org * remotes/pmaydell/tags/pull-target-arm-20140609-1: target-arm: Delete unused iwmmxt_msadb helper target-arm: Fix errors in writes to generic timer control registers target-arm: A64: Implement two-register SHA instructions target-arm: A64: Implement 3-register SHA instructions target-arm: A64: Implement AES instructions target-arm: A32/T32: Mask CRC value in calling code, not helper target-arm: A64: Implement CRC instructions target-arm: VFPv4 implies half-precision extension target-arm: Clean up handling of ARMv8 optional feature bits target-arm: Remove unnecessary setting of feature bits target-arm: arm_any_initfn() should never set ARM_FEATURE_AARCH64 target-arm: A64: Use PMULL feature bit for PMULL target-arm: add support for v8 VMULL.P64 instruction target-arm: Allow 3reg_wide undefreq to encode more bad size options target-arm: add support for v8 SHA1 and SHA256 instructions target-arm: Correct handling of UXN bit in ARMv8 LPAE page tables target-arm: Prepare cpreg writefns/readfns for EL3/SecExt target-arm/cpu64.c: Actually register Cortex-A57 impdef registers vexpress: Add support for the -bios flag to provide firmware Signed-off-by: Peter Maydell peter.mayd...@linaro.org Compare: https://github.com/qemu/qemu/compare/14ac57339288...7721a3044234