From: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
To: Hollis Blanchard <hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [kvm-ppc-devel] [PATCH 01 of 20] Move kvm_context to kvmctl.h
Date: Fri, 02 Nov 2007 12:42:44 -0500 [thread overview]
Message-ID: <1194025364.18168.6.camel@thinkpad> (raw)
In-Reply-To: <1194024500.6479.35.camel@basalt>
On Fri, 2007-11-02 at 12:28 -0500, Hollis Blanchard wrote:
> On Fri, 2007-11-02 at 05:36 -0500, Jerone Young wrote:
> > # HG changeset patch
> > # User Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> > # Date 1193996153 18000
> > # Node ID 5900e2b0ebdee721ae651070fcd325363691e25a
> > # Parent 6ce27ddeb45df182e923060ae3abe699ce704ca3
> > Move kvm_context to kvmctl.h
> >
> > This patch moves kvm_context from libkvm.c to kvm-context.h. This is so
> > other files are able to see members of kvm_context. Also you should
> > allways declare stuff like this in a header anyway. Also moved are
> > delcrations MAX_VCPU, KVM_MAX_NUM_MEM_REGIONS, PAGE_SIZE & PAGE_MASK
> > to kvm-x86.h.
> >
> > The idea here is kvm-$(ARCH).h will be headers for interal use by
> > libkvm. Headers name libkvm-$(ARCH) will be functions that are
> > arch specific that will be exposed to a user.
> >
> > Signed-off-by: Jerone Young <jyoung5-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
> >
> > diff --git a/libkvm/config-i386.mak b/libkvm/config-i386.mak
> > --- a/libkvm/config-i386.mak
> > +++ b/libkvm/config-i386.mak
> > @@ -1,2 +1,4 @@
> >
> > LIBDIR := /lib
> > +CFLAGS += -m32
> > +CFLAGS += -D__i386__
> > diff --git a/libkvm/config-x86_64.mak b/libkvm/config-x86_64.mak
> > --- a/libkvm/config-x86_64.mak
> > +++ b/libkvm/config-x86_64.mak
> > @@ -1,2 +1,5 @@
> >
> > LIBDIR := /lib64
> > +CFLAGS += -m64
> > +CFLAGS += -D__x86_64__
>
> These shouldn't be needed since libkvm/Makefile is now
> including ../user/config.mak . (Questionable IMHO, but that's already
> committed. :)
>
> > diff --git a/libkvm/kvm-context.h b/libkvm/kvm-context.h
> > new file mode 100644
> > --- /dev/null
> > +++ b/libkvm/kvm-context.h
> > @@ -0,0 +1,31 @@
> > +#ifndef KVM_CONTEXT_H
> > +#define KVM_CONTEXT_H
> > +
> > +/**
> > + * \brief The KVM context
> > + *
> > + * The verbose KVM context
> > + */
> > +
> > +struct kvm_context {
> > + /// Filedescriptor to /dev/kvm
> > + int fd;
> > + int vm_fd;
> > + int vcpu_fd[MAX_VCPUS];
> > + struct kvm_run *run[MAX_VCPUS];
> > + /// Callbacks that KVM uses to emulate various unvirtualizable functionality
> > + struct kvm_callbacks *callbacks;
> > + void *opaque;
> > + /// A pointer to the memory used as the physical memory for the guest
> > + void *physical_memory;
> > + /// is dirty pages logging enabled for all regions or not
> > + int dirty_pages_log_all;
> > + /// memory regions parameters
> > + struct kvm_memory_region mem_regions[KVM_MAX_NUM_MEM_REGIONS];
> > + /// do not create in-kernel irqchip if set
> > + int no_irqchip_creation;
> > + /// in-kernel irqchip status
> > + int irqchip_in_kernel;
> > +};
> > +
> > +#endif
>
> This doesn't work because kvm_memory_region, MAX_VCPUS, and
> KVM_MAX_NUM_MEM_REGIONS are undefined here. I don't think kvm_context
> needs its own header anyways, and combining it into the non-exported
> kvm-common.h will simplify things.
Well in libkvm.h the arch header is included before. But since these
values may work for everyone for now I can move them and kvm-context to
the kvm-common header.
>
> > diff --git a/libkvm/kvm-x86.h b/libkvm/kvm-x86.h
> > new file mode 100644
> > --- /dev/null
> > +++ b/libkvm/kvm-x86.h
> > @@ -0,0 +1,17 @@
> > +/* This header is for functions & variables that will ONLY be
> > + * used inside libkvm for x86.
> > + * THESE ARE NOT EXPOSED TO THE USER AND ARE ONLY FOR USE
> > + * WITHIN LIBKVM.
> > + */
> > +#ifndef KVM_X86_H
> > +#define KVM_X86_H
> > +
> > +/* FIXME: share this number with kvm */
> > +/* FIXME: or dynamically alloc/realloc regions */
> > +#define KVM_MAX_NUM_MEM_REGIONS 8u
> > +#define MAX_VCPUS 4
>
> These should be common until proven otherwise, so move into
> kvm-common.h.
>
> > +#define PAGE_SIZE 4096ul
> > +#define PAGE_MASK (~(PAGE_SIZE - 1))
> > +
> > +#endif
>
> Userspace should never do this, and should always use getpagesize(2)
> instead. (I know it's not your fault.)
>
> Once you change those two things, kvm-x86.h disappears (unless you need
> to create it later in the series).
I'll change this in a patch outside of these patches.
>
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
next prev parent reply other threads:[~2007-11-02 17:42 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-02 10:36 [PATCH 00 of 20] [RESEND] Refactor libkvm code Phase 1 Jerone Young
2007-11-02 10:36 ` [PATCH 01 of 20] Move kvm_context to kvmctl.h Jerone Young
2007-11-02 17:28 ` [kvm-ppc-devel] " Hollis Blanchard
2007-11-02 17:42 ` Jerone Young [this message]
2007-11-02 10:36 ` [PATCH 02 of 20] Make static slot & kvm_memory region funcions public Jerone Young
2007-11-02 10:36 ` [PATCH 03 of 20] Move fuction kvm_alloc_kernel_memory to libkvm-x86.c Jerone Young
2007-11-02 10:36 ` [PATCH 04 of 20] Move kvm_alloc_userspace_memory " Jerone Young
2007-11-02 10:36 ` [PATCH 05 of 20] Modify out arch specific code from kvm_create function Jerone Young
2007-11-02 10:36 ` [PATCH 06 of 20] Move kvm_create_kernel_phys_mem to libkvm-x86.c Jerone Young
2007-11-02 10:36 ` [PATCH 07 of 20] Move kvm_create_phys_mem " Jerone Young
2007-11-02 10:36 ` [PATCH 08 of 20] Move kvm_destroy_phys_mem " Jerone Young
2007-11-02 10:36 ` [PATCH 09 of 20] Move kvm_create_memory_alias & kvm_destroy_memory_alias " Jerone Young
2007-11-02 10:36 ` [PATCH 10 of 20] Move kvm_get & kmv_set_lapci functions " Jerone Young
2007-11-02 10:36 ` [PATCH 11 of 20] Make functions in libkvm.c nonstatic Jerone Young
2007-11-02 10:36 ` [PATCH 12 of 20] Move abi 10 functions to libkvm-x86.c Jerone Young
2007-11-02 10:36 ` [PATCH 13 of 20] Move msrs " Jerone Young
2007-11-02 10:36 ` [PATCH 14 of 20] Move print_seg & Move kvm_show_regs to kvmctl-x86.c Jerone Young
2007-11-02 10:36 ` [PATCH 15 of 20] Declare kvm_abi as a global variable in libkvm.h Jerone Young
2007-11-02 10:36 ` [PATCH 16 of 20] Move kvm_get_apic to libkvm-x86.c Jerone Young
2007-11-02 10:36 ` [PATCH 17 of 20] Move cr8 functions " Jerone Young
2007-11-02 10:36 ` [PATCH 18 of 20] Move kvm_setup_cpuid " Jerone Young
2007-11-02 10:36 ` [PATCH 19 of 20] Move kvm_show_code " Jerone Young
2007-11-02 10:36 ` [PATCH 20 of 20] Remove unsued inclusion of linux/kvm_parah.h in userspace libkvm.h Jerone Young
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1194025364.18168.6.camel@thinkpad \
--to=jyoung5-r/jw6+rmf7hqt0dzr+alfa@public.gmane.org \
--cc=hollisb-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
--cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=kvm-ppc-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox