osdep, kvm: rename low-level RAM allocation functions

This is preparatory to the introduction of a separate freeing API.

Reported-by: Amos Kong <akong@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Amos Kong <akong@redhat.com>
Message-id: 1368454796-14989-2-git-send-email-pbonzini@redhat.com
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
Paolo Bonzini 2013-05-13 16:19:55 +02:00 committed by Anthony Liguori
parent d34dc45d34
commit 6eebf958ab
9 changed files with 18 additions and 19 deletions

View File

@ -78,16 +78,15 @@ avoided.
Use of the malloc/free/realloc/calloc/valloc/memalign/posix_memalign Use of the malloc/free/realloc/calloc/valloc/memalign/posix_memalign
APIs is not allowed in the QEMU codebase. Instead of these routines, APIs is not allowed in the QEMU codebase. Instead of these routines,
use the GLib memory allocation routines g_malloc/g_malloc0/g_new/ use the GLib memory allocation routines g_malloc/g_malloc0/g_new/
g_new0/g_realloc/g_free or QEMU's qemu_vmalloc/qemu_memalign/qemu_vfree g_new0/g_realloc/g_free or QEMU's qemu_memalign/qemu_blockalign/qemu_vfree
APIs. APIs.
Please note that g_malloc will exit on allocation failure, so there Please note that g_malloc will exit on allocation failure, so there
is no need to test for failure (as you would have to with malloc). is no need to test for failure (as you would have to with malloc).
Calling g_malloc with a zero size is valid and will return NULL. Calling g_malloc with a zero size is valid and will return NULL.
Memory allocated by qemu_vmalloc or qemu_memalign must be freed with Memory allocated by qemu_memalign or qemu_blockalign must be freed with
qemu_vfree, since breaking this will cause problems on Win32 and user qemu_vfree, since breaking this will cause problems on Win32.
emulators.
4. String manipulation 4. String manipulation

6
exec.c
View File

@ -1062,7 +1062,7 @@ ram_addr_t qemu_ram_alloc_from_ptr(ram_addr_t size, void *host,
#if defined (__linux__) && !defined(TARGET_S390X) #if defined (__linux__) && !defined(TARGET_S390X)
new_block->host = file_ram_alloc(new_block, size, mem_path); new_block->host = file_ram_alloc(new_block, size, mem_path);
if (!new_block->host) { if (!new_block->host) {
new_block->host = qemu_vmalloc(size); new_block->host = qemu_anon_ram_alloc(size);
memory_try_enable_merging(new_block->host, size); memory_try_enable_merging(new_block->host, size);
} }
#else #else
@ -1074,9 +1074,9 @@ ram_addr_t qemu_ram_alloc_from_ptr(ram_addr_t size, void *host,
xen_ram_alloc(new_block->offset, size, mr); xen_ram_alloc(new_block->offset, size, mr);
} else if (kvm_enabled()) { } else if (kvm_enabled()) {
/* some s390/kvm configurations have special constraints */ /* some s390/kvm configurations have special constraints */
new_block->host = kvm_vmalloc(size); new_block->host = kvm_ram_alloc(size);
} else { } else {
new_block->host = qemu_vmalloc(size); new_block->host = qemu_anon_ram_alloc(size);
} }
memory_try_enable_merging(new_block->host, size); memory_try_enable_merging(new_block->host, size);
} }

View File

@ -96,7 +96,7 @@ typedef signed int int_fast16_t;
int qemu_daemon(int nochdir, int noclose); int qemu_daemon(int nochdir, int noclose);
void *qemu_memalign(size_t alignment, size_t size); void *qemu_memalign(size_t alignment, size_t size);
void *qemu_vmalloc(size_t size); void *qemu_anon_ram_alloc(size_t size);
void qemu_vfree(void *ptr); void qemu_vfree(void *ptr);
#define QEMU_MADV_INVALID -1 #define QEMU_MADV_INVALID -1

View File

