mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
core: replace getpagesize() with qemu_real_host_page_size
There are three page size in qemu: real host page size host page size target page size All of them have dedicate variable to represent. For the last two, we use the same form in the whole qemu project, while for the first one we use two forms: qemu_real_host_page_size and getpagesize(). qemu_real_host_page_size is defined to be a replacement of getpagesize(), so let it serve the role. [Note] Not fully tested for some arch or device. Signed-off-by: Wei Yang <richardw.yang@linux.intel.com> Message-Id: <20191013021145.16011-3-richardw.yang@linux.intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5608956575
commit
038adc2f58
25 changed files with 52 additions and 50 deletions
|
@ -48,7 +48,7 @@ size_t qemu_fd_getpagesize(int fd)
|
|||
#endif
|
||||
#endif
|
||||
|
||||
return getpagesize();
|
||||
return qemu_real_host_page_size;
|
||||
}
|
||||
|
||||
size_t qemu_mempath_getpagesize(const char *mem_path)
|
||||
|
@ -79,7 +79,7 @@ size_t qemu_mempath_getpagesize(const char *mem_path)
|
|||
#endif
|
||||
#endif
|
||||
|
||||
return getpagesize();
|
||||
return qemu_real_host_page_size;
|
||||
}
|
||||
|
||||
void *qemu_ram_mmap(int fd,
|
||||
|
@ -114,7 +114,7 @@ void *qemu_ram_mmap(int fd,
|
|||
*/
|
||||
flags = MAP_PRIVATE;
|
||||
pagesize = qemu_fd_getpagesize(fd);
|
||||
if (fd == -1 || pagesize == getpagesize()) {
|
||||
if (fd == -1 || pagesize == qemu_real_host_page_size) {
|
||||
guardfd = -1;
|
||||
flags |= MAP_ANONYMOUS;
|
||||
} else {
|
||||
|
@ -123,7 +123,7 @@ void *qemu_ram_mmap(int fd,
|
|||
}
|
||||
#else
|
||||
guardfd = -1;
|
||||
pagesize = getpagesize();
|
||||
pagesize = qemu_real_host_page_size;
|
||||
flags = MAP_PRIVATE | MAP_ANONYMOUS;
|
||||
#endif
|
||||
|
||||
|
@ -205,7 +205,7 @@ void qemu_ram_munmap(int fd, void *ptr, size_t size)
|
|||
#if defined(__powerpc64__) && defined(__linux__)
|
||||
pagesize = qemu_fd_getpagesize(fd);
|
||||
#else
|
||||
pagesize = getpagesize();
|
||||
pagesize = qemu_real_host_page_size;
|
||||
#endif
|
||||
munmap(ptr, size + pagesize);
|
||||
}
|
||||
|
|
|
@ -617,7 +617,7 @@ void *qemu_alloc_stack(size_t *sz)
|
|||
#ifdef CONFIG_DEBUG_STACK_USAGE
|
||||
void *ptr2;
|
||||
#endif
|
||||
size_t pagesz = getpagesize();
|
||||
size_t pagesz = qemu_real_host_page_size;
|
||||
#ifdef _SC_THREAD_STACK_MIN
|
||||
/* avoid stacks smaller than _SC_THREAD_STACK_MIN */
|
||||
long min_stack_sz = sysconf(_SC_THREAD_STACK_MIN);
|
||||
|
@ -679,7 +679,7 @@ void qemu_free_stack(void *stack, size_t sz)
|
|||
unsigned int usage;
|
||||
void *ptr;
|
||||
|
||||
for (ptr = stack + getpagesize(); ptr < stack + sz;
|
||||
for (ptr = stack + qemu_real_host_page_size; ptr < stack + sz;
|
||||
ptr += sizeof(uint32_t)) {
|
||||
if (*(uint32_t *)ptr != 0xdeadbeaf) {
|
||||
break;
|
||||
|
|
|
@ -554,7 +554,7 @@ void os_mem_prealloc(int fd, char *area, size_t memory, int smp_cpus,
|
|||
Error **errp)
|
||||
{
|
||||
int i;
|
||||
size_t pagesize = getpagesize();
|
||||
size_t pagesize = qemu_real_host_page_size;
|
||||
|
||||
memory = (memory + pagesize - 1) & -pagesize;
|
||||
for (i = 0; i < memory / pagesize; i++) {
|
||||
|
|
|
@ -514,9 +514,9 @@ static IOVAMapping *qemu_vfio_add_mapping(QEMUVFIOState *s,
|
|||
IOVAMapping m = {.host = host, .size = size, .iova = iova};
|
||||
IOVAMapping *insert;
|
||||
|
||||
assert(QEMU_IS_ALIGNED(size, getpagesize()));
|
||||
assert(QEMU_IS_ALIGNED(s->low_water_mark, getpagesize()));
|
||||
assert(QEMU_IS_ALIGNED(s->high_water_mark, getpagesize()));
|
||||
assert(QEMU_IS_ALIGNED(size, qemu_real_host_page_size));
|
||||
assert(QEMU_IS_ALIGNED(s->low_water_mark, qemu_real_host_page_size));
|
||||
assert(QEMU_IS_ALIGNED(s->high_water_mark, qemu_real_host_page_size));
|
||||
trace_qemu_vfio_new_mapping(s, host, size, index, iova);
|
||||
|
||||
assert(index >= 0);
|
||||
|
@ -567,7 +567,7 @@ static void qemu_vfio_undo_mapping(QEMUVFIOState *s, IOVAMapping *mapping,
|
|||
|
||||
index = mapping - s->mappings;
|
||||
assert(mapping->size > 0);
|
||||
assert(QEMU_IS_ALIGNED(mapping->size, getpagesize()));
|
||||
assert(QEMU_IS_ALIGNED(mapping->size, qemu_real_host_page_size));
|
||||
assert(index >= 0 && index < s->nr_mappings);
|
||||
if (ioctl(s->container, VFIO_IOMMU_UNMAP_DMA, &unmap)) {
|
||||
error_setg(errp, "VFIO_UNMAP_DMA failed: %d", -errno);
|
||||
|
@ -613,8 +613,8 @@ int qemu_vfio_dma_map(QEMUVFIOState *s, void *host, size_t size,
|
|||
IOVAMapping *mapping;
|
||||
uint64_t iova0;
|
||||
|
||||
assert(QEMU_PTR_IS_ALIGNED(host, getpagesize()));
|
||||
assert(QEMU_IS_ALIGNED(size, getpagesize()));
|
||||
assert(QEMU_PTR_IS_ALIGNED(host, qemu_real_host_page_size));
|
||||
assert(QEMU_IS_ALIGNED(size, qemu_real_host_page_size));
|
||||
trace_qemu_vfio_dma_map(s, host, size, temporary, iova);
|
||||
qemu_mutex_lock(&s->lock);
|
||||
mapping = qemu_vfio_find_mapping(s, host, &index);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue