Skip to content

Commit

Permalink
osdep, kvm: rename low-level RAM allocation functions
Browse files Browse the repository at this point in the history
This is preparatory to the introduction of a separate freeing API.

Reported-by: Amos Kong <[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
Reviewed-by: Amos Kong <[email protected]>
Message-id: [email protected]
Signed-off-by: Anthony Liguori <[email protected]>
  • Loading branch information
bonzini authored and Anthony Liguori committed May 14, 2013
1 parent d34dc45 commit 6eebf95
Show file tree
Hide file tree
Showing 9 changed files with 18 additions and 19 deletions.
7 changes: 3 additions & 4 deletions HACKING
Original file line number Diff line number Diff line change
Expand Up @@ -78,16 +78,15 @@ avoided.
Use of the malloc/free/realloc/calloc/valloc/memalign/posix_memalign
APIs is not allowed in the QEMU codebase. Instead of these routines,
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.

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).
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
qemu_vfree, since breaking this will cause problems on Win32 and user
emulators.
Memory allocated by qemu_memalign or qemu_blockalign must be freed with
qemu_vfree, since breaking this will cause problems on Win32.

4. String manipulation

Expand Down
6 changes: 3 additions & 3 deletions exec.c
Original file line number Diff line number Diff line change
Expand Up @@ -1062,7 +1062,7 @@ ram_addr_t qemu_ram_alloc_from_ptr(ram_addr_t size, void *host,
#if defined (__linux__) && !defined(TARGET_S390X)
new_block->host = file_ram_alloc(new_block, size, mem_path);
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);
}
#else
Expand All @@ -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);
} else if (kvm_enabled()) {
/* some s390/kvm configurations have special constraints */
new_block->host = kvm_vmalloc(size);
new_block->host = kvm_ram_alloc(size);
} else {
new_block->host = qemu_vmalloc(size);
new_block->host = qemu_anon_ram_alloc(size);
}
memory_try_enable_merging(new_block->host, size);
}
Expand Down
2 changes: 1 addition & 1 deletion include/qemu/osdep.h
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ typedef signed int int_fast16_t;

int qemu_daemon(int nochdir, int noclose);
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);

#define QEMU_MADV_INVALID -1
Expand Down
4 changes: 2 additions & 2 deletions include/sysemu/kvm.h
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,8 @@ int kvm_init_vcpu(CPUState *cpu);
int kvm_cpu_exec(CPUArchState *env);

#if !defined(CONFIG_USER_ONLY)
void *kvm_vmalloc(ram_addr_t size);
void *kvm_arch_vmalloc(ram_addr_t size);
void *kvm_ram_alloc(ram_addr_t size);
void *kvm_arch_ram_alloc(ram_addr_t size);
#endif

void kvm_setup_guest_memory(void *start, size_t size);
Expand Down
6 changes: 3 additions & 3 deletions kvm-all.c
Original file line number Diff line number Diff line change
Expand Up @@ -1790,17 +1790,17 @@ int kvm_has_intx_set_mask(void)
return kvm_state->intx_set_mask;
}

void *kvm_vmalloc(ram_addr_t size)
void *kvm_ram_alloc(ram_addr_t size)
{
#ifdef TARGET_S390X
void *mem;

mem = kvm_arch_vmalloc(size);
mem = kvm_arch_ram_alloc(size);
if (mem) {
return mem;
}
#endif
return qemu_vmalloc(size);
return qemu_anon_ram_alloc(size);
}

void kvm_setup_guest_memory(void *start, size_t size)
Expand Down
2 changes: 1 addition & 1 deletion target-s390x/kvm.c
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ static void *legacy_s390_alloc(ram_addr_t size)
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 ? */
if (kvm_check_extension(kvm_state, KVM_CAP_S390_GMAP) &&
Expand Down
2 changes: 1 addition & 1 deletion trace-events
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ g_free(void *ptr) "ptr %p"

# osdep.c
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"

# hw/virtio.c
Expand Down
4 changes: 2 additions & 2 deletions util/oslib-posix.c
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ void *qemu_memalign(size_t alignment, size_t size)
}

/* 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 total = size + align - getpagesize();
Expand All @@ -125,7 +125,7 @@ void *qemu_vmalloc(size_t size)
munmap(ptr + size, total - size);
}

trace_qemu_vmalloc(size, ptr);
trace_qemu_anon_ram_alloc(size, ptr);
return ptr;
}

Expand Down
4 changes: 2 additions & 2 deletions util/oslib-win32.c
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ void *qemu_memalign(size_t alignment, size_t size)
return ptr;
}

void *qemu_vmalloc(size_t size)
void *qemu_anon_ram_alloc(size_t size)
{
void *ptr;

Expand All @@ -64,7 +64,7 @@ void *qemu_vmalloc(size_t size)
abort();
}
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;
}

Expand Down

0 comments on commit 6eebf95

Please sign in to comment.