[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] kvm: initialize qemu_host_page_size
From: |
Alex Williamson |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] kvm: initialize qemu_host_page_size |
Date: |
Fri, 17 Jan 2014 08:34:42 -0700 |
On Fri, 2014-01-17 at 13:55 +0100, Paolo Bonzini wrote:
> Il 16/01/2014 07:21, Alexey Kardashevskiy ha scritto:
> > 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 <address@hidden>
> > ---
> > include/exec/exec-all.h | 1 +
> > kvm-all.c | 1 +
> > translate-all.c | 14 ++++++++------
> > 3 files changed, 10 insertions(+), 6 deletions(-)
> >
> > diff --git a/include/exec/exec-all.h b/include/exec/exec-all.h
> > index ea90b64..3b03cbf 100644
> > --- a/include/exec/exec-all.h
> > +++ b/include/exec/exec-all.h
> > @@ -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);
> > diff --git a/kvm-all.c b/kvm-all.c
> > index 0bfb060..edf2365 100644
> > --- a/kvm-all.c
> > +++ b/kvm-all.c
> > @@ -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);
> > diff --git a/translate-all.c b/translate-all.c
> > index 105c25a..543e1ff 100644
> > --- a/translate-all.c
> > +++ b/translate-all.c
> > @@ -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
> >
>
> Acked-by: Paolo Bonzini <address@hidden>
How should this go in? With your ack I could include it in my vfio tree
with patch 2/2. Sound ok? Thanks,
Alex