diff options
author | 2009-08-24 18:28:49 +0300 | |
---|---|---|
committer | 2009-08-24 18:28:49 +0300 | |
commit | 193cd7fc43b3f5e1c3eb07e512fe65fc0bfcfded (patch) | |
tree | 8b3ce0860a3485c07aa25dd20dc97835138728bb /exec.c | |
parent | Merge commit '1632dc6a8f6e8662f4a203b6fb8c0371ca216946' into upstream-merge (diff) | |
parent | Unbreak large mem support by removing kqemu (diff) | |
download | qemu-kvm-193cd7fc43b3f5e1c3eb07e512fe65fc0bfcfded.tar.gz qemu-kvm-193cd7fc43b3f5e1c3eb07e512fe65fc0bfcfded.tar.bz2 qemu-kvm-193cd7fc43b3f5e1c3eb07e512fe65fc0bfcfded.zip |
Merge commit '4a1418e07bdcfaa3177739e04707ecaec75d89e1' into upstream-merge
* commit '4a1418e07bdcfaa3177739e04707ecaec75d89e1':
Unbreak large mem support by removing kqemu
Add a configure switch to enable / disable all user targets. I felt compelled to do it for symmetry, mostly it is useful to disable user targets when you don't want to build them.
Migration via unix sockets.
Conflicts:
Makefile.target
exec.c
osdep.c
vl.c
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'exec.c')
-rw-r--r-- | exec.c | 91 |
1 files changed, 2 insertions, 89 deletions
@@ -76,14 +76,13 @@ #define TARGET_VIRT_ADDR_SPACE_BITS 42 #elif defined(TARGET_PPC64) #define TARGET_PHYS_ADDR_SPACE_BITS 42 -#elif defined(TARGET_X86_64) && !defined(CONFIG_KQEMU) +#elif defined(TARGET_X86_64) #define TARGET_PHYS_ADDR_SPACE_BITS 42 -#elif defined(TARGET_I386) && !defined(CONFIG_KQEMU) +#elif defined(TARGET_I386) #define TARGET_PHYS_ADDR_SPACE_BITS 36 #elif defined(TARGET_IA64) #define TARGET_PHYS_ADDR_SPACE_BITS 36 #else -/* Note: for compatibility with kqemu, we use 32 bits for x86_64 */ #define TARGET_PHYS_ADDR_SPACE_BITS 32 #endif @@ -1782,11 +1781,6 @@ void tlb_flush(CPUState *env, int flush_global) memset (env->tb_jmp_cache, 0, TB_JMP_CACHE_SIZE * sizeof (void *)); -#ifdef CONFIG_KQEMU - if (env->kqemu_enabled) { - kqemu_flush(env, flush_global); - } -#endif tlb_flush_count++; } @@ -1820,12 +1814,6 @@ void tlb_flush_page(CPUState *env, target_ulong addr) tlb_flush_entry(&env->tlb_table[mmu_idx][i], addr); tlb_flush_jmp_cache(env, addr); - -#ifdef CONFIG_KQEMU - if (env->kqemu_enabled) { - kqemu_flush_page(env, addr); - } -#endif } /* update the TLBs so that writes to code in the virtual page 'addr' @@ -1873,18 +1861,6 @@ void cpu_physical_memory_reset_dirty(ram_addr_t start, ram_addr_t end, if (length == 0) return; len = length >> TARGET_PAGE_BITS; -#ifdef CONFIG_KQEMU - /* XXX: should not depend on cpu context */ - env = first_cpu; - if (env->kqemu_enabled) { - ram_addr_t addr; - addr = start; - for(i = 0; i < len; i++) { - kqemu_set_notdirty(env, addr); - addr += TARGET_PAGE_SIZE; - } - } -#endif mask = ~dirty_flags; p = phys_ram_dirty + (start >> TARGET_PAGE_BITS); for(i = 0; i < len; i++) @@ -2340,13 +2316,6 @@ void cpu_register_physical_memory_offset(target_phys_addr_t start_addr, ram_addr_t orig_size = size; void *subpage; -#ifdef CONFIG_KQEMU - /* XXX: should not depend on cpu context */ - env = first_cpu; - if (env->kqemu_enabled) { - kqemu_set_phys_mem(start_addr, size, phys_offset); - } -#endif if (kvm_enabled()) kvm_set_phys_mem(start_addr, size, phys_offset); @@ -2441,22 +2410,6 @@ void qemu_unregister_coalesced_mmio(target_phys_addr_t addr, ram_addr_t size) kvm_uncoalesce_mmio_region(addr, size); } -#ifdef CONFIG_KQEMU -/* XXX: better than nothing */ -static ram_addr_t kqemu_ram_alloc(ram_addr_t size) -{ - ram_addr_t addr; - if ((last_ram_offset + size) > kqemu_phys_ram_size) { - fprintf(stderr, "Not enough memory (requested_size = %" PRIu64 ", max memory = %" PRIu64 ")\n", - (uint64_t)size, (uint64_t)kqemu_phys_ram_size); - abort(); - } - addr = last_ram_offset; - last_ram_offset = TARGET_PAGE_ALIGN(last_ram_offset + size); - return addr; -} -#endif - #ifdef __linux__ #include <sys/vfs.h> @@ -2568,12 +2521,6 @@ ram_addr_t qemu_ram_alloc(ram_addr_t size) { RAMBlock *new_block; -#ifdef CONFIG_KQEMU - if (kqemu_phys_ram_base) { - return kqemu_ram_alloc(size); - } -#endif - size = TARGET_PAGE_ALIGN(size); new_block = qemu_malloc(sizeof(*new_block)); @@ -2619,12 +2566,6 @@ void *qemu_get_ram_ptr(ram_addr_t addr) RAMBlock **prevp; RAMBlock *block; -#ifdef CONFIG_KQEMU - if (kqemu_phys_ram_base) { - return kqemu_phys_ram_base + addr; - } -#endif - prev = NULL; prevp = &ram_blocks; block = ram_blocks; @@ -2657,12 +2598,6 @@ ram_addr_t qemu_ram_addr_from_host(void *ptr) RAMBlock *block; uint8_t *host = ptr; -#ifdef CONFIG_KQEMU - if (kqemu_phys_ram_base) { - return host - kqemu_phys_ram_base; - } -#endif - prev = NULL; prevp = &ram_blocks; block = ram_blocks; @@ -2767,11 +2702,6 @@ static void notdirty_mem_writeb(void *opaque, target_phys_addr_t ram_addr, #endif } stb_p(qemu_get_ram_ptr(ram_addr), val); -#ifdef CONFIG_KQEMU - if (cpu_single_env->kqemu_enabled && - (dirty_flags & KQEMU_MODIFY_PAGE_MASK) != KQEMU_MODIFY_PAGE_MASK) - kqemu_modify_page(cpu_single_env, ram_addr); -#endif dirty_flags |= (0xff & ~CODE_DIRTY_FLAG); phys_ram_dirty[ram_addr >> TARGET_PAGE_BITS] = dirty_flags; /* we remove the notdirty callback only if the code has been @@ -2792,11 +2722,6 @@ static void notdirty_mem_writew(void *opaque, target_phys_addr_t ram_addr, #endif } stw_p(qemu_get_ram_ptr(ram_addr), val); -#ifdef CONFIG_KQEMU - if (cpu_single_env->kqemu_enabled && - (dirty_flags & KQEMU_MODIFY_PAGE_MASK) != KQEMU_MODIFY_PAGE_MASK) - kqemu_modify_page(cpu_single_env, ram_addr); -#endif dirty_flags |= (0xff & ~CODE_DIRTY_FLAG); phys_ram_dirty[ram_addr >> TARGET_PAGE_BITS] = dirty_flags; /* we remove the notdirty callback only if the code has been @@ -2817,11 +2742,6 @@ static void notdirty_mem_writel(void *opaque, target_phys_addr_t ram_addr, #endif } stl_p(qemu_get_ram_ptr(ram_addr), val); -#ifdef CONFIG_KQEMU - if (cpu_single_env->kqemu_enabled && - (dirty_flags & KQEMU_MODIFY_PAGE_MASK) != KQEMU_MODIFY_PAGE_MASK) - kqemu_modify_page(cpu_single_env, ram_addr); -#endif dirty_flags |= (0xff & ~CODE_DIRTY_FLAG); phys_ram_dirty[ram_addr >> TARGET_PAGE_BITS] = dirty_flags; /* we remove the notdirty callback only if the code has been @@ -3172,13 +3092,6 @@ static void io_mem_init(void) io_mem_watch = cpu_register_io_memory(watch_mem_read, watch_mem_write, NULL); -#ifdef CONFIG_KQEMU - if (kqemu_phys_ram_base) { - /* alloc dirty bits array */ - phys_ram_dirty = qemu_vmalloc(kqemu_phys_ram_size >> TARGET_PAGE_BITS); - memset(phys_ram_dirty, 0xff, kqemu_phys_ram_size >> TARGET_PAGE_BITS); - } -#endif } #endif /* !defined(CONFIG_USER_ONLY) */ |