[Qemu-devel] [RFC PATCH V2 0/3] Multithread TCG async_safe_work part.

2015-07-10 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This is the async_safe_work introduction bit of the Multithread TCG work. Rebased on current upstream (6169b60285fe1ff730d840a49527e721bfb30899). It can be cloned here: http://git.greensocs.com/fkonrad/mttcg.git branch async_work_v2 The first

[Qemu-devel] [RFC PATCH V2 2/3] cpus: add a tcg_executing flag.

2015-07-10 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This flag indicates if the VCPU is currently executing TCG code. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Changes V1 - V2: * do both tcg_executing = 0 or 1 in cpu_exec(). --- cpu-exec.c| 2 ++ include/qom/cpu.h | 3 +++

[Qemu-devel] [RFC PATCH V2 1/3] cpus: protect queued_work_* with work_mutex.

2015-07-10 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This protects queued_work_* used by async_run_on_cpu, run_on_cpu and flush_queued_work with a new lock (work_mutex) to prevent multiple (concurrent) access. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Changes V1 - V2: * Unlock the

[Qemu-devel] [RFC PATCH 1/3] cpus: protect queued_work_* with work_mutex.

2015-07-10 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This protects queued_work_* used by async_run_on_cpu, run_on_cpu and flush_queued_work with a new lock (work_mutex) to prevent multiple (concurrent) access. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c| 9

[Qemu-devel] [PATCH V3 4/8] introduce dpcd module.

2015-07-06 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a DPCD module. It wires on a aux-bus and can be accessed by driver to get lane-speed, etc. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- default-configs/aarch64-softmmu.mak | 1 + hw/display/Makefile.objs

[Qemu-devel] [PATCH V3 7/8] Introduce xilinx dp.

2015-07-06 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This is the implementation of the DisplayPort. It has an aux-bus to access dpcd and edid . Graphic plane is connected to the channel 3. Video plane is connected to the channel 0. Audio stream are connected to the channels 4 and 5. Signed-off-by:

[Qemu-devel] [PATCH V3 3/8] i2c: implement broadcast write.

2015-07-06 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This does a write to every slaves when the I2C bus get a write to address 0. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/i2c/core.c | 45 - 1 file changed, 44 insertions(+), 1

[Qemu-devel] [PATCH V3 8/8] arm: xlnx-zynqmp: Add DisplayPort and DPDMA.

2015-07-06 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds the DP and the DPDMA to the Zynq MP. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Peter Crosthwaite peter.crosthwa...@xilinx.com --- hw/arm/xlnx-zynqmp.c | 20

[Qemu-devel] [PATCH V3 6/8] Introduce xilinx dpdma.

2015-07-06 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This is the implementation of the DPDMA. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/dma/Makefile.objs | 1 + hw/dma/xlnx_dpdma.c | 789 +++ hw/dma/xlnx_dpdma.h | 77 + 3

[Qemu-devel] [PATCH V3 5/8] hw/i2c-ddc.c: Implement DDC I2C slave

2015-07-06 Thread fred . konrad
From: Peter Maydell peter.mayd...@linaro.org Implement an I2C slave which implements DDC and returns the EDID data for an attached monitor. Signed-off-by: Peter Maydell peter.mayd...@linaro.org - Rebased on the current master. - Modified for QOM. Signed-off-by: KONRAD Frederic

[Qemu-devel] [PATCH V3 0/8] Xilinx DisplayPort.

2015-07-06 Thread fred . konrad
was to implement a dummy-clk driver in the kernel. It's a clock which does nothing but fakes a clock such that the DPDMA driver works. The patch will be send separately. * The graphic plane works on channel 3, video on channel 0 and audios on channel 4 and 5. Thanks, Fred V2 - V3 changes: * dpcd

[Qemu-devel] [PATCH V3 2/8] Introduce AUX bus.

2015-07-06 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a new bus: aux-bus. It contains an address space for aux slaves devices and a bridge to an I2C bus for I2C through AUX transactions. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- default-configs/aarch64-softmmu.mak

[Qemu-devel] [PATCH V3 1/8] i2cbus: remove unused dev field.

2015-07-06 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Seems this field is not needed. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/i2c/core.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/i2c/core.c b/hw/i2c/core.c index 5a64026..e0f92de 100644 --- a/hw/i2c/core.c +++

[Qemu-devel] [RFC PATCH V6 07/18] Drop global lock during TCG code execution

2015-06-26 Thread fred . konrad
qemu-system-arm We don't benefit significantly, though, when the guest is not fully loading a host CPU. Note that this patch depends on http://thread.gmane.org/gmane.comp.emulators.qemu/118657 Changes from Fred Konrad: * Rebase on the current HEAD. * Fixes a deadlock in qemu_devices_reset

[Qemu-devel] [RFC PATCH V6 02/18] replace spinlock by QemuMutex.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com 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 better using QemuMutex directly in this case. It allows as

[Qemu-devel] [RFC PATCH V6 06/18] tcg: remove tcg_halt_cond global variable.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This removes tcg_halt_cond global variable. We need one QemuCond per virtual cpu for multithread TCG. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c | 18 +++--- 1 file changed, 7 insertions(+), 11 deletions(-)

[Qemu-devel] [RFC PATCH V6 11/18] cpus: make qemu_cpu_kick_thread public.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This makes qemu_cpu_kick_thread public. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c| 2 +- include/sysemu/cpus.h | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/cpus.c b/cpus.c index

[Qemu-devel] [RFC PATCH V6 15/18] cpu: introduce tlb_flush*_all.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Some architectures allow to flush the tlb of other VCPUs. This is not a problem when we have only one thread for all VCPUs but it definitely needs to be an asynchronous work when we are in true multithreaded work. TODO: Some test case, I fear some

[Qemu-devel] [RFC PATCH V6 10/18] tcg: switch on multithread.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This switches on multithread. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Changes V5 - V6: * make qemu_cpu_kick calling qemu_cpu_kick_thread in case of TCG. --- cpus.c | 95

[Qemu-devel] [RFC PATCH V6 09/18] cpu: add a tcg_executing flag.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com We need to know whether any other VCPU is executing code or not it's possible with this flag. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpu-exec.c| 1 + cpus.c| 1 + include/qom/cpu.h | 3 +++ qom/cpu.c

[Qemu-devel] [RFC PATCH V6 14/18] add a callback when tb_invalidate is called.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Instead of doing the jump cache invalidation directly in tb_invalidate delay it after the exit so we don't have an other CPU trying to execute the code being invalidated. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- translate-all.c

[Qemu-devel] [RFC PATCH V6 12/18] Use atomic cmpxchg to atomically check the exclusive value in a STREX

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This mechanism replaces the existing load/store exclusive mechanism which seems to be broken for multithread. It follows the intention of the existing mechanism and stores the target address and data values during a load operation and checks that

[Qemu-devel] [RFC PATCH V6 17/18] translate-all: introduces tb_flush_safe.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com tb_flush is not thread safe we definitely need to exit VCPUs to do that. This introduces tb_flush_safe which just creates an async safe work which will do a tb_flush later. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com ---

[Qemu-devel] [RFC PATCH V6 18/18] translate-all: (wip) use tb_flush_safe when we can't alloc more tb.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This changes just the tb_flush called from tb_alloc. TODO: * changes the other tb_flush. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- translate-all.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git

[Qemu-devel] [RFC PATCH V6 13/18] cpu: introduce async_run_safe_work_on_cpu.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com We already had async_run_on_cpu but we need all VCPUs outside their execution loop to execute some tb_flush/invalidate task: async_run_on_cpu_safe schedule a work on a VCPU but the work start when no more VCPUs are executing code. When a safe work

[Qemu-devel] [RFC PATCH V6 04/18] add support for spin lock on POSIX systems exclusively

2015-06-26 Thread fred . konrad
From: Guillaume Delbergue guillaume.delber...@greensocs.com WARNING: spin lock is currently not implemented on WIN32 Signed-off-by: Guillaume Delbergue guillaume.delber...@greensocs.com --- include/qemu/thread-posix.h | 4 include/qemu/thread-win32.h | 4 include/qemu/thread.h

[Qemu-devel] [RFC PATCH V6 01/18] cpu: make cpu_thread_is_idle public.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c| 2 +- include/qom/cpu.h | 11 +++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cpus.c b/cpus.c index 4f0e54d..2d62a35 100644 --- a/cpus.c

[Qemu-devel] [RFC PATCH V6 00/18] Multithread TCG.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This is the 6th round of the MTTCG patch series with hopefully a lot of improvements since the last version. Basically the atomic patch has been significantly improved, some issues has been fixed and the speed has been improved. It can be cloned

[Qemu-devel] [RFC PATCH V6 03/18] remove unused spinlock.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This just removes spinlock as it is not used anymore. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- include/exec/spinlock.h | 49 - scripts/checkpatch.pl | 9 ++--- 2 files

[Qemu-devel] [RFC PATCH V6 08/18] cpu: remove exit_request global.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This removes exit_request global and adds a variable in CPUState for this. Only the flag for the first cpu is used for the moment as we are still with one TCG thread. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpu-exec.c | 15

[Qemu-devel] [RFC PATCH V6 05/18] protect TBContext with tb_lock.

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This protects TBContext with tb_lock to make tb_* thread safe. We can still have issue with tb_flush in case of multithread TCG: An other CPU can be executing code during a flush. This can be fixed later by making all other TCG thread exiting

[Qemu-devel] [RFC PATCH V6 16/18] arm: use tlb_flush*_all

2015-06-26 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This just use the new mechanism to ensure that each VCPU thread flush its own VCPU. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- target-arm/helper.c | 45 +++-- 1 file changed, 7

[Qemu-devel] [RFC PATCH V3] Use atomic cmpxchg to atomically check the exclusive value in a STREX

2015-06-18 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This mechanism replaces the existing load/store exclusive mechanism which seems to be broken for multithread. It follows the intention of the existing mechanism and stores the target address and data values during a load operation and checks that

[Qemu-devel] [PATCH V2 5/7] Introduce xilinx dpdma.

2015-06-15 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This is the implementation of the DPDMA. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/dma/Makefile.objs | 1 + hw/dma/xilinx_dpdma.c | 779 ++ hw/dma/xilinx_dpdma.h | 71 +

[Qemu-devel] [PATCH V2 6/7] Introduce xilinx dp.

2015-06-15 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This is the implementation of the DisplayPort. It has an aux-bus to access dpcd and edid needed for the driver to complete. Graphic plane is connected to the channel 3. Video plane is connected to the channel 0. Audio stream are connected to the

[Qemu-devel] [PATCH V2 0/7] Xilinx DisplayPort.

2015-06-15 Thread fred . konrad
but fakes a clock such that the DPDMA driver works. The patch will be send separately. * The graphic plane works on channel 3, video on channel 0 and audios on channel 4 and 5. Thanks, Fred V1 - V2 changes: * xlnx-zynqmp: * Remove the dummy object_property_add_child(..). * dpcd

[Qemu-devel] [PATCH V2 3/7] introduce dpcd module.

2015-06-15 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a DPCD modules. It wires on a aux-bus and can be accessed by driver to get lane-speed, etc. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/display/Makefile.objs | 1 + hw/display/dpcd.c| 151

[Qemu-devel] [PATCH V2 7/7] arm: xlnx-zynqmp: Add DisplayPort and DPDMA.

2015-06-15 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds the DP and the DPDMA to the Zynq MP. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/arm/xlnx-zynqmp.c | 20 include/hw/arm/xlnx-zynqmp.h | 4 2 files changed, 24 insertions(+) diff

[Qemu-devel] [PATCH V2 4/7] hw/i2c-ddc.c: Implement DDC I2C slave

2015-06-15 Thread fred . konrad
From: Peter Maydell peter.mayd...@linaro.org Implement an I2C slave which implements DDC and returns the EDID data for an attached monitor. Signed-off-by: Peter Maydell peter.mayd...@linaro.org - Rebased on the current master. - Modified for QOM. Signed-off-by: KONRAD Frederic

[Qemu-devel] [PATCH V2 1/7] Introduce AUX bus.

2015-06-15 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a new bus: aux-bus. It contains an address space for aux slaves devices and a bridge to an I2C bus for I2C through AUX transactions. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/misc/Makefile.objs | 1 +

[Qemu-devel] [PATCH V2 2/7] i2c: implement broadcast write.

2015-06-15 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This does a write to every slaves when the I2C bus get a write to address 0. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/i2c/core.c | 46 +- 1 file changed, 45 insertions(+), 1

[Qemu-devel] [RFC PATCH] Use atomic cmpxchg to atomically check the exclusive value in a STREX

2015-06-05 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This mechanism replaces the existing load/store exclusive mechanism which seems to be broken for multithread. It follows the intention of the existing mechanism and stores the target address and data values during a load operation and checks that

[Qemu-devel] [PATCH 8/8] arm: xlnx-zynqmp: Add DisplayPort and DPDMA.

2015-05-13 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds the DP and the DPDMA to the Zynq MP. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/arm/xlnx-zynqmp.c | 23 +++ include/hw/arm/xlnx-zynqmp.h | 4 2 files changed, 27 insertions(+) diff

[Qemu-devel] [PATCH 3/8] console: add qemu_alloc_display_format.

2015-05-13 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This allows to create a surface with a different format than xrgb. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Cc: Gerd Hoffmann kra...@redhat.com --- include/ui/console.h | 2 ++ ui/console.c | 25

[Qemu-devel] [PATCH 6/8] Introduce xilinx dpdma.

2015-05-13 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This is the implementation of the DPDMA. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/dma/Makefile.objs |1 + hw/dma/xilinx_dpdma.c | 1149 + hw/dma/xilinx_dpdma.h | 71 +++

[Qemu-devel] [PATCH 5/8] hw/i2c-ddc.c: Implement DDC I2C slave

2015-05-13 Thread fred . konrad
From: Peter Maydell peter.mayd...@linaro.org Implement an I2C slave which implements DDC and returns the EDID data for an attached monitor. Signed-off-by: Peter Maydell peter.mayd...@linaro.org - Rebased on the current master. - Modified for QOM. Signed-off-by: KONRAD Frederic

[Qemu-devel] [PATCH 0/8] Xilinx DisplayPort.

2015-05-13 Thread fred . konrad
in the kernel. It's a clock which does nothing but fakes a clock such that the DPDMA driver works. The patch will be send separately. * The graphic plane works on channel 3, video on channel 0 and audios on channel 4 and 5. Thanks, Fred KONRAD Frederic (7): Introduce AUX bus. i2c: implement

[Qemu-devel] [PATCH 4/8] introduce dpcd module.

2015-05-13 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a DPCD modules. It wires on a aux-bus and can be accessed by driver to get lane-speed, etc. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/display/Makefile.objs | 1 + hw/display/dpcd.c| 139

[Qemu-devel] [PATCH 1/8] Introduce AUX bus.

2015-05-13 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a new bus: aux-bus. It contains an address space for aux slaves devices and a bridge to an I2C bus for I2C through AUX transactions. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/misc/Makefile.objs | 1 +

[Qemu-devel] [PATCH 2/8] i2c: implement broadcast write.

2015-05-13 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This does a write to every slaves when the I2C bus get a write to address 0. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/i2c/core.c | 46 +- 1 file changed, 45 insertions(+), 1

[Qemu-devel] [PATCH 7/8] Introduce xilinx dp.

2015-05-13 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This is the implementation of the DisplayPort. It has an aux-bus to access dpcd and edid needed for the driver to complete. Graphic plane is connected to the channel 3. Video plane is connected to the channel 0. Audio stream are connected to the

[Qemu-devel] [Bug 1308341] Re: Multiple CPUs causes blue screen on Windows guest (14.04 regression)

2015-02-01 Thread Fred Thoma
*** This bug is a duplicate of bug 1346917 *** https://bugs.launchpad.net/bugs/1346917 Same bluescreen again on day 9 after the kernel upgrade. So upgrading Kernel from 3.13 to 3.16 did not help. Still looking for a fix. -- You received this bug notification because you are a member of

[Qemu-devel] [Bug 1308341] Re: Multiple CPUs causes blue screen on Windows guest (14.04 regression)

2015-01-31 Thread Fred Thoma
*** This bug is a duplicate of bug 1346917 *** https://bugs.launchpad.net/bugs/1346917 Just wanted to add that upgrading my kernel to a newer version fixed the problem for me, too. Host: 2x E5-2620V2, Ubuntu 14.04 LTS Guest: 24 virtual cores, Windows Server 2008 R2 Before fix: sudo uname -a

[Qemu-devel] [RFC 03/10] replace spinlock by QemuMutex.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com 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 better using QemuMutex directly in this case. It allows as

[Qemu-devel] [RFC 01/10] target-arm: protect cpu_exclusive_*.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds a lock to avoid multiple exclusive access at the same time in case of TCG multithread. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com V1 - V2: Removed qemu_mutex_destroy(). --- target-arm/cpu.c | 14 ++