@ -142,8 +142,8 @@ int kvm_init_vcpu(CPUState *cpu);
int kvm_cpu_exec(CPUArchState *env); int kvm_cpu_exec(CPUArchState *env);
#if !defined(CONFIG_USER_ONLY) #if !defined(CONFIG_USER_ONLY)
void *kvm_vmalloc(ram_addr_t size); void *kvm_ram_alloc(ram_addr_t size);
void *kvm_arch_vmalloc(ram_addr_t size); void *kvm_arch_ram_alloc(ram_addr_t size);
#endif #endif
void kvm_setup_guest_memory(void *start, size_t size); void kvm_setup_guest_memory(void *start, size_t size);

View File

@ -1790,17 +1790,17 @@ int kvm_has_intx_set_mask(void)
return kvm_state->intx_set_mask; return kvm_state->intx_set_mask;
} }
void *kvm_vmalloc(ram_addr_t size) void *kvm_ram_alloc(ram_addr_t size)
{ {
#ifdef TARGET_S390X #ifdef TARGET_S390X
void *mem; void *mem;
mem = kvm_arch_vmalloc(size); mem = kvm_arch_ram_alloc(size);
if (mem) { if (mem) {
return mem; return mem;
} }
#endif #endif
return qemu_vmalloc(size); return qemu_anon_ram_alloc(size);
} }
void kvm_setup_guest_memory(void *start, size_t size) void kvm_setup_guest_memory(void *start, size_t size)

View File

@ -332,7 +332,7 @@ static void *legacy_s390_alloc(ram_addr_t size)
return mem; return mem;
} }
void *kvm_arch_vmalloc(ram_addr_t size) void *kvm_arch_ram_alloc(ram_addr_t size)
{ {
/* Can we use the standard allocation ? */ /* Can we use the standard allocation ? */
if (kvm_check_extension(kvm_state, KVM_CAP_S390_GMAP) && if (kvm_check_extension(kvm_state, KVM_CAP_S390_GMAP) &&

View File

@ -32,7 +32,7 @@ g_free(void *ptr) "ptr %p"
# osdep.c # osdep.c
qemu_memalign(size_t alignment, size_t size, void *ptr) "alignment %zu size %zu ptr %p" qemu_memalign(size_t alignment, size_t size, void *ptr) "alignment %zu size %zu ptr %p"
qemu_vmalloc(size_t size, void *ptr) "size %zu ptr %p" qemu_anon_ram_alloc(size_t size, void *ptr) "size %zu ptr %p"
qemu_vfree(void *ptr) "ptr %p" qemu_vfree(void *ptr) "ptr %p"
# hw/virtio.c # hw/virtio.c

View File

@ -101,7 +101,7 @@ void *qemu_memalign(size_t alignment, size_t size)
} }
/* alloc shared memory pages */ /* alloc shared memory pages */
void *qemu_vmalloc(size_t size) void *qemu_anon_ram_alloc(size_t size)
{ {
size_t align = QEMU_VMALLOC_ALIGN; size_t align = QEMU_VMALLOC_ALIGN;
size_t total = size + align - getpagesize(); size_t total = size + align - getpagesize();
@ -125,7 +125,7 @@ void *qemu_vmalloc(size_t size)
munmap(ptr + size, total - size); munmap(ptr + size, total - size);
} }
trace_qemu_vmalloc(size, ptr); trace_qemu_anon_ram_alloc(size, ptr);
return ptr; return ptr;
} }

View File

@ -53,7 +53,7 @@ void *qemu_memalign(size_t alignment, size_t size)
return ptr; return ptr;
} }
void *qemu_vmalloc(size_t size) void *qemu_anon_ram_alloc(size_t size)
{ {
void *ptr; void *ptr;
@ -64,7 +64,7 @@ void *qemu_vmalloc(size_t size)
abort(); abort();
} }
ptr = qemu_oom_check(VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE)); ptr = qemu_oom_check(VirtualAlloc(NULL, size, MEM_COMMIT, PAGE_READWRITE));
trace_qemu_vmalloc(size, ptr); trace_qemu_anon_ram_alloc(size, ptr);
return ptr; return ptr;
} }