- 04 3月, 2010 4 次提交
-
-
由 Jan Kiszka 提交于
This grand cleanup drops all reset and vmsave/load related synchronization points in favor of four(!) generic hooks: - cpu_synchronize_all_states in qemu_savevm_state_complete (initial sync from kernel before vmsave) - cpu_synchronize_all_post_init in qemu_loadvm_state (writeback after vmload) - cpu_synchronize_all_post_init in main after machine init - cpu_synchronize_all_post_reset in qemu_system_reset (writeback after system reset) These writeback points + the existing one of VCPU exec after cpu_synchronize_state map on three levels of writeback: - KVM_PUT_RUNTIME_STATE (during runtime, other VCPUs continue to run) - KVM_PUT_RESET_STATE (on synchronous system reset, all VCPUs stopped) - KVM_PUT_FULL_STATE (on init or vmload, all VCPUs stopped as well) This level is passed to the arch-specific VCPU state writing function that will decide which concrete substates need to be written. That way, no writer of load, save or reset functions that interact with in-kernel KVM states will ever have to worry about synchronization again. That also means that a lot of reasons for races, segfaults and deadlocks are eliminated. cpu_synchronize_state remains untouched, just as Anthony suggested. We continue to need it before reading or writing of VCPU states that are also tracked by in-kernel KVM subsystems. Consequently, this patch removes many cpu_synchronize_state calls that are now redundant, just like remaining explicit register syncs. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
-
由 Jan Kiszka 提交于
So far we synchronized any dirty VCPU state back into the kernel before updating the guest debug state. This was a tribute to a deficite in x86 kernels before 2.6.33. But as this is an arch-dependent issue, it is better handle in the x86 part of KVM and remove the writeback point for generic code. This also avoids overwriting the flushed state later on if user space decides to change some more registers before resuming the guest. We furthermore need to reinject guest exceptions via the appropriate mechanism. That is KVM_SET_GUEST_DEBUG for older kernels and KVM_SET_VCPU_EVENTS for recent ones. Using both mechanisms at the same time will cause state corruptions. Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
-
由 Marcelo Tosatti 提交于
Port qemu-kvm's -mem-path and -mem-prealloc options. These are useful for backing guest memory with huge pages via hugetlbfs. Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com> CC: john cooper <john.cooper@redhat.com>
-
由 Avi Kivity 提交于
Instead of allocating a separate chunk for the first 640KB and another for 1MB+, allocate one large chunk. This plays well in terms of alignment and size with large pages. Signed-off-by: NAvi Kivity <avi@redhat.com> Signed-off-by: NMarcelo Tosatti <mtosatti@redhat.com>
-
- 03 3月, 2010 9 次提交
-
-
由 Samuel Thibault 提交于
Hello, curses_keys.h is using obscure constant values while the curses.h header provides fine defines, let's use the latter. To be applied on top of my previous patch. Samuel Signed-off-by: NSamuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: NAndrzej Zaborowski <andrew.zaborowski@intel.com>
-
由 Samuel Thibault 提交于
Hello, There is a small incoherency in curses_keys.h, which makes it fail to emit \n when using e.g. -k fr: curses2keysym transforms \r and 0x157 into \n, but name2keysym binds \r with Return, not \n. The patch below fixes that. Signed-off-by: NSamuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: NAndrzej Zaborowski <andrew.zaborowski@intel.com>
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net> Signed-off-by: NAndrzej Zaborowski <andrew.zaborowski@intel.com>
-
由 Andrzej Zaborowski 提交于
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net> Signed-off-by: NAndrzej Zaborowski <andrew.zaborowski@intel.com>
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net> Signed-off-by: NAndrzej Zaborowski <andrew.zaborowski@intel.com>
-
由 Aurelien Jarno 提交于
When restoring register values, increase the stack register for skipped values. Signed-off-by: NAurelien Jarno <aurelien@aurel32.net> Signed-off-by: NAndrzej Zaborowski <andrew.zaborowski@intel.com>
-
- 01 3月, 2010 12 次提交
-
-
由 Paul Brook 提交于
tlb_set_page isn't meaningful for userspace emulation, so remove it. Signed-off-by: NPaul Brook <paul@codesourcery.com>
-
由 Paul Brook 提交于
Move definitions for subpage handling into !CONFIG_USER_ONLY code. Signed-off-by: NPaul Brook <paul@codesourcery.com>
-
由 Paul Brook 提交于
Fix function signature for userspace disassembler symbol lookup. Signed-off-by: NPaul Brook <paul@codesourcery.com>
-
由 Paul Brook 提交于
Only include ioport.h where it is actually needed. Signed-off-by: NPaul Brook <paul@codesourcery.com>
-
由 Paul Brook 提交于
Userspace doesn't have physical memory, so cpu_physical_memory_rw makes no sense. This is only used to implement cpu_memory_rw_debug, so just implement that directly instead. Signed-off-by: NPaul Brook <paul@codesourcery.com>
-
由 Paul Brook 提交于
Userspace emulation doesn't have a physical address space, so l1_phys_map makes no sense. This code is never actually used, so don't try and build it. Signed-off-by: NPaul Brook <paul@codesourcery.com>
-
由 Paul Brook 提交于
Remove bogus virtual->physical address translation in breakpoint_invalidate for userspace emulation. Signed-off-by: NPaul Brook <paul@codesourcery.com>
-
由 Juha Riihimäki 提交于
implementation only widened the 32bit source vector elements into a 64bit destination vector but forgot to perform the actual shifting operation. Signed-off-by: NJuha Riihimäki <juha.riihimaki@nokia.com> Signed-off-by: NRiku Voipio <riku.voipio@nokia.com> Acked-by: NLaurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Riku Voipio 提交于
The rounding/truncating options were inverted. truncating was done when rounding was meant and vice verse. Signed-off-by: NRiku Voipio <riku.voipio@nokia.com> Acked-by: NLaurent Desnogues <laurent.desnogues@gmail.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Jason Wessel 提交于
If you make use of hw breakpoints on a 32bit x86 linux host, qemu will segmentation fault when processing the exception. The problem is that the value of env is stored in $ebp in the op_helper raise_exception() function, and it can have the wrong value when calling it from non generated code. It is possible to work around the problem by restoring the value of env before calling raise_exception() using a new helper function that takes (CPUState *) as one of the arguments. Signed-off-by: NJason Wessel <jason.wessel@windriver.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Richard Henderson 提交于
Move userland PALcode handling into linux-user main loop so that we can send signals from there. This also makes alpha_palcode.c system-level only, so don't build it for userland. Add defines for GENTRAP PALcall mapping to signals. Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Richard Henderson 提交于
IEEE FP instructions are split up so that the rounding mode coming from the instruction and exceptions (both masking and delivery) are handled external to the base FP operation. FP exceptions are properly raised for non-finite inputs to instructions that do not indicate software completion. A shortcut is applied if CONFIG_SOFTFLOAT_INLINE is defined at the top of translate.c: data is loaded and stored into FP_STATUS directly instead of using the functional interface defined by "softfloat.h". Signed-off-by: NRichard Henderson <rth@twiddle.net> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
- 28 2月, 2010 8 次提交
-
-
由 Aurelien Jarno 提交于
Invalid opcode messages can be perfectly normal, for example if this code is never executed. Don't print an error message on the console, but keep the message in the log for debugging purposes. Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Aurelien Jarno 提交于
This reverts commit 6454e7be.
-
由 malc 提交于
Signed-off-by: Nmalc <av1474@comtv.ru>
-
由 Vagrant Cascadian 提交于
Trivial patch to fix the spelling of "parameters". Signed-off-by: Nmalc <av1474@comtv.ru>
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Jan Kiszka 提交于
Signed-off-by: NJan Kiszka <jan.kiszka@siemens.com> Acked-by: NGerd Hoffmann <kraxel@redhat.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Liu Yu 提交于
Since kernel uimage is getting bigger, old fixed loading bases will result in regions overlap. Add pad for fdt and ramdisk, so that they won't overlap with uimage. Signed-off-by: NLiu Yu <yu.liu@freescale.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Aurelien Jarno 提交于
Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
- 27 2月, 2010 7 次提交
-
-
由 Liu Yu 提交于
It's convinent to use rom to checking overlap, to reset etc. And uImage and ramdisk loading has already moved to it. Also, after we add fdt to rom, free it. Signed-off-by: NLiu Yu <yu.liu@freescale.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Liu Yu 提交于
So that the following registers init could be flushed back to kvm. Signed-off-by: NLiu Yu <yu.liu@freescale.com> Acked-by: NHollis Blanchard <hollis@penguinppc.org> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 takasi-y@ops.dti.ne.jp 提交于
cpu_gdb_read_register(): Fix n={8...15} case. cpu_gdb_write_register(): Fix n={8...15} case and runaway "case:". Signed-off-by: NTakashi YOSHII <takasi-y@ops.dti.ne.jp> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Nathan Froyd 提交于
The shifts in the gen_evsplat* functions were expecting rA to be masked, not extracted, and so used the wrong shift amounts to sign-extend or pad with zeroes. Signed-off-by: NNathan Froyd <froydnj@codesourcery.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Nathan Froyd 提交于
The CRF_{CH,CL,CH_OR_CL,CH_AND_CL} constants were all off by one bit position. Because of this, the SPE evcmp* family of instructions would store values in the result condition register that were also off by one bit position. Fixed by using the CRF_{LT,GT,EQ,SO} constants for the shift amounts. Signed-off-by: NNathan Froyd <froydnj@codesourcery.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Stefan Weil 提交于
Compilation of m68k-softmmu or m68k-linux-user on arm host (or cross compilation for arm) results in a linker warning: LINK m68k-softmmu/qemu-system-m68k m68k-dis.o: warning: definition of `floatformat_ieee_single_little' overriding common arm-dis.o: warning: common is here /usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../../arm-linux-gnueabi/bin/ld: Warning: size of symbol `floatformat_ieee_single_little' changed from 4 in arm-dis.o to 48 in m68k-dis.o floatformat_ieee_single_little is declared in arm-dis.c and m68k-dis.c, and both declarations don't match, so this is an error. The symbol is not needed in arm-dis.c, so I removed it there. Signed-off-by: NStefan Weil <weil@mail.berlios.de> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-
由 Amit Shah 提交于
Commit b5ec5ce0 broke 'make install' from non source-dir build. Fix. Signed-off-by: NAmit Shah <amit.shah@redhat.com> Signed-off-by: NAurelien Jarno <aurelien@aurel32.net>
-