All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Graf <agraf@suse.de>
To: Glauber Costa <glommer@redhat.com>
Cc: aliguori@us.ibm.com, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH v2 7/9] provide apic-kvm
Date: Tue, 01 Dec 2009 17:44:41 +0100	[thread overview]
Message-ID: <4B1547F9.1070105@suse.de> (raw)
In-Reply-To: <1258391527-18840-8-git-send-email-glommer@redhat.com>

Glauber Costa wrote:
> This patch provides the file apic-kvm.c, which implements a schim over
> the kvm in-kernel APIC.
>
> Signed-off-by: Glauber Costa <glommer@redhat.com>
> ---
>  Makefile.target   |    2 +-
>  hw/apic-kvm.c     |  157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
>  hw/pc.c           |    6 ++-
>  hw/pc.h           |    2 +
>  kvm.h             |    3 +
>  target-i386/cpu.h |    4 ++
>  target-i386/kvm.c |   23 ++++++++-
>  7 files changed, 194 insertions(+), 3 deletions(-)
>  create mode 100644 hw/apic-kvm.c
>
> diff --git a/Makefile.target b/Makefile.target
> index 86cf0a5..761e905 100644
> --- a/Makefile.target
> +++ b/Makefile.target
> @@ -199,7 +199,7 @@ obj-i386-y += usb-uhci.o vmmouse.o vmport.o vmware_vga.o hpet.o
>  obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
>  obj-i386-y += ne2000-isa.o
>  
> -obj-i386-$(CONFIG_KVM) += ioapic-kvm.o i8259-kvm.o
> +obj-i386-$(CONFIG_KVM) += ioapic-kvm.o i8259-kvm.o apic-kvm.o
>  
>  # shared objects
>  obj-ppc-y = ppc.o ide/core.o ide/qdev.o ide/isa.o ide/pci.o ide/macio.o
> diff --git a/hw/apic-kvm.c b/hw/apic-kvm.c
> new file mode 100644
> index 0000000..089fa45
> --- /dev/null
> +++ b/hw/apic-kvm.c
> @@ -0,0 +1,157 @@
> +#include "hw.h"
> +#include "pc.h"
> +#include "pci.h"
> +#include "msix.h"
> +#include "qemu-timer.h"
> +#include "host-utils.h"
> +#include "kvm.h"
> +
> +#define APIC_LVT_NB      6
> +#define APIC_LVT_LINT0   3
> +
> +struct qemu_lapic_state {
> +    uint32_t apicbase;
> +    uint8_t id;
> +    uint8_t arb_id;
> +    uint8_t tpr;
> +    uint32_t spurious_vec;
> +    uint8_t log_dest;
> +    uint8_t dest_mode;
> +    uint32_t isr[8];  /* in service register */
> +    uint32_t tmr[8];  /* trigger mode register */
> +    uint32_t irr[8]; /* interrupt request register */
> +    uint32_t lvt[APIC_LVT_NB];
> +    uint32_t esr; /* error register */
> +    uint32_t icr[2];
> +
> +    uint32_t divide_conf;
> +    int count_shift;
> +    uint32_t initial_count;
> +    int64_t initial_count_load_time, next_time;
> +    uint32_t idx;
> +    int sipi_vector;
> +    int wait_for_sipi;
> +};
> +
> +typedef struct APICState {
> +    CPUState *cpu_env;
> +
> +/* KVM lapic structure is just a big array of regs. But it is what kvm
> + * functions expect. So have both the fields separated, for easy access,
> + * and the kvm stucture, for ioctls communications */
> +    union {
> +        struct qemu_lapic_state dev;
> +        struct kvm_lapic_state kvm_lapic_state
>   

On S390X:

cc1: warnings being treated as errors
In file included from /suse/agraf/work/kvm-s390/qemu.works/vl.c:156:
/suse/agraf/work/kvm-s390/qemu.works/kvm.h:104: error: ‘struct
kvm_lapic_state’ declared inside parameter list
/suse/agraf/work/kvm-s390/qemu.works/kvm.h:104: error: its scope is only
this definition or declaration, which is probably not what you want
/suse/agraf/work/kvm-s390/qemu.works/kvm.h:105: error: ‘struct
kvm_lapic_state’ declared inside parameter list


Alex

  parent reply	other threads:[~2009-12-01 16:44 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-16 17:11 [Qemu-devel] [PATCH v2 0/9] in-kernel irqchip Glauber Costa
2009-11-16 17:11 ` [Qemu-devel] [PATCH v2 1/9] introduce VMSTATE_U64 Glauber Costa
2009-11-16 17:12   ` [Qemu-devel] [PATCH v2 2/9] Provide ioapic-kvm Glauber Costa
2009-11-16 17:12     ` [Qemu-devel] [PATCH v2 3/9] provide apic_set_irq_delivered Glauber Costa
2009-11-16 17:12       ` [Qemu-devel] [PATCH v2 4/9] provide i8259-kvm Glauber Costa
2009-11-16 17:12         ` [Qemu-devel] [PATCH v2 5/9] Don't call apic functions directly from kvm code Glauber Costa
2009-11-16 17:12           ` [Qemu-devel] [PATCH v2 6/9] export kvm_put_mp_state Glauber Costa
2009-11-16 17:12             ` [Qemu-devel] [PATCH v2 7/9] provide apic-kvm Glauber Costa
2009-11-16 17:12               ` [Qemu-devel] [PATCH v2 8/9] Initialize in-kernel irqchip Glauber Costa
2009-11-16 17:12                 ` [Qemu-devel] [PATCH v2 9/9] Do GSI routing Glauber Costa
2009-12-01 16:44               ` Alexander Graf [this message]
2009-12-01 16:49         ` [Qemu-devel] [PATCH v2 4/9] provide i8259-kvm Alexander Graf
2009-12-01 17:15           ` Glauber Costa

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=4B1547F9.1070105@suse.de \
    --to=agraf@suse.de \
    --cc=aliguori@us.ibm.com \
    --cc=glommer@redhat.com \
    --cc=qemu-devel@nongnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.