On 27/05/2016 17:07, Sergey Fedorov wrote: >>> >> 1. Make 'cpu->thread_kicked' access atomic >>> >> 2. Remove global 'exit_request' and use per-CPU 'exit_request' >>> >> 3. Change how 'current_cpu' is set >>> >> 4. Reorganize round-robin CPU TCG thread function >>> >> 5. Enable 'mmap_lock' for system mode emulation (do we really want >>> >> this?) >> > No, I don't think so. >> > >>> >> 6. Enable 'tb_lock' for system mode emulation >>> >> 7. Introduce per-CPU TCG thread function >> > At least 2/3/7 must be done at the same time, but I agree that this >> > patch could use some splitting. :) > Hmm, 2/3 do also change single-threaded CPU loop. I think they should > apply separately from 7.
Reviewed the patch now, and I'm not sure how you can do 2/3 for the single-threaded CPU loop. They could be moved out of cpu_exec and into cpus.c (in a separate patch), but you need exit_request and tcg_current_cpu to properly kick the single-threaded CPU loop out of qemu_tcg_cpu_thread_fn. Thanks, Paolo
