[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-commits] [qemu/qemu] 16ef9d: qemu-thread: handle spurious futex_wa
From: |
GitHub |
Subject: |
[Qemu-commits] [qemu/qemu] 16ef9d: qemu-thread: handle spurious futex_wait wakeups |
Date: |
Mon, 14 Sep 2015 10:30:06 -0700 |
Branch: refs/heads/master
Home: https://github.com/qemu/qemu
Commit: 16ef9d0252318d7e32e445fd7474af55dbaab7db
https://github.com/qemu/qemu/commit/16ef9d0252318d7e32e445fd7474af55dbaab7db
Author: Emilio G. Cota <address@hidden>
Date: 2015-09-02 (Wed, 02 Sep 2015)
Changed paths:
M util/qemu-thread-posix.c
Log Message:
-----------
qemu-thread: handle spurious futex_wait wakeups
Signed-off-by: Emilio G. Cota <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 123fdbac9b8f1e394fbe92e8b5359193e94ba5bf
https://github.com/qemu/qemu/commit/123fdbac9b8f1e394fbe92e8b5359193e94ba5bf
Author: Emilio G. Cota <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M include/qemu/seqlock.h
Log Message:
-----------
seqlock: add missing 'inline' to seqlock_read_retry
Signed-off-by: Emilio G. Cota <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: d12f7309483e20d1bae9304f4b812bf53a8e6510
https://github.com/qemu/qemu/commit/d12f7309483e20d1bae9304f4b812bf53a8e6510
Author: Emilio G. Cota <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M include/qemu/seqlock.h
Log Message:
-----------
seqlock: read sequence number atomically
With this change we make sure that the compiler will not
optimise the read of the sequence number in any way.
Signed-off-by: Emilio G. Cota <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 46036b2462c7ff56c0af6466ea6b9248197a38a8
https://github.com/qemu/qemu/commit/46036b2462c7ff56c0af6466ea6b9248197a38a8
Author: Aníbal Limón <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M cpus.c
Log Message:
-----------
cpus.c: qemu_mutex_lock_iothread fix race condition at cpu thread init
When QEMU starts the RCU thread executes qemu_mutex_lock_thread
causing error "qemu:qemu_cpu_kick_thread: No such process" and exits.
This isn't occur frequently but in glibc the thread id can exist and
this not guarantee that the thread is on active/running state. If is
inserted a sleep(1) after newthread assignment [1] the issue appears.
So not make assumption that thread exist if first_cpu->thread is set
then change the validation of cpu to created that is set into cpu
threads (kvm, tcg, dummy).
[1]
https://sourceware.org/git/?p=glibc.git;a=blob;f=nptl/pthread_create.c;h=d10f4ea8004e1d8f3a268b95cc0f8d93b8d89867;hb=HEAD#l621
Cc: address@hidden
Signed-off-by: Aníbal Limón <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: f3926945c85689e8af324c0db0b39be771dbbebb
https://github.com/qemu/qemu/commit/f3926945c85689e8af324c0db0b39be771dbbebb
Author: Fam Zheng <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M include/qemu/main-loop.h
M iohandler.c
M main-loop.c
Log Message:
-----------
iohandler: Use aio API
iohandler.c shares the same interface with aio, but with duplicated
code. It's better to rebase iohandler, also because that aio is a
more friendly interface to multi-threads.
Create a global AioContext instance and let its GSource handle the
iohandler events.
Signed-off-by: Fam Zheng <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 6d1f252d8c1ba73bf6ed9af28731a9c9c3d473a2
https://github.com/qemu/qemu/commit/6d1f252d8c1ba73bf6ed9af28731a9c9c3d473a2
Author: Peter Lieven <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M block/iscsi.c
Log Message:
-----------
block/iscsi: validate block size returned from target
It has been reported that at least tgtd returns a block size of 0
for LUN 0. To avoid running into divide by zero later on and protect
against other problematic block sizes validate the block size right
at connection time.
Cc: address@hidden
Reported-by: Andrey Korolyov <address@hidden>
Signed-off-by: Peter Lieven <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 5f5b5942d56a138baad0ae01458d5d0e62d5be68
https://github.com/qemu/qemu/commit/5f5b5942d56a138baad0ae01458d5d0e62d5be68
Author: Andrey Smetanin <address@hidden>
Date: 2015-09-07 (Mon, 07 Sep 2015)
Changed paths:
M hw/misc/pvpanic.c
M include/sysemu/sysemu.h
M target-s390x/kvm.c
M vl.c
Log Message:
-----------
Added generic panic handler qemu_system_guest_panicked()
There are pieces of guest panic handling code
that can be shared in one generic function.
These code replaced by call qemu_system_guest_panicked().
Signed-off-by: Andrey Smetanin <address@hidden>
Signed-off-by: Denis V. Lunev <address@hidden>
CC: Paolo Bonzini <address@hidden>
CC: Andreas Färber <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 19d2b5e6ff7202c2bf45c547efa85ae6c2d76bbd
https://github.com/qemu/qemu/commit/19d2b5e6ff7202c2bf45c547efa85ae6c2d76bbd
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M hw/block/fdc.c
M hw/dma/i8257.c
M hw/sparc/sun4m.c
M hw/sparc64/sun4u.c
M include/hw/isa/isa.h
Log Message:
-----------
i8257: rewrite DMA_schedule to avoid hooking into the CPU loop
The i8257 DMA controller uses an idle bottom half, which by default
does not cause the main loop to exit. Therefore, the DMA_schedule
function is there to ensure that the CPU relinquishes the iothread
mutex to the iothread.
However, this is not enough since the iothread will call
aio_compute_timeout() and go to sleep again. In the iothread
world, forcing execution of the idle bottom half is much simpler,
and only requires a call to qemu_notify_event(). Do it, removing
the need for the "cpu_request_exit" pseudo-irq. The next patch
will remove it.
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 5039d6e23586fe6bbedc5e4fe302b48a66890ade
https://github.com/qemu/qemu/commit/5039d6e23586fe6bbedc5e4fe302b48a66890ade
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M hw/dma/i82374.c
M hw/dma/i8257.c
M hw/i386/pc.c
M hw/isa/i82378.c
M hw/mips/mips_fulong2e.c
M hw/mips/mips_jazz.c
M hw/mips/mips_malta.c
M hw/ppc/prep.c
M hw/sparc/sun4m.c
M hw/sparc64/sun4u.c
M include/hw/isa/isa.h
Log Message:
-----------
i8257: remove cpu_request_exit irq
This is unused. cpu_exit now is almost exclusively an internal function
to the CPU execution loop. In a few patches, we'll change the remaining
occurrences to qemu_cpu_kick, making it truly internal.
Reviewed-by: Richard henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 9373e63297c43752f9cf085feb7f5aed57d959f8
https://github.com/qemu/qemu/commit/9373e63297c43752f9cf085feb7f5aed57d959f8
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpu-exec.c
M cpus.c
M include/exec/exec-all.h
Log Message:
-----------
tcg: introduce tcg_current_cpu
This is already useful on Windows in order to remove tls.h, because
accesses to current_cpu are done from a different thread on that
platform. It will be used on POSIX platforms as soon TCG stops using
signals to interrupt the execution of translated code.
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: f240eb6fdcf63a5600e15fb44c6960586459a97f
https://github.com/qemu/qemu/commit/f240eb6fdcf63a5600e15fb44c6960586459a97f
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M exec.c
R include/qemu/tls.h
M include/qom/cpu.h
Log Message:
-----------
remove qemu/tls.h
TLS is now required on all platforms, so DECLARE_TLS/DEFINE_TLS is not
needed anymore. Removing it does not break Windows because of the
previous patch.
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: b0a46fa796504c7334202877a68c857e49f7c96c
https://github.com/qemu/qemu/commit/b0a46fa796504c7334202877a68c857e49f7c96c
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpu-exec.c
Log Message:
-----------
tcg: assign cpu->current_tb in a simpler place
TCG has not been reading cpu->current_tb from signal handlers for years.
The code that synchronized cpu_exec with the signal handler is not
needed anymore.
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: ab096a75cd626dcd4ad34b2a11652df0269bee0d
https://github.com/qemu/qemu/commit/ab096a75cd626dcd4ad34b2a11652df0269bee0d
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpu-exec.c
M qom/cpu.c
Log Message:
-----------
tcg: synchronize cpu->exit_request and cpu->tcg_exit_req accesses
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: aed807c8e2bf009b2c6a35490d4fd4383887221d
https://github.com/qemu/qemu/commit/aed807c8e2bf009b2c6a35490d4fd4383887221d
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpu-exec.c
M cpus.c
Log Message:
-----------
tcg: synchronize exit_request and tcg_current_cpu accesses
Synchronize the remaining pair of accesses in cpu_signal. These should
be necessary on Windows as well, at least in theory. Probably
SuspendProcess and ResumeProcess introduce some implicit memory
barrier.
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 9102dedaa1ee1e89ce4a81283c403ff4928e9ef9
https://github.com/qemu/qemu/commit/9102dedaa1ee1e89ce4a81283c403ff4928e9ef9
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpus.c
M gdbstub.c
M hw/ppc/spapr_rtas.c
Log Message:
-----------
use qemu_cpu_kick instead of cpu_exit or qemu_cpu_kick_thread
Use the same API to trigger interruption of a CPU, no matter if
under TCG or KVM. There is no difference: these calls come from
the CPU thread, so the qemu_cpu_kick calls will send a signal
to the running thread and it will be processed synchronously,
just like a call to cpu_exit. The only difference is in the
overhead, but neither call to cpu_exit (now qemu_cpu_kick)
is in a hot path.
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: e0c382113f768cc375a0d61b7cb3692f1b4bba58
https://github.com/qemu/qemu/commit/e0c382113f768cc375a0d61b7cb3692f1b4bba58
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpu-exec.c
M cpus.c
M include/exec/exec-all.h
M include/qom/cpu.h
Log Message:
-----------
tcg: signal-free qemu_cpu_kick
Signals are slow and do not exist on Win32. The previous patches
have done most of the legwork to introduce memory barriers (some
of them were even there already for the sake of Windows!) and
we can now set the flags directly in the iothread.
qemu_cpu_kick_thread is not used anymore on TCG, since the TCG thread is
never outside usermode while the CPU is running (not halted). Instead run
the content of the signal handler (now in qemu_cpu_kick_no_halt) directly.
qemu_cpu_kick_no_halt is also used in qemu_mutex_lock_iothread to avoid
the overhead of qemu_cond_broadcast.
Reviewed-by: Richard Henderson <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 3c9589e180d98cdadb143bd2a792fb9d19d9aec6
https://github.com/qemu/qemu/commit/3c9589e180d98cdadb143bd2a792fb9d19d9aec6
Author: Dr. David Alan Gilbert <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M include/exec/cpu-all.h
M include/exec/ram_addr.h
Log Message:
-----------
Move RAMBlock and ram_list to ram_addr.h
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 12a1ddc160cb6a73e8a6c319f3962a20da2cd22f
https://github.com/qemu/qemu/commit/12a1ddc160cb6a73e8a6c319f3962a20da2cd22f
Author: Michael Marineau <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M Makefile.target
Log Message:
-----------
Makefile.target: include top level build dir in vpath
Using ccache with CCACHE_BASEDIR set to $(SRC_PATH) or a parent will
rewrite all absolute paths to relative paths. This interacts poorly with
QEMU's two-level build directory scheme. For example, lets say
BUILD_DIR=$(SRC_PATH)/build so build/blockdev.d will contain:
blockdev.o: ../blockdev.c ../include/sysemu/block-backend.h \
Now the target build under build/x86_64-softmmu or similar will depend
on ../blockdev.o which in turn will get make to source ../blockdev.d to
check its dependencies. Since make always considers paths relative to
the current working directory rather than the makefile the path appeared
in the relative path to ../blockdev.c is useless.
This change simply adds the top level build directory to vpath so paths
relative to the source directory, top build directory, and target build
directory all work just fine.
Signed-off-by: Michael Marineau <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 5243722376873a48e9852a58b91f4d4101ee66e4
https://github.com/qemu/qemu/commit/5243722376873a48e9852a58b91f4d4101ee66e4
Author: Emilio G. Cota <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M util/rcu.c
Log Message:
-----------
rcu: init rcu_registry_lock after fork
We were unlocking this lock after fork, which is wrong since
only the thread that holds a mutex is allowed to unlock it.
Signed-off-by: Emilio G. Cota <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 492e1ca9bd3f43ba417a5cf918e6c769aa2478b9
https://github.com/qemu/qemu/commit/492e1ca9bd3f43ba417a5cf918e6c769aa2478b9
Author: Emilio G. Cota <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M include/qemu/rcu.h
Log Message:
-----------
rcu: fix comment with s/rcu_gp_lock/rcu_registry_lock/
Signed-off-by: Emilio G. Cota <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 709037636992e9289ce9147e59d56fb35d90b140
https://github.com/qemu/qemu/commit/709037636992e9289ce9147e59d56fb35d90b140
Author: Emilio G. Cota <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M linux-user/syscall.c
Log Message:
-----------
linux-user: call rcu_(un)register_thread on pthread_(exit|create)
Signed-off-by: Emilio G. Cota <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: d1142fb83efdcf8a6c2dee825569892203e16d2c
https://github.com/qemu/qemu/commit/d1142fb83efdcf8a6c2dee825569892203e16d2c
Author: Emilio G. Cota <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M translate-all.c
Log Message:
-----------
translate-all: remove obsolete comment about l1_map
l1_map is based on physical addresses in full-system mode, as pointed
out in an earlier comment. Said comment also mentions that virtual
addresses are only used in l1_map in user-only mode.
Signed-off-by: Emilio G. Cota <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 764e0fa497ff5bbc9c9d7c116da2f00f34e71716
https://github.com/qemu/qemu/commit/764e0fa497ff5bbc9c9d7c116da2f00f34e71716
Author: Carlos L. Torres <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M include/qemu-common.h
M tests/test-cutils.c
M util/cutils.c
Log Message:
-----------
cutils: Add qemu_strtol() wrapper
Add wrapper for strtol() function. Include unit tests.
Signed-off-by: Carlos L. Torres <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: c817c01548b1500753d0bea3852938d919161778
https://github.com/qemu/qemu/commit/c817c01548b1500753d0bea3852938d919161778
Author: Carlos L. Torres <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M include/qemu-common.h
M tests/test-cutils.c
M util/cutils.c
Log Message:
-----------
cutils: Add qemu_strtoul() wrapper
Add wrapper for strtoul() function. Include unit tests.
Signed-off-by: Carlos L. Torres <address@hidden>
Message-Id: <address@hidden>
[Fix tests for 32-bit build. - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 8ac4df40cc5de606a8ac9174e2340c21093b4e3b
https://github.com/qemu/qemu/commit/8ac4df40cc5de606a8ac9174e2340c21093b4e3b
Author: Carlos L. Torres <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M include/qemu-common.h
M tests/test-cutils.c
M util/cutils.c
Log Message:
-----------
cutils: Add qemu_strtoll() wrapper
Add wrapper for strtoll() function. Include unit tests.
Signed-off-by: Carlos L. Torres <address@hidden>
Message-Id: <address@hidden>
[Use int64_t in prototype, since that's what QEMU uses. - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 3904e6bf042391abc749d717465022e96e276fc7
https://github.com/qemu/qemu/commit/3904e6bf042391abc749d717465022e96e276fc7
Author: Carlos L. Torres <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M include/qemu-common.h
M tests/test-cutils.c
M util/cutils.c
Log Message:
-----------
cutils: Add qemu_strtoull() wrapper
Add wrapper for strtoull() function. Include unit tests.
Signed-off-by: Carlos L. Torres <address@hidden>
Message-Id: <address@hidden>
[Use uint64_t in prototype. - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: d4ba8cb0a17e7de54753ff1bdeee4428118bb9ab
https://github.com/qemu/qemu/commit/d4ba8cb0a17e7de54753ff1bdeee4428118bb9ab
Author: Carlos L. Torres <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M qmp.c
Log Message:
-----------
qmp: Add example usage of strto*l() qemu wrapper
Signed-off-by: Carlos L. Torres <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 690a35e1f2acf4ccd0501b18228bc6fba8f9c768
https://github.com/qemu/qemu/commit/690a35e1f2acf4ccd0501b18228bc6fba8f9c768
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M CODING_STYLE
Log Message:
-----------
CODING_STYLE: update mixed declaration rules
Mixed declarations do come in handy at the top of #ifdef blocks.
Reluctantly allow this particular usage and suggest an alternative.
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 71c47b01ca0df34d6b41e0975be6e0633c5254cf
https://github.com/qemu/qemu/commit/71c47b01ca0df34d6b41e0975be6e0633c5254cf
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M scripts/checkpatch.pl
Log Message:
-----------
checkpatch: adapt some tests to QEMU
Mostly change severity levels, but some tests can also be adjusted to refer
to QEMU APIs or data structures.
Reviewed-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: f1e155bbf863ade457019c6f09d4cba06b2d6bb4
https://github.com/qemu/qemu/commit/f1e155bbf863ade457019c6f09d4cba06b2d6bb4
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M scripts/checkpatch.pl
Log Message:
-----------
checkpatch: remove tests that are not relevant outside the kernel
Fully removing Sparse support requires more invasive changes. Only
remove the really kernel-specific parts such as address space names.
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: f42bf6a262ab5923a1a3bc8f731b830396937c47
https://github.com/qemu/qemu/commit/f42bf6a262ab5923a1a3bc8f731b830396937c47
Author: Gonglei <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M hw/scsi/vhost-scsi.c
Log Message:
-----------
vhost-scsi: fix wrong vhost-scsi firmware path
vhost-scsi bootindex does't work because Qemu passes
wrong fireware path to seabios.
before:
/address@hidden/address@hidden@0/address@hidden,0
after applying the patch:
/address@hidden/address@hidden/address@hidden/address@hidden,0
Reported-by: Subo <address@hidden>
Signed-off-by: Gonglei <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: c765fcac96e111199225c7387c01694fe076b341
https://github.com/qemu/qemu/commit/c765fcac96e111199225c7387c01694fe076b341
Author: Peter Crosthwaite <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M configure
Log Message:
-----------
configure: factor out adding disas configure
Every arch adds its disas configury to both its own config as well
config_disas_all. Make a small function do to both at once.
Signed-off-by: Peter Crosthwaite <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 3f7a899ff4e0681ed148b1cea07dc65550114fdb
https://github.com/qemu/qemu/commit/3f7a899ff4e0681ed148b1cea07dc65550114fdb
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
A scripts/cocci-macro-file.h
Log Message:
-----------
add macro file for coccinelle
Coccinelle chokes on some idioms from compiler.h and queue.h.
Extract those in a macro file, to be used with "--macro-file
scripts/cocci-macro-file.h".
Reviewed-by: Markus Armbruster <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 7b01cb974f1093885c40bf4d0d3e78e27e531363
https://github.com/qemu/qemu/commit/7b01cb974f1093885c40bf4d0d3e78e27e531363
Author: Alexandre Derumier <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M configure
Log Message:
-----------
configure: Add support for jemalloc
This adds "--enable-jemalloc" and "--disable-jemalloc" to allow linking
to jemalloc memory allocator.
We have already tcmalloc support,
but it seem to not working well with a lot of iothreads/disks.
The main problem is that tcmalloc use a shared thread cache of 16MB
by default.
With more threads, this cache is shared, and some bad garbage collections
can occur if the cache is too low.
It's possible to tcmalloc cache increase it with a env var:
TCMALLOC_MAX_TOTAL_THREAD_CACHE_BYTES=256MB
With default 16MB, performances are really bad with more than 2 disks.
Increasing to 256MB, it's helping but still have problem with 16
disks/iothreads.
Jemalloc don't have performance problem with default configuration.
Here the benchmark results in iops of 1 qemu vm randread 4K iodepth=32,
with rbd block backend (librbd is doing a lot of memory allocation),
1 iothread by disk
glibc malloc
------------
1 disk 29052
2 disks 55878
4 disks 127899
8 disks 240566
15 disks 269976
jemalloc
--------
1 disk 41278
2 disks 75781
4 disks 195351
8 disks 294241
15 disks 298199
tcmalloc 2.2.1 default 16M cache
--------------------------------
1 disk 37911
2 disks 67698
4 disks 41076
8 disks 43312
15 disks 37569
tcmalloc : 256M cache
---------------------------
1 disk 33914
2 disks 58839
4 disks 148205
8 disks 213298
15 disks 218383
Signed-off-by: Alexandre Derumier <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 0c71d41e2aa3c7356500ae624166f3bb8c201aee
https://github.com/qemu/qemu/commit/0c71d41e2aa3c7356500ae624166f3bb8c201aee
Author: Michael S. Tsirkin <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M scripts/dump-guest-memory.py
Log Message:
-----------
scripts/dump-guest-memory.py: fix after RAMBlock change
commit 9b8424d5735278ca382f11adc7c63072b632ab83
"exec: split length -> used_length/max_length"
changed field names in struct RAMBlock
It turns out that scripts/dump-guest-memory.py was
poking at this field, update it accordingly.
Cc: address@hidden
Cc: Paolo Bonzini <address@hidden>
Signed-off-by: Michael S. Tsirkin <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 376692b9dc6f02303ee07a4146d08d8727d79c0c
https://github.com/qemu/qemu/commit/376692b9dc6f02303ee07a4146d08d8727d79c0c
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpus.c
M include/qom/cpu.h
M qom/cpu.c
Log Message:
-----------
cpus: protect work list with work_mutex
Protect the list of queued work items with something other than
the BQL, as a preparation for running the work items outside it.
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: KONRAD Frederic <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: d5f8d61390de8f2acc0da93f184e421a709cb503
https://github.com/qemu/qemu/commit/d5f8d61390de8f2acc0da93f184e421a709cb503
Author: KONRAD Frederic <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpus.c
Log Message:
-----------
cpus: remove tcg_halt_cond and tcg_cpu_thread globals
This hides the tcg_halt_cond and tcg_cpu_thread global variables
inside qemu_tcg_init_vcpu. Multi-threaded TCG will need one
QemuCond and one QemuThread per virtual cpu, so it's preferrable
to use cpu->halt_cond and cpu->thread.
Signed-off-by: KONRAD Frederic <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 677ef6230b603571ae05125db469f7b4c8912a77
https://github.com/qemu/qemu/commit/677ef6230b603571ae05125db469f7b4c8912a77
Author: KONRAD Frederic <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpu-exec.c
M include/exec/exec-all.h
M linux-user/main.c
M target-i386/cpu.h
M target-i386/mem_helper.c
M target-i386/translate.c
M tcg/tcg.h
M translate-all.c
Log Message:
-----------
replace spinlock by QemuMutex.
spinlock is only used in two cases:
* cpu-exec.c: to protect TranslationBlock
* mem_helper.c: for lock helper in target-i386 (which seems broken).
It's a pthread_mutex_t in user-mode, so we can use QemuMutex directly,
with an #ifdef. The #ifdef will be removed when multithreaded TCG
will need the mutex as well.
Signed-off-by: KONRAD Frederic <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Emilio G. Cota <address@hidden>
[Merge Emilio G. Cota's patch to remove volatile. - Paolo]
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 2496ff1311283480f9de3614080b8842d838ade4
https://github.com/qemu/qemu/commit/2496ff1311283480f9de3614080b8842d838ade4
Author: KONRAD Frederic <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
R include/exec/spinlock.h
Log Message:
-----------
remove unused spinlock.
This just removes spinlock as it is not used anymore.
Signed-off-by: KONRAD Frederic <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 6940fab84b826175cf90d48d0e3da1b76518f5b4
https://github.com/qemu/qemu/commit/6940fab84b826175cf90d48d0e3da1b76518f5b4
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M translate-all.c
Log Message:
-----------
tcg: add memory barriers in page_find_alloc accesses
page_find is reading the radix tree outside all locks, so it has to
use the RCU primitives. It does not need RCU critical sections
because the PageDescs are never removed, so there is never a need
to wait for the end of code sections that use a PageDesc.
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 756920876f60829fad0d15df4f3fa205077a8131
https://github.com/qemu/qemu/commit/756920876f60829fad0d15df4f3fa205077a8131
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M translate-all.c
Log Message:
-----------
tcg: comment on which functions have to be called with mmap_lock held
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 8fd19e6cfd5b6cdf028c6ac2ff4157ed831ea3a6
https://github.com/qemu/qemu/commit/8fd19e6cfd5b6cdf028c6ac2ff4157ed831ea3a6
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M bsd-user/qemu.h
M include/exec/exec-all.h
M linux-user/qemu.h
M translate-all.c
Log Message:
-----------
exec: make mmap_lock/mmap_unlock globally available
There is some iffy lock hierarchy going on in translate-all.c. To
fix it, we need to take the mmap_lock in cpu-exec.c. Make the
functions globally available.
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 9fd1a94888cd6a559f95c3596ec1ac28b74838c1
https://github.com/qemu/qemu/commit/9fd1a94888cd6a559f95c3596ec1ac28b74838c1
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-09 (Wed, 09 Sep 2015)
Changed paths:
M cpu-exec.c
M translate-all.c
Log Message:
-----------
cpu-exec: fix lock hierarchy for user-mode emulation
tb_lock has to be taken inside the mmap_lock (example:
tb_invalidate_phys_range is called by target_mmap), but
tb_link_page is taking the mmap_lock and it is called
with the tb_lock held.
To fix this, take the mmap_lock in tb_find_slow, not
in tb_link_page.
Reviewed-by: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: 47d4be12c3997343e436c6cca89aefbbbeb70863
https://github.com/qemu/qemu/commit/47d4be12c3997343e436c6cca89aefbbbeb70863
Author: Paolo Bonzini <address@hidden>
Date: 2015-09-10 (Thu, 10 Sep 2015)
Changed paths:
M tests/test-cutils.c
M util/cutils.c
Log Message:
-----------
cutils: work around platform differences in strto{l,ul,ll,ull}
Linux returns 0 if no conversion was made, while OS X and presumably
the BSDs return EINVAL. The OS X convention rejects more invalid
inputs, so convert to it and adjust the test case.
Windows returns 1 from strtoul and strtoull (instead of -1) for
negative out-of-range input; fix it up.
Reported-by: Peter Maydell <address@hidden>
Signed-off-by: Paolo Bonzini <address@hidden>
Commit: a2aa09e18186801931763fbd40a751fa39971b18
https://github.com/qemu/qemu/commit/a2aa09e18186801931763fbd40a751fa39971b18
Author: Peter Maydell <address@hidden>
Date: 2015-09-14 (Mon, 14 Sep 2015)
Changed paths:
M CODING_STYLE
M Makefile.target
M block/iscsi.c
M bsd-user/qemu.h
M configure
M cpu-exec.c
M cpus.c
M exec.c
M gdbstub.c
M hw/block/fdc.c
M hw/dma/i82374.c
M hw/dma/i8257.c
M hw/i386/pc.c
M hw/isa/i82378.c
M hw/mips/mips_fulong2e.c
M hw/mips/mips_jazz.c
M hw/mips/mips_malta.c
M hw/misc/pvpanic.c
M hw/ppc/prep.c
M hw/ppc/spapr_rtas.c
M hw/scsi/vhost-scsi.c
M hw/sparc/sun4m.c
M hw/sparc64/sun4u.c
M include/exec/cpu-all.h
M include/exec/exec-all.h
M include/exec/ram_addr.h
R include/exec/spinlock.h
M include/hw/isa/isa.h
M include/qemu-common.h
M include/qemu/main-loop.h
M include/qemu/rcu.h
M include/qemu/seqlock.h
R include/qemu/tls.h
M include/qom/cpu.h
M include/sysemu/sysemu.h
M iohandler.c
M linux-user/main.c
M linux-user/qemu.h
M linux-user/syscall.c
M main-loop.c
M qmp.c
M qom/cpu.c
M scripts/checkpatch.pl
A scripts/cocci-macro-file.h
M scripts/dump-guest-memory.py
M target-i386/cpu.h
M target-i386/mem_helper.c
M target-i386/translate.c
M target-s390x/kvm.c
M tcg/tcg.h
M tests/test-cutils.c
M translate-all.c
M util/cutils.c
M util/qemu-thread-posix.c
M util/rcu.c
M vl.c
Log Message:
-----------
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
* Support for jemalloc
* qemu_mutex_lock_iothread "No such process" fix
* cutils: qemu_strto* wrappers
* iohandler.c simplification
* Many other fixes and misc patches.
And some MTTCG work (with Emilio's fixes squashed):
* Signal-free TCG kick
* Removing spinlock in favor of QemuMutex
* User-mode emulation multi-threading fixes/docs
# gpg: Signature made Thu 10 Sep 2015 09:03:07 BST using RSA key ID 78C7AE83
# gpg: Good signature from "Paolo Bonzini <address@hidden>"
# gpg: aka "Paolo Bonzini <address@hidden>"
* remotes/bonzini/tags/for-upstream: (44 commits)
cutils: work around platform differences in strto{l,ul,ll,ull}
cpu-exec: fix lock hierarchy for user-mode emulation
exec: make mmap_lock/mmap_unlock globally available
tcg: comment on which functions have to be called with mmap_lock held
tcg: add memory barriers in page_find_alloc accesses
remove unused spinlock.
replace spinlock by QemuMutex.
cpus: remove tcg_halt_cond and tcg_cpu_thread globals
cpus: protect work list with work_mutex
scripts/dump-guest-memory.py: fix after RAMBlock change
configure: Add support for jemalloc
add macro file for coccinelle
configure: factor out adding disas configure
vhost-scsi: fix wrong vhost-scsi firmware path
checkpatch: remove tests that are not relevant outside the kernel
checkpatch: adapt some tests to QEMU
CODING_STYLE: update mixed declaration rules
qmp: Add example usage of strto*l() qemu wrapper
cutils: Add qemu_strtoull() wrapper
cutils: Add qemu_strtoll() wrapper
...
Signed-off-by: Peter Maydell <address@hidden>
Compare: https://github.com/qemu/qemu/compare/7e4804dafd46...a2aa09e18186
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-commits] [qemu/qemu] 16ef9d: qemu-thread: handle spurious futex_wait wakeups,
GitHub <=