[Qemu-devel] [RFC 08/10] Drop global lock during TCG code execution

2015-01-16 Thread fred . konrad
qemu-system-arm We don't benefit significantly, though, when the guest is not fully loading a host CPU. Note that this patch depends on http://thread.gmane.org/gmane.comp.emulators.qemu/118657 Changes from Fred Konrad: * Rebase on the current HEAD. * Fixes a deadlock in qemu_devices_reset

[Qemu-devel] [RFC 04/10] remove unused spinlock.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This just removes spinlock as it is not used anymore. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- include/exec/spinlock.h | 49 - scripts/checkpatch.pl | 9 ++--- 2 files

[Qemu-devel] [RFC 07/10] tcg: remove tcg_halt_cond global variable.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This removes tcg_halt_cond global variable. We need one QemuCond per virtual cpu for multithread TCG. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c | 18 +++--- 1 file changed, 7 insertions(+), 11 deletions(-)

[Qemu-devel] [RFC 05/10] extract TBContext from TCGContext.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com In order to have one TCGContext per thread and a single TBContext we have to extract TBContext from TCGContext. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpu-exec.c| 18 ++--- linux-user/main.c | 6 ++---

[Qemu-devel] [RFC 09/10] cpu: remove exit_request global.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This removes exit_request global and adds a variable in CPUState for this. Only the flag for the first cpu is used for the moment as we are still with one TCG thread. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpu-exec.c|

[Qemu-devel] [RFC 02/10] use a different translation block list for each cpu.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com We need a different TranslationBlock list for each core in case of multithread TCG. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- translate-all.c | 40 ++-- 1 file changed, 22 insertions(+), 18

[Qemu-devel] [RFC 10/10] tcg: switch on multithread.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This switches on multithread. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c | 85 +++--- 1 file changed, 30 insertions(+), 55 deletions(-) diff --git a/cpus.c

[Qemu-devel] [RFC 00/10] MultiThread TCG.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Hi everybody, This is the start of our work on TCG multithread. We send it for comment to be sure we are taking the right direction. We already discussed the first patch but we keep it for simplicity. We choice to keep a common tbs array for all

[Qemu-devel] [RFC 06/10] protect TBContext with tb_lock.

2015-01-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This protects TBContext with tb_lock to make tb_* thread safe. We can still have issue with tb_flush in case of multithread TCG: An other CPU can be executing code during a flush. This can be fixed later by making all other TCG thread exiting

[Qemu-devel] [RFC PATCH] target-arm: protect cpu_exclusive_*.

2014-12-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds a lock to avoid multiple exclusive access at the same time in case of TCG multithread. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- target-arm/cpu.c | 15 +++ target-arm/cpu.h | 3 +++

[Qemu-devel] [PATCH] arm_gic: remove unused parameter.

2014-10-09 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This removes num_irq parameter from gic_init_irqs_and_distributor as it is not used. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/intc/arm_gic.c | 4 ++-- hw/intc/armv7m_nvic.c | 2 +- hw/intc/gic_internal.h | 2 +- 3

[Qemu-devel] [RFC V7 01/10] migration: make qemu_savevm_state public.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This makes qemu_savevm_state public for reverse-execution. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Amit Shah amit.s...@redhat.com Reviewed-by: Juan Quintela quint...@redhat.com --- include/sysemu/sysemu.h | 1 +

[Qemu-devel] [RFC V7 00/10] Reverse execution.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Hi everybody, This is the seventh version of this RFC (see the changes below). The first patches: migration: make qemu_savevm_state public. icount: introduce icount timer. icount: check for icount clock deadline when cpu loop exits.

[Qemu-devel] [RFC V7 05/10] trace-events: add reverse-execution events.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds some trace-events for reverse execution. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- trace-events | 6 ++ 1 file changed, 6 insertions(+) diff --git a/trace-events b/trace-events index fb58963..573dea9 100644 ---

[Qemu-devel] [RFC V7 06/10] introduce reverse execution mechanism.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces the basic reverse-execution mechanism. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- Makefile.target | 1 + cpus.c | 6 + include/reverse-execution.h | 41 ++

[Qemu-devel] [RFC V7 08/10] cpu-exec: trigger a debug request when rexec stops.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This allows QEMU to trigger a debug exception when rexec_dbg_requested is set. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpu-exec.c | 13 + 1 file changed, 13 insertions(+) diff --git a/cpu-exec.c b/cpu-exec.c index

[Qemu-devel] [RFC V7 02/10] icount: introduce icount timer.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a new timer based only on instruction counter and without any compensation. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c | 21 + include/qemu/timer.h | 9 -

[Qemu-devel] [RFC V7 10/10] rexec: allow to enable reverse execution.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This creates QEMU options for reverse execution. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c | 15 +++ qemu-options.hx | 5 - vl.c| 9 +++-- 3 files changed, 26 insertions(+), 3

[Qemu-devel] [RFC V7 07/10] gdbstub: allow reverse execution in gdb stub.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This allows gdb to reverse step QEMU: reverse-stepi and reverse-cont commands are allowed. When step_backward is called, QEMU restores a snapshot before the actual instruction and stops (with a debug exit) when the previous instruction is reached.

[Qemu-devel] [RFC V7 03/10] icount: check for icount clock deadline when cpu loop exits.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Notify events on icount clock when CPU loop exits. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com --- cpus.c | 5 + 1 file changed, 5 insertions(+) diff --git a/cpus.c b/cpus.c index

[Qemu-devel] [RFC V7 09/10] rexec: synchronize icount on the next event.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com We don't want to warp on host clock as it is not deterministic for replay. So this patch warp icount on the next QEMU_VIRTUAL_CLOCK event if reverse execution is enabled. The normal behaviour is kept when reverse execution is disabled.

[Qemu-devel] [RFC V7 04/10] icount: make icount extra computed on icount clock as well.

2014-09-17 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This takes icount clock in account for icount extra computation so icount clock's timers will be triggered at the exact time. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com --- cpus.c | 10

[Qemu-devel] [PATCH 0/7] icount migration and clock.

2014-07-31 Thread fred . konrad
for migration based snapshot). They are rebased on uq/master of git://git.kernel.org/pub/scm/virt/kvm/qemu-kvm.git And can be cloned here: git://git.greensocs.com/qemu_cexe.git:cexe_1_3_v6_rebased Thanks, Fred KONRAD Frederic (7): icount: put icount variables into TimerState. migration: migrate

[Qemu-devel] [PATCH 6/7] icount: make icount extra computed on icount clock as well.

2014-07-31 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This takes icount clock in account for icount extra computation so icount clock's timers will be triggered at the exact time. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com --- cpus.c | 10

[Qemu-devel] [PATCH 2/7] migration: migrate icount fields.

2014-07-31 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This fixes a bug where qemu_icount and qemu_icount_bias are not migrated. It adds a subsection timer/icount to vmstate_timers so icount is migrated only when needed. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Amit Shah

[Qemu-devel] [PATCH 1/7] icount: put icount variables into TimerState.

2014-07-31 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This puts qemu_icount and qemu_icount_bias into TimerState structure to allow them to be migrated. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com --- cpus.c | 29

[Qemu-devel] [PATCH 3/7] migration: make qemu_savevm_state public.

2014-07-31 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This makes qemu_savevm_state public for reverse-execution. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Amit Shah amit.s...@redhat.com Reviewed-by: Juan Quintela quint...@redhat.com --- include/sysemu/sysemu.h | 1 +

[Qemu-devel] [PATCH 4/7] icount: introduce icount timer.

2014-07-31 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a new timer based only on instruction counter and without any compensation. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c | 21 + include/qemu/timer.h | 9 -

[Qemu-devel] [PATCH 5/7] icount: check for icount clock deadline when cpu loop exits.

2014-07-31 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Notify events on icount clock when CPU loop exits. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com --- cpus.c | 5 + 1 file changed, 5 insertions(+) diff --git a/cpus.c b/cpus.c index

[Qemu-devel] [PATCH 7/7] timer: add cpu_icount_to_ns function.

2014-07-31 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds cpu_icount_to_ns function which is needed for reverse execution. It returns the time for a specific instruction. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com --- cpus.c

[Qemu-devel] [PATCH for-2.1] cadence_uart: check serial backend before using it.

2014-07-16 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Segfault occurs when there are less than two serial backends with zynq platform. This checks that s-chr is not NULL before using it. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Peter Crosthwaite

