[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path
From: |
Alex Bennée |
Subject: |
Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path |
Date: |
Tue, 05 Jul 2016 14:11:05 +0100 |
User-agent: |
mu4e 0.9.17; emacs 25.0.95.7 |
Paolo Bonzini <address@hidden> writes:
> On 05/07/2016 13:14, Alex Bennée wrote:
>> /*
>> * Patch the last TB with a jump to the current TB.
>> *
>> * Modification of the TB has to be protected with tb_lock which can
>> * either be already held or taken here.
>> */
>> static inline void maybe_patch_last_tb(CPUState *cpu,
>> TranslationBlock *tb,
>> TranslationBlock **last_tb,
>> int tb_exit,
>> bool locked)
>> {
>> if (cpu->tb_flushed) {
>> /* Ensure that no TB jump will be modified as the
>> * translation buffer has been flushed.
>> */
>> *last_tb = NULL;
>> cpu->tb_flushed = false;
>> }
>> #ifndef CONFIG_USER_ONLY
>> /* We don't take care of direct jumps when address mapping changes in
>> * system emulation. So it's not safe to make a direct jump to a TB
>> * spanning two pages because the mapping for the second page can change.
>> */
>> if (tb->page_addr[1] != -1) {
>> *last_tb = NULL;
>> }
>> #endif
>> /* See if we can patch the calling TB. */
>> if (*last_tb && !qemu_loglevel_mask(CPU_LOG_TB_NOCHAIN)) {
>> if (!locked) {
>> tb_lock();
>> }
>> tb_add_jump(*last_tb, tb_exit, tb);
>> if (!locked) {
>> tb_unlock();
>> }
>> }
>> }
>
> Why not add tb_lock_recursive() and tb_lock_reset()?
I thought we didn't like having recursive locking? I agree it would make
things a little neater though.
--
Alex Bennée
- [Qemu-devel] [PATCH 0/2] Reduce lock contention on TCG hot-path, Alex Bennée, 2016/07/01
- [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Alex Bennée, 2016/07/01
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Richard Henderson, 2016/07/01
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Emilio G. Cota, 2016/07/01
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Alex Bennée, 2016/07/04
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Emilio G. Cota, 2016/07/04
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Alex Bennée, 2016/07/05
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Paolo Bonzini, 2016/07/05
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path,
Alex Bennée <=
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Paolo Bonzini, 2016/07/05
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Sergey Fedorov, 2016/07/05
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Alex Bennée, 2016/07/05
- Re: [Qemu-devel] [PATCH 2/2] cpu-exec: remove tb_lock from the hot-path, Sergey Fedorov, 2016/07/05
[Qemu-devel] [PATCH 1/2] tcg: Ensure safe tb_jmp_cache lookup out of 'tb_lock', Alex Bennée, 2016/07/01