[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PULL 11/24] tcg: enable thread-per-vCPU
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PULL 11/24] tcg: enable thread-per-vCPU |
Date: |
Mon, 27 Feb 2017 13:48:48 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 |
Le 24/02/2017 à 12:20, Alex Bennée a écrit :
> There are a couple of changes that occur at the same time here:
>
> - introduce a single vCPU qemu_tcg_cpu_thread_fn
>
> One of these is spawned per vCPU with its own Thread and Condition
> variables. qemu_tcg_rr_cpu_thread_fn is the new name for the old
> single threaded function.
>
> - the TLS current_cpu variable is now live for the lifetime of MTTCG
> vCPU threads. This is for future work where async jobs need to know
> the vCPU context they are operating in.
>
> The user to switch on multi-thread behaviour and spawn a thread
> per-vCPU. For a simple test kvm-unit-test like:
>
> ./arm/run ./arm/locking-test.flat -smp 4 -accel tcg,thread=multi
>
> Will now use 4 vCPU threads and have an expected FAIL (instead of the
> unexpected PASS) as the default mode of the test has no protection when
> incrementing a shared variable.
>
> We enable the parallel_cpus flag to ensure we generate correct barrier
> and atomic code if supported by the front and backends. This doesn't
> automatically enable MTTCG until default_mttcg_enabled() is updated to
> check the configuration is supported.
This commit breaks linux-user mode:
debian-8 with qemu-ppc on x86_64 with ltp-full-20170116
cd /opt/ltp
./runltp -p -l "qemu-$(date +%FT%T).log" -f /opt/ltp/runtest/syscalls -s
setgroups03
setgroups03 1 TPASS : setgroups(65537) fails, Size is >
sysconf(_SC_NGROUPS_MAX), errno=22
qemu-ppc: /home/laurent/Projects/qemu/include/qemu/rcu.h:89:
rcu_read_unlock: Assertion `p_rcu_reader->depth != 0' failed.
qemu-ppc: /home/laurent/Projects/qemu/include/qemu/rcu.h:89:
rcu_read_unlock: Assertion `p_rcu_reader->depth != 0' failed.
qemu-ppc: /home/laurent/Projects/qemu/include/qemu/rcu.h:89:
rcu_read_unlock: Assertion `p_rcu_reader->depth != 0' failed.
...
Laurent
- [Qemu-devel] [PULL 00/24] MTTCG Base enabling patches with ARM enablement, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 02/24] mttcg: translate-all: Enable locking debug in a debug build, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 03/24] mttcg: Add missing tb_lock/unlock() in cpu_exec_step(), Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 04/24] tcg: move TCG_MO/BAR types into own file, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 06/24] tcg: add kick timer for single-threaded vCPU emulation, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 01/24] docs: new design document multi-thread-tcg.txt, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 05/24] tcg: add options for enabling MTTCG, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 07/24] tcg: rename tcg_current_cpu to tcg_current_rr_cpu, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 10/24] tcg: enable tb_lock() for SoftMMU, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 11/24] tcg: enable thread-per-vCPU, Alex Bennée, 2017/02/24
- Re: [Qemu-devel] [PULL 11/24] tcg: enable thread-per-vCPU,
Laurent Vivier <=
- [Qemu-devel] [PULL 08/24] tcg: drop global lock during TCG code execution, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 09/24] tcg: remove global exit_request, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 12/24] tcg: handle EXCP_ATOMIC exception for system emulation, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 14/24] cputlb: tweak qemu_ram_addr_from_host_nofail reporting, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 13/24] cputlb: add assert_cpu_is_self checks, Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 15/24] cputlb: introduce tlb_flush_* async work., Alex Bennée, 2017/02/24
- [Qemu-devel] [PULL 17/24] cputlb: add tlb_flush_by_mmuidx async routines, Alex Bennée, 2017/02/24