kvm: initialize qemu_host_page_size
There is a HOST_PAGE_ALIGN macro which makes sense for KVM accelerator but it uses qemu_host_page_size/qemu_host_page_mask which initialized for TCG only. This moves qemu_host_page_size/qemu_host_page_mask initialization from TCG's page_init() and adds a call for it from kvm_init(). Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
This commit is contained in:
parent
87ca1f77b1
commit
47c16ed56a
@ -81,6 +81,7 @@ void cpu_gen_init(void);
|
||||
int cpu_gen_code(CPUArchState *env, struct TranslationBlock *tb,
|
||||
int *gen_code_size_ptr);
|
||||
bool cpu_restore_state(CPUArchState *env, uintptr_t searched_pc);
|
||||
void page_size_init(void);
|
||||
|
||||
void QEMU_NORETURN cpu_resume_from_signal(CPUArchState *env1, void *puc);
|
||||
void QEMU_NORETURN cpu_io_recompile(CPUArchState *env, uintptr_t retaddr);
|
||||
|
@ -1360,6 +1360,7 @@ int kvm_init(void)
|
||||
* page size for the system though.
|
||||
*/
|
||||
assert(TARGET_PAGE_SIZE <= getpagesize());
|
||||
page_size_init();
|
||||
|
||||
#ifdef KVM_CAP_SET_GUEST_DEBUG
|
||||
QTAILQ_INIT(&s->kvm_sw_breakpoints);
|
||||
|
@ -289,17 +289,15 @@ static inline void map_exec(void *addr, long size)
|
||||
}
|
||||
#endif
|
||||
|
||||
static void page_init(void)
|
||||
void page_size_init(void)
|
||||
{
|
||||
/* NOTE: we can always suppose that qemu_host_page_size >=
|
||||
TARGET_PAGE_SIZE */
|
||||
#ifdef _WIN32
|
||||
{
|
||||
SYSTEM_INFO system_info;
|
||||
SYSTEM_INFO system_info;
|
||||
|
||||
GetSystemInfo(&system_info);
|
||||
qemu_real_host_page_size = system_info.dwPageSize;
|
||||
}
|
||||
GetSystemInfo(&system_info);
|
||||
qemu_real_host_page_size = system_info.dwPageSize;
|
||||
#else
|
||||
qemu_real_host_page_size = getpagesize();
|
||||
#endif
|
||||
@ -310,7 +308,11 @@ static void page_init(void)
|
||||
qemu_host_page_size = TARGET_PAGE_SIZE;
|
||||
}
|
||||
qemu_host_page_mask = ~(qemu_host_page_size - 1);
|
||||
}
|
||||
|
||||
static void page_init(void)
|
||||
{
|
||||
page_size_init();
|
||||
#if defined(CONFIG_BSD) && defined(CONFIG_USER_ONLY)
|
||||
{
|
||||
#ifdef HAVE_KINFO_GETVMMAP
|
||||
|
Loading…
Reference in New Issue
Block a user