diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2015-12-17 18:07:09 +0000 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2015-12-17 18:07:09 +0000 |
commit | 6a6533213d78dea4407fe6933ad489796b582599 (patch) | |
tree | 1e37b82b21a52c000d5d6de0494c168bd69d4307 /include/qemu | |
parent | e5fbe28e5424d26fc2c25d0a7ecb927d3c80d5e8 (diff) | |
parent | 29cd81ffe3679bec9a062505e5b0d9a12f3558a8 (diff) | |
download | qemu-6a6533213d78dea4407fe6933ad489796b582599.zip qemu-6a6533213d78dea4407fe6933ad489796b582599.tar.gz qemu-6a6533213d78dea4407fe6933ad489796b582599.tar.bz2 |
Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging
* KVM: synic support, split irqchip support
* memory: cleanups, optimizations, ioeventfd emulation
* SCSI: small fixes, vmw_pvscsi compatibility improvements
* qemu_log cleanups
* Coverity model improvements
# gpg: Signature made Thu 17 Dec 2015 16:35:21 GMT using RSA key ID 78C7AE83
# gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
# gpg: aka "Paolo Bonzini <pbonzini@redhat.com>"
* remotes/bonzini/tags/for-upstream: (45 commits)
coverity: Model g_memdup()
coverity: Model g_poll()
scsi: always call notifier on async cancellation
scsi: use scsi_req_cancel_async when purging requests
target-i386: kvm: clear unusable segments' flags in migration
rcu: optimize rcu_read_lock
memory: try to inline constant-length reads
memory: inline a few small accessors
memory: extract first iteration of address_space_read and address_space_write
memory: split address_space_read and address_space_write
memory: avoid unnecessary object_ref/unref
memory: reorder MemoryRegion fields
exec: make qemu_ram_ptr_length more similar to qemu_get_ram_ptr
exec: always call qemu_get_ram_ptr within rcu_read_lock
linux-user: convert DEBUG_SIGNAL logging to tracepoints
linux-user: avoid "naked" qemu_log
user: introduce "-d page"
xtensa: avoid "naked" qemu_log
tricore: avoid "naked" qemu_log
ppc: cleanup logging
...
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include/qemu')
-rw-r--r-- | include/qemu/log.h | 8 | ||||
-rw-r--r-- | include/qemu/rcu.h | 6 |
2 files changed, 9 insertions, 5 deletions
diff --git a/include/qemu/log.h b/include/qemu/log.h index 362cbc4..d837d90 100644 --- a/include/qemu/log.h +++ b/include/qemu/log.h @@ -28,6 +28,13 @@ static inline bool qemu_log_enabled(void) return qemu_logfile != NULL; } +/* Returns true if qemu_log() will write somewhere else than stderr + */ +static inline bool qemu_log_separate(void) +{ + return qemu_logfile != NULL && qemu_logfile != stderr; +} + #define CPU_LOG_TB_OUT_ASM (1 << 0) #define CPU_LOG_TB_IN_ASM (1 << 1) #define CPU_LOG_TB_OP (1 << 2) @@ -41,6 +48,7 @@ static inline bool qemu_log_enabled(void) #define LOG_GUEST_ERROR (1 << 11) #define CPU_LOG_MMU (1 << 12) #define CPU_LOG_TB_NOCHAIN (1 << 13) +#define CPU_LOG_PAGE (1 << 14) /* Returns true if a bit is set in the current loglevel mask */ diff --git a/include/qemu/rcu.h b/include/qemu/rcu.h index f6d1d56..7c7cca7 100644 --- a/include/qemu/rcu.h +++ b/include/qemu/rcu.h @@ -88,10 +88,6 @@ static inline void rcu_read_lock(void) ctr = atomic_read(&rcu_gp_ctr); atomic_xchg(&p_rcu_reader->ctr, ctr); - if (atomic_read(&p_rcu_reader->waiting)) { - atomic_set(&p_rcu_reader->waiting, false); - qemu_event_set(&rcu_gp_event); - } } static inline void rcu_read_unlock(void) @@ -104,7 +100,7 @@ static inline void rcu_read_unlock(void) } atomic_xchg(&p_rcu_reader->ctr, 0); - if (atomic_read(&p_rcu_reader->waiting)) { + if (unlikely(atomic_read(&p_rcu_reader->waiting))) { atomic_set(&p_rcu_reader->waiting, false); qemu_event_set(&rcu_gp_event); } |