[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 03/19] cpu: make kvm-stub.o a part of CPU librar
From: |
Igor Mammedov |
Subject: |
Re: [Qemu-devel] [PATCH 03/19] cpu: make kvm-stub.o a part of CPU library |
Date: |
Fri, 12 Apr 2013 13:17:32 +0200 |
On Thu, 11 Apr 2013 14:45:42 -0300
Eduardo Habkost <address@hidden> wrote:
> On Thu, Apr 11, 2013 at 04:51:42PM +0200, Igor Mammedov wrote:
> > Signed-off-by: Igor Mammedov <address@hidden>
> > ---
> > Makefile.target | 13 +++++++------
> > include/hw/pci/msi.h | 2 ++
> > include/sysemu/kvm.h | 4 ++--
> > kvm-stub.c | 2 ++
> > 4 files changed, 13 insertions(+), 8 deletions(-)
> >
> > diff --git a/Makefile.target b/Makefile.target
> > index 2bd6d14..18f348c 100644
> > --- a/Makefile.target
> > +++ b/Makefile.target
> > @@ -64,6 +64,12 @@ all: $(PROGS) stap
> > # Dummy command so that make thinks it has done something
> > @true
> >
> > +CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y)
> > +CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)
> > +CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y)
> > +CONFIG_NO_GET_MEMORY_MAPPING = $(if $(subst
> > n,,$(CONFIG_HAVE_GET_MEMORY_MAPPING)),n,y)
> > +CONFIG_NO_CORE_DUMP = $(if $(subst n,,$(CONFIG_HAVE_CORE_DUMP)),n,y)
> > +
> > #########################################################
> > # cpu emulator library
> > obj-y = exec.o translate-all.o cpu-exec.o
> > @@ -74,6 +80,7 @@ obj-y += fpu/softfloat.o
> > obj-y += target-$(TARGET_BASE_ARCH)/
> > obj-y += disas.o
> > obj-$(CONFIG_GDBSTUB_XML) += gdbstub-xml.o
> > +obj-$(CONFIG_NO_KVM) += kvm-stub.o
>
> The kvm-stub.o line at the "System emulator target" section is redundant
> now, isn't it? Any specific reason you didn't remove it?
Nope, I just forgot it. Thanks, I'll fix it.
>
> >
> > #########################################################
> > # Linux user emulator target
> > @@ -102,12 +109,6 @@ endif #CONFIG_BSD_USER
> > #########################################################
> > # System emulator target
> > ifdef CONFIG_SOFTMMU
> > -CONFIG_NO_PCI = $(if $(subst n,,$(CONFIG_PCI)),n,y)
> > -CONFIG_NO_KVM = $(if $(subst n,,$(CONFIG_KVM)),n,y)
> > -CONFIG_NO_XEN = $(if $(subst n,,$(CONFIG_XEN)),n,y)
> > -CONFIG_NO_GET_MEMORY_MAPPING = $(if $(subst
> > n,,$(CONFIG_HAVE_GET_MEMORY_MAPPING)),n,y)
> > -CONFIG_NO_CORE_DUMP = $(if $(subst n,,$(CONFIG_HAVE_CORE_DUMP)),n,y)
> > -
> > obj-y += arch_init.o cpus.o monitor.o gdbstub.o balloon.o ioport.o
> > obj-y += qtest.o
> > obj-y += hw/
> > diff --git a/include/hw/pci/msi.h b/include/hw/pci/msi.h
> > index 81a3848..d4d0450 100644
> > --- a/include/hw/pci/msi.h
> > +++ b/include/hw/pci/msi.h
> > @@ -21,6 +21,7 @@
> > #ifndef QEMU_MSI_H
> > #define QEMU_MSI_H
> >
> > +#ifndef CONFIG_USER_ONLY
>
> I would simply #ifdef the "#include pci/msi.h" line on kvm-stub.c
> instead. But I guess it doesn't hurt to have the #ifdef here.
It's more robust to not ifdef at source rather then at places where it's used.
>
> > #include "qemu-common.h"
> > #include "hw/pci/pci.h"
> >
> > @@ -47,4 +48,5 @@ static inline bool msi_present(const PCIDevice *dev)
> > return dev->cap_present & QEMU_PCI_CAP_MSI;
> > }
> >
> > +#endif
> > #endif /* QEMU_MSI_H */
> > diff --git a/include/sysemu/kvm.h b/include/sysemu/kvm.h
> > index 495e6f8..93cef28 100644
> > --- a/include/sysemu/kvm.h
> > +++ b/include/sysemu/kvm.h
> > @@ -144,10 +144,10 @@ int kvm_cpu_exec(CPUArchState *env);
> > #if !defined(CONFIG_USER_ONLY)
> > void *kvm_vmalloc(ram_addr_t size);
> > void *kvm_arch_vmalloc(ram_addr_t size);
> > -void kvm_setup_guest_memory(void *start, size_t size);
> > +#endif
> >
> > +void kvm_setup_guest_memory(void *start, size_t size);
> > void kvm_flush_coalesced_mmio_buffer(void);
> > -#endif
> >
> > int kvm_insert_breakpoint(CPUArchState *current_env, target_ulong addr,
> > target_ulong len, int type);
> > diff --git a/kvm-stub.c b/kvm-stub.c
> > index 82875dd..b34064a 100644
> > --- a/kvm-stub.c
> > +++ b/kvm-stub.c
> > @@ -122,6 +122,7 @@ int kvm_on_sigbus(int code, void *addr)
> > return 1;
> > }
> >
> > +#ifndef CONFIG_USER_ONLY
> > int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg)
> > {
> > return -ENOSYS;
> > @@ -145,3 +146,4 @@ int kvm_irqchip_remove_irqfd_notifier(KVMState *s,
> > EventNotifier *n, int virq)
> > {
> > return -ENOSYS;
> > }
> > +#endif
>
> What about making MSIMessage definition available on CONFIG_USER_ONLY,
> so we don't even need to #ifdef this part?
it might work, but it causes #includes split which I don't like much.
Anyway here is patch on top of this one. If it looks more acceptable to you
this way, I'll merge it.
---
diff --git a/include/hw/pci/msi.h b/include/hw/pci/msi.h
index d4d0450..c159a15 100644
--- a/include/hw/pci/msi.h
+++ b/include/hw/pci/msi.h
@@ -21,15 +21,15 @@
#ifndef QEMU_MSI_H
#define QEMU_MSI_H
-#ifndef CONFIG_USER_ONLY
#include "qemu-common.h"
-#include "hw/pci/pci.h"
struct MSIMessage {
uint64_t address;
uint32_t data;
};
+#ifndef CONFIG_USER_ONLY
+#include "hw/pci/pci.h"
extern bool msi_supported;
void msi_set_message(PCIDevice *dev, MSIMessage msg);
diff --git a/kvm-stub.c b/kvm-stub.c
index 8cb81c4..b5d4446 100644
--- a/kvm-stub.c
+++ b/kvm-stub.c
@@ -123,7 +123,6 @@ int kvm_on_sigbus(int code, void *addr)
return 1;
}
-#ifndef CONFIG_USER_ONLY
int kvm_irqchip_add_msi_route(KVMState *s, MSIMessage msg)
{
return -ENOSYS;
@@ -147,4 +146,3 @@ int kvm_irqchip_remove_irqfd_notifier(KVMState *s,
EventNotifier *n, int virq)
{
return -ENOSYS;
}
-#endif
>
> --
> Eduardo
--
Regards,
Igor
[Qemu-devel] [PATCH 06/19] introduce CPU hot-plug notifier, Igor Mammedov, 2013/04/11
[Qemu-devel] [PATCH 07/19] rtc: update rtc_cmos on CPU hot-plug, Igor Mammedov, 2013/04/11