[Qemu-devel] [PATCH] cadence_uart: check for serial backend before using it.

2014-07-15 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This checks that s-chr is not NULL before using it. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- hw/char/cadence_uart.c | 15 +++ 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/hw/char/cadence_uart.c

[Qemu-devel] [RFC PATCH v6 11/14] gdbstub: allow reverse execution in gdb stub.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This allows gdb to reverse step QEMU: reverse-stepi and reverse-cont commands are allowed. When step_backward is called, QEMU restores a snapshot before the actual instruction and stops (with a debug exit) when the previous instruction is reached.

[Qemu-devel] [RFC PATCH v6 09/14] trace-events: add reverse-execution events.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds some trace-events for reverse execution. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- trace-events | 6 ++ 1 file changed, 6 insertions(+) diff --git a/trace-events b/trace-events index 11a17a8..66f9e08 100644 ---

[Qemu-devel] [RFC PATCH v6 08/14] icount: Add QemuOpts for icount

2014-07-03 Thread fred . konrad
From: Sebastian Tanase sebastian.tan...@openwide.fr Make icount parameter use QemuOpts style options in order to easily add other suboptions. Signed-off-by: Sebastian Tanase sebastian.tan...@openwide.fr Tested-by: Camille Bégué camille.be...@openwide.fr --- cpus.c| 10 +-

[Qemu-devel] [RFC PATCH v6 01/14] icount: put icount variables into TimerState.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This puts qemu_icount and qemu_icount_bias into TimerState structure to allow them to be migrated. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com --- cpus.c | 29

[Qemu-devel] [RFC PATCH v6 10/14] introduce reverse execution mechanism.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces the basic reverse-execution mechanism. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- Makefile.target | 1 + cpus.c | 6 + include/reverse-execution.h | 41 ++

[Qemu-devel] [RFC PATCH v6 07/14] timer: add cpu_icount_to_ns function.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This adds cpu_icount_to_ns function which is needed for reverse execution. It returns the time for a specific instruction. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Paolo Bonzini pbonz...@redhat.com --- cpus.c

[Qemu-devel] [RFC PATCH v6 13/14] rexec: synchronize icount on the next event.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com We don't want to warp on host clock as it is not deterministic for replay. So this patch warp icount on the next QEMU_VIRTUAL_CLOCK event if reverse execution is enabled. The normal behaviour is kept when reverse execution is disabled.

[Qemu-devel] [RFC PATCH v6 03/14] migration: make qemu_savevm_state public.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This makes qemu_savevm_state public for reverse-execution. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Amit Shah amit.s...@redhat.com Reviewed-by: Juan Quintela quint...@redhat.com --- include/sysemu/sysemu.h | 1 +

[Qemu-devel] [RFC PATCH v6 12/14] cpu-exec: trigger a debug request when rexec stops.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This allows QEMU to trigger a debug exception when rexec_dbg_requested is set. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpu-exec.c | 13 + 1 file changed, 13 insertions(+) diff --git a/cpu-exec.c b/cpu-exec.c index

[Qemu-devel] [RFC PATCH v6 14/14] rexec: allow to enable reverse execution.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This creates QEMU options for reverse execution. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c | 15 +++ qemu-options.hx | 6 +- vl.c| 6 ++ 3 files changed, 26 insertions(+), 1

[Qemu-devel] [RFC PATCH v6 02/14] migration: migrate icount fields.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This fixes a bug where qemu_icount and qemu_icount_bias are not migrated. It adds a subsection timer/icount to vmstate_timers so icount is migrated only when needed. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com Reviewed-by: Amit Shah

[Qemu-devel] [RFC PATCH v6 00/14] Reverse execution.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com Hi everybody, This is the sixth version of this RFC (see the changes below). Those are the two first patch-set we have been worked on for reverse execution. The first part is fully reviewed except the icount: introduce icount timer patch maybe we

[Qemu-devel] [RFC PATCH v6 04/14] icount: introduce icount timer.

2014-07-03 Thread fred . konrad
From: KONRAD Frederic fred.kon...@greensocs.com This introduces a new timer based only on instruction counter and without any compensation. Signed-off-by: KONRAD Frederic fred.kon...@greensocs.com --- cpus.c | 19 --- include/qemu/timer.h | 9 -

<    1   2   3   4   5   6   7   8   9   >