xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [Xen-devel] [PATCH 0/9] x86: reduce include dependencies
@ 2020-03-09 12:04 Jan Beulich
  2020-03-09 12:06 ` [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h " Jan Beulich
                   ` (8 more replies)
  0 siblings, 9 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:04 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Wei Liu, Roger Pau Monné

In a number of cases I've noticed the x86 emulator, which is quite
slow to build especially with not very new gcc, to re-build when
having changed headers which I wouldn't have expected to be
included there in the first place. Hence I've gone through the
dependencies of that object file and tried to get rid of at least
some of the very odd dependencies there. (Some are being addressed
also be the separately sent mem-access and vm-event patches with a
similar subject.)

1: HVM: reduce domain.h include dependencies
2: HVM: reduce vcpu.h include dependencies
3: HVM: reduce vpt.h include dependencies
4: HVM: reduce vpic.h include dependencies
5: HVM: reduce vioapic.h include dependencies
6: HVM: reduce vlapic.h include dependencies
7: HVM: reduce io.h include dependencies
8: HVM: reduce hvm.h include dependencies
9: reduce mce.h include dependencies

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
@ 2020-03-09 12:06 ` Jan Beulich
  2020-03-09 13:33   ` Andrew Cooper
  2020-03-09 12:07 ` [Xen-devel] [PATCH 2/9] x86/HVM: reduce vcpu.h " Jan Beulich
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:06 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Paul Durrant, Wei Liu, Roger Pau Monné

Drop #include-s not needed by the header itself. Put the ones needed
into whichever other files actually need them.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/cpu/mcheck/vmce.c
+++ b/xen/arch/x86/cpu/mcheck/vmce.c
@@ -28,6 +28,7 @@
 #include <xen/mm.h>
 #include <asm/hvm/save.h>
 #include <asm/processor.h>
+#include <public/hvm/params.h>
 #include <public/sysctl.h>
 #include <asm/system.h>
 #include <asm/msr.h>
--- a/xen/arch/x86/hvm/dom0_build.c
+++ b/xen/arch/x86/hvm/dom0_build.c
@@ -38,6 +38,7 @@
 #include <public/arch-x86/hvm/start_info.h>
 #include <public/hvm/hvm_info_table.h>
 #include <public/hvm/hvm_vcpu.h>
+#include <public/hvm/params.h>
 
 /*
  * Have the TSS cover the ISA port range, which makes it
--- a/xen/arch/x86/hvm/hpet.c
+++ b/xen/arch/x86/hvm/hpet.c
@@ -26,6 +26,7 @@
 #include <xen/event.h>
 #include <xen/trace.h>
 #include <xen/nospec.h>
+#include <public/hvm/params.h>
 
 #define domain_vhpet(x) (&(x)->arch.hvm.pl_time->vhpet)
 #define vcpu_vhpet(x)   (domain_vhpet((x)->domain))
--- a/xen/arch/x86/hvm/ioreq.c
+++ b/xen/arch/x86/hvm/ioreq.c
@@ -34,6 +34,7 @@
 #include <asm/hvm/vmx/vmx.h>
 
 #include <public/hvm/ioreq.h>
+#include <public/hvm/params.h>
 
 static void set_ioreq_server(struct domain *d, unsigned int id,
                              struct hvm_ioreq_server *s)
--- a/xen/arch/x86/hvm/irq.c
+++ b/xen/arch/x86/hvm/irq.c
@@ -26,6 +26,7 @@
 #include <asm/hvm/domain.h>
 #include <asm/hvm/support.h>
 #include <asm/msi.h>
+#include <public/hvm/params.h>
 
 bool hvm_domain_use_pirq(const struct domain *d, const struct pirq *pirq)
 {
--- a/xen/arch/x86/hvm/rtc.c
+++ b/xen/arch/x86/hvm/rtc.c
@@ -28,6 +28,7 @@
 #include <asm/hvm/support.h>
 #include <asm/current.h>
 #include <xen/trace.h>
+#include <public/hvm/params.h>
 
 #define USEC_PER_SEC    1000000UL
 #define NS_PER_USEC     1000UL
--- a/xen/arch/x86/hvm/vpt.c
+++ b/xen/arch/x86/hvm/vpt.c
@@ -22,6 +22,7 @@
 #include <asm/event.h>
 #include <asm/apic.h>
 #include <asm/mc146818rtc.h>
+#include <public/hvm/params.h>
 
 #define mode_is(d, name) \
     ((d)->arch.hvm.params[HVM_PARAM_TIMER_MODE] == HVMPTM_##name)
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -28,6 +28,8 @@
 #include <asm/msr.h>
 #include <asm/setup.h>
 
+#include <public/hvm/params.h>
+
 DEFINE_PER_CPU(uint32_t, tsc_aux);
 
 struct msr_policy __read_mostly     raw_msr_policy,
--- a/xen/include/asm-x86/hvm/domain.h
+++ b/xen/include/asm-x86/hvm/domain.h
@@ -20,20 +20,14 @@
 #ifndef __ASM_X86_HVM_DOMAIN_H__
 #define __ASM_X86_HVM_DOMAIN_H__
 
-#include <xen/iommu.h>
-#include <asm/hvm/irq.h>
-#include <asm/hvm/vpt.h>
-#include <asm/hvm/vlapic.h>
-#include <asm/hvm/vioapic.h>
+#include <xen/list.h>
+#include <xen/mm.h>
+#include <xen/radix-tree.h>
+
 #include <asm/hvm/io.h>
-#include <asm/hvm/viridian.h>
 #include <asm/hvm/vmx/vmcs.h>
 #include <asm/hvm/svm/vmcb.h>
-#include <asm/mem_sharing.h>
-#include <public/grant_table.h>
-#include <public/hvm/params.h>
-#include <public/hvm/save.h>
-#include <public/hvm/hvm_op.h>
+
 #include <public/hvm/dm_op.h>
 
 struct hvm_ioreq_page {
--- a/xen/include/asm-x86/hvm/nestedhvm.h
+++ b/xen/include/asm-x86/hvm/nestedhvm.h
@@ -22,6 +22,7 @@
 #include <xen/types.h>         /* for uintNN_t */
 #include <xen/sched.h>         /* for struct vcpu, struct domain */
 #include <asm/hvm/vcpu.h>      /* for vcpu_nestedhvm */
+#include <public/hvm/params.h>
 
 enum nestedhvm_vmexits {
     NESTEDHVM_VMEXIT_ERROR = 0, /* inject VMEXIT w/ invalid VMCB */
--- a/xen/include/xsm/dummy.h
+++ b/xen/include/xsm/dummy.h
@@ -17,6 +17,7 @@
 
 #include <xen/sched.h>
 #include <xsm/xsm.h>
+#include <public/hvm/params.h>
 
 /* Cannot use BUILD_BUG_ON here because the expressions we check are not
  * considered constant at compile time. Instead, rely on constant propagation to


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 2/9] x86/HVM: reduce vcpu.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
  2020-03-09 12:06 ` [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h " Jan Beulich
@ 2020-03-09 12:07 ` Jan Beulich
  2020-03-09 12:07 ` [Xen-devel] [PATCH 3/9] x86/HVM: reduce vpt.h " Jan Beulich
                   ` (6 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:07 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Paul Durrant, Wei Liu, Roger Pau Monné

Drop #include-s not needed by the header itself. Put the ones needed
into whichever other files actually need them.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -7,6 +7,7 @@
 #include <asm/hvm/hvm.h>
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/svm/svm.h>
+#include <asm/hvm/viridian.h>
 #include <asm/hvm/vmx/vmcs.h>
 #include <asm/paging.h>
 #include <asm/processor.h>
--- a/xen/arch/x86/hvm/hvm.c
+++ b/xen/arch/x86/hvm/hvm.c
@@ -65,6 +65,7 @@
 #include <asm/hvm/nestedhvm.h>
 #include <asm/hvm/monitor.h>
 #include <asm/hvm/ioreq.h>
+#include <asm/hvm/viridian.h>
 #include <asm/hvm/vm_event.h>
 #include <asm/altp2m.h>
 #include <asm/mtrr.h>
--- a/xen/arch/x86/hvm/hypercall.c
+++ b/xen/arch/x86/hvm/hypercall.c
@@ -23,6 +23,7 @@
 #include <xen/nospec.h>
 
 #include <asm/hvm/support.h>
+#include <asm/hvm/viridian.h>
 
 static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
 {
--- a/xen/arch/x86/hvm/viridian/private.h
+++ b/xen/arch/x86/hvm/viridian/private.h
@@ -4,6 +4,7 @@
 #define X86_HVM_VIRIDIAN_PRIVATE_H
 
 #include <asm/hvm/save.h>
+#include <asm/hvm/viridian.h>
 
 int viridian_synic_wrmsr(struct vcpu *v, uint32_t idx, uint64_t val);
 int viridian_synic_rdmsr(const struct vcpu *v, uint32_t idx, uint64_t *val);
--- a/xen/arch/x86/msr.c
+++ b/xen/arch/x86/msr.c
@@ -25,6 +25,7 @@
 #include <xen/sched.h>
 
 #include <asm/debugreg.h>
+#include <asm/hvm/viridian.h>
 #include <asm/msr.h>
 #include <asm/setup.h>
 
--- a/xen/include/asm-x86/hvm/vcpu.h
+++ b/xen/include/asm-x86/hvm/vcpu.h
@@ -20,9 +20,7 @@
 #define __ASM_X86_HVM_VCPU_H__
 
 #include <xen/tasklet.h>
-#include <asm/hvm/io.h>
 #include <asm/hvm/vlapic.h>
-#include <asm/hvm/viridian.h>
 #include <asm/hvm/vmx/vmcs.h>
 #include <asm/hvm/vmx/vvmx.h>
 #include <asm/hvm/svm/vmcb.h>


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 3/9] x86/HVM: reduce vpt.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
  2020-03-09 12:06 ` [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h " Jan Beulich
  2020-03-09 12:07 ` [Xen-devel] [PATCH 2/9] x86/HVM: reduce vcpu.h " Jan Beulich
@ 2020-03-09 12:07 ` Jan Beulich
  2020-03-09 12:08 ` [Xen-devel] [PATCH 4/9] x86/HVM: reduce vpic.h " Jan Beulich
                   ` (5 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:07 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Wei Liu, Roger Pau Monné

Drop #include-s not needed by the header itself.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/asm-x86/hvm/vpt.h
+++ b/xen/include/asm-x86/hvm/vpt.h
@@ -19,16 +19,9 @@
 #ifndef __ASM_X86_HVM_VPT_H__
 #define __ASM_X86_HVM_VPT_H__
 
-#include <xen/init.h>
-#include <xen/lib.h>
-#include <xen/time.h>
-#include <xen/errno.h>
-#include <xen/time.h>
 #include <xen/timer.h>
 #include <xen/list.h>
-#include <asm/hvm/vpic.h>
-#include <asm/hvm/irq.h>
-#include <public/hvm/save.h>
+#include <asm/hvm/hvm.h>
 
 /*
  * Abstract layer of periodic time, one short time.
@@ -145,6 +138,7 @@ struct pl_time {    /* platform time */
 void pt_save_timer(struct vcpu *v);
 void pt_restore_timer(struct vcpu *v);
 int pt_update_irq(struct vcpu *v);
+struct hvm_intack;
 void pt_intr_post(struct vcpu *v, struct hvm_intack intack);
 void pt_migrate(struct vcpu *v);
 


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 4/9] x86/HVM: reduce vpic.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
                   ` (2 preceding siblings ...)
  2020-03-09 12:07 ` [Xen-devel] [PATCH 3/9] x86/HVM: reduce vpt.h " Jan Beulich
@ 2020-03-09 12:08 ` Jan Beulich
  2020-03-09 12:08 ` [Xen-devel] [PATCH 5/9] x86/HVM: reduce vioapic.h " Jan Beulich
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:08 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Wei Liu, Roger Pau Monné

Drop an #include not needed by the header itself.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/asm-x86/hvm/vpic.h
+++ b/xen/include/asm-x86/hvm/vpic.h
@@ -27,7 +27,8 @@
 #ifndef __ASM_X86_HVM_VPIC_H__
 #define __ASM_X86_HVM_VPIC_H__
 
-#include <public/hvm/save.h>
+struct domain;
+struct vcpu;
 
 void vpic_irq_positive_edge(struct domain *d, int irq);
 void vpic_irq_negative_edge(struct domain *d, int irq);


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 5/9] x86/HVM: reduce vioapic.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
                   ` (3 preceding siblings ...)
  2020-03-09 12:08 ` [Xen-devel] [PATCH 4/9] x86/HVM: reduce vpic.h " Jan Beulich
@ 2020-03-09 12:08 ` Jan Beulich
  2020-03-09 12:09 ` [Xen-devel] [PATCH 6/9] x86/HVM: reduce vlapic.h " Jan Beulich
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:08 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Wei Liu, Roger Pau Monné

Drop an #include not needed by the header itself. While verifyin the
header (now) builds standalone, I noticed an omission in a public header
which gets taken care of here as well.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/asm-x86/hvm/vioapic.h
+++ b/xen/include/asm-x86/hvm/vioapic.h
@@ -25,7 +25,6 @@
 #define __ASM_X86_HVM_VIOAPIC_H__
 
 #include <xen/types.h>
-#include <xen/smp.h>
 #include <public/hvm/save.h>
 
 #define VIOAPIC_VERSION_ID 0x11 /* IOAPIC version */
--- a/xen/include/public/arch-x86/hvm/save.h
+++ b/xen/include/public/arch-x86/hvm/save.h
@@ -26,6 +26,8 @@
 #ifndef __XEN_PUBLIC_HVM_SAVE_X86_H__
 #define __XEN_PUBLIC_HVM_SAVE_X86_H__
 
+#include "../../xen.h"
+
 /*
  * Save/restore header: general info about the save file.
  */


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 6/9] x86/HVM: reduce vlapic.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
                   ` (4 preceding siblings ...)
  2020-03-09 12:08 ` [Xen-devel] [PATCH 5/9] x86/HVM: reduce vioapic.h " Jan Beulich
@ 2020-03-09 12:09 ` Jan Beulich
  2020-03-09 12:10 ` [Xen-devel] [PATCH 7/9] x86/HVM: reduce io.h " Jan Beulich
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:09 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Wei Liu, Roger Pau Monné

Drop #include-s not needed by the header itself.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/asm-x86/hvm/vlapic.h
+++ b/xen/include/asm-x86/hvm/vlapic.h
@@ -21,8 +21,6 @@
 #define __ASM_X86_HVM_VLAPIC_H__
 
 #include <xen/tasklet.h>
-#include <asm/msr.h>
-#include <public/hvm/ioreq.h>
 #include <asm/hvm/vpt.h>
 
 #define vcpu_vlapic(x)   (&(x)->arch.hvm.vlapic)


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 7/9] x86/HVM: reduce io.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
                   ` (5 preceding siblings ...)
  2020-03-09 12:09 ` [Xen-devel] [PATCH 6/9] x86/HVM: reduce vlapic.h " Jan Beulich
@ 2020-03-09 12:10 ` Jan Beulich
  2020-03-09 12:11 ` [Xen-devel] [PATCH 8/9] x86/HVM: reduce hvm.h " Jan Beulich
  2020-03-09 12:11 ` [Xen-devel] [PATCH 9/9] x86: reduce mce.h " Jan Beulich
  8 siblings, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:10 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Paul Durrant, Wei Liu, Roger Pau Monné

Drop #include-s not needed by the header itself as well as one include
of the header which isn't needed. Put the one needed into the file
actually requiring it.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/asm-x86/hvm/io.h
+++ b/xen/include/asm-x86/hvm/io.h
@@ -19,12 +19,8 @@
 #ifndef __ASM_X86_HVM_IO_H__
 #define __ASM_X86_HVM_IO_H__
 
-#include <xen/mm.h>
 #include <xen/pci.h>
-#include <asm/hvm/vpic.h>
-#include <asm/hvm/vioapic.h>
 #include <public/hvm/ioreq.h>
-#include <public/event_channel.h>
 
 #define NR_IO_HANDLERS 32
 
--- a/xen/include/asm-x86/hvm/vcpu.h
+++ b/xen/include/asm-x86/hvm/vcpu.h
@@ -26,6 +26,7 @@
 #include <asm/hvm/svm/vmcb.h>
 #include <asm/hvm/svm/nestedsvm.h>
 #include <asm/mtrr.h>
+#include <public/hvm/ioreq.h>
 
 enum hvm_io_completion {
     HVMIO_no_completion,
--- a/xen/include/asm-x86/hvm/vmx/vmcs.h
+++ b/xen/include/asm-x86/hvm/vmx/vmcs.h
@@ -18,8 +18,6 @@
 #ifndef __ASM_X86_HVM_VMX_VMCS_H__
 #define __ASM_X86_HVM_VMX_VMCS_H__
 
-#include <asm/hvm/io.h>
-
 extern void vmcs_dump_vcpu(struct vcpu *v);
 extern void setup_vmcs_dump(void);
 extern int  vmx_cpu_up_prepare(unsigned int cpu);


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 8/9] x86/HVM: reduce hvm.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
                   ` (6 preceding siblings ...)
  2020-03-09 12:10 ` [Xen-devel] [PATCH 7/9] x86/HVM: reduce io.h " Jan Beulich
@ 2020-03-09 12:11 ` Jan Beulich
  2020-03-09 12:11 ` [Xen-devel] [PATCH 9/9] x86: reduce mce.h " Jan Beulich
  8 siblings, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:11 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Paul Durrant, Wei Liu, Roger Pau Monné

Drop #include-s not needed by the header itself, and add smaller scope
ones instead. Put the ones needed into whichever other files actually
need them.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/asm-x86/hvm/emulate.h
+++ b/xen/include/asm-x86/hvm/emulate.h
@@ -13,6 +13,7 @@
 #define __ASM_X86_HVM_EMULATE_H__
 
 #include <xen/err.h>
+#include <xen/mm.h>
 #include <asm/hvm/hvm.h>
 #include <asm/x86_emulate.h>
 
--- a/xen/include/asm-x86/hvm/hvm.h
+++ b/xen/include/asm-x86/hvm/hvm.h
@@ -20,12 +20,11 @@
 #ifndef __ASM_X86_HVM_HVM_H__
 #define __ASM_X86_HVM_HVM_H__
 
+#include <asm/alternative.h>
+#include <asm/asm_defns.h>
 #include <asm/current.h>
 #include <asm/x86_emulate.h>
 #include <asm/hvm/asid.h>
-#include <public/domctl.h>
-#include <public/hvm/save.h>
-#include <xen/mm.h>
 
 #ifdef CONFIG_HVM_FEP
 /* Permit use of the Forced Emulation Prefix in HVM guests */
@@ -326,6 +325,7 @@ int hvm_debug_op(struct vcpu *v, int32_t
 void hvm_toggle_singlestep(struct vcpu *v);
 void hvm_fast_singlestep(struct vcpu *v, uint16_t p2midx);
 
+struct npfec;
 int hvm_hap_nested_page_fault(paddr_t gpa, unsigned long gla,
                               struct npfec npfec);
 
--- a/xen/include/asm-x86/hvm/vpt.h
+++ b/xen/include/asm-x86/hvm/vpt.h
@@ -21,6 +21,7 @@
 
 #include <xen/timer.h>
 #include <xen/list.h>
+#include <xen/rwlock.h>
 #include <asm/hvm/hvm.h>
 
 /*


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Xen-devel] [PATCH 9/9] x86: reduce mce.h include dependencies
  2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
                   ` (7 preceding siblings ...)
  2020-03-09 12:11 ` [Xen-devel] [PATCH 8/9] x86/HVM: reduce hvm.h " Jan Beulich
@ 2020-03-09 12:11 ` Jan Beulich
  8 siblings, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 12:11 UTC (permalink / raw)
  To: xen-devel; +Cc: Andrew Cooper, Wei Liu, Roger Pau Monné

Drop the public header #include as not needed by the header itself. Add
one that was missing, and move all inside the inclusion guard.

Signed-off-by: Jan Beulich <jbeulich@suse.com>

--- a/xen/include/asm-x86/mce.h
+++ b/xen/include/asm-x86/mce.h
@@ -1,8 +1,9 @@
-#include <xen/types.h>
-#include <public/arch-x86/xen-mca.h>
 #ifndef _XEN_X86_MCE_H
 #define _XEN_X86_MCE_H
 
+#include <xen/spinlock.h>
+#include <xen/types.h>
+
 /*
  * Emulate 2 banks for guest
  * Bank0: reserved for 'bank0 quirk' occur at some very old processors:
@@ -32,6 +33,9 @@ struct vmce {
     struct vmce_bank bank[GUEST_MC_BANK_NUM];
 };
 
+struct domain;
+struct vcpu;
+
 /* Guest vMCE MSRs virtualization */
 extern void vmce_init_vcpu(struct vcpu *);
 extern int vmce_restore_vcpu(struct vcpu *, const struct hvm_vmce_vcpu *);


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h include dependencies
  2020-03-09 12:06 ` [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h " Jan Beulich
@ 2020-03-09 13:33   ` Andrew Cooper
  2020-03-09 13:52     ` Jan Beulich
  2020-03-09 14:22     ` Jan Beulich
  0 siblings, 2 replies; 13+ messages in thread
From: Andrew Cooper @ 2020-03-09 13:33 UTC (permalink / raw)
  To: Jan Beulich, xen-devel; +Cc: Paul Durrant, Wei Liu, Roger Pau Monné

On 09/03/2020 12:06, Jan Beulich wrote:
> Drop #include-s not needed by the header itself. Put the ones needed
> into whichever other files actually need them.
>
> Signed-off-by: Jan Beulich <jbeulich@suse.com>

Having attempted to compile this myself, you're at a minimum missing
Flask, viridian, general HVM (because I can't spot any other way dm.c
wouldn't be compiled), xen guest and shim.

The vm_event failures I presume is due to a dependency on your singleton
patches.  OTOH,

> --- a/xen/arch/x86/msr.c
> +++ b/xen/arch/x86/msr.c
> @@ -28,6 +28,8 @@
>  #include <asm/msr.h>
>  #include <asm/setup.h>
>  
> +#include <public/hvm/params.h>

What failed to compile here?  I can't spot anything in msr.c which uses
the params.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h include dependencies
  2020-03-09 13:33   ` Andrew Cooper
@ 2020-03-09 13:52     ` Jan Beulich
  2020-03-09 14:22     ` Jan Beulich
  1 sibling, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 13:52 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: xen-devel, Paul Durrant, Wei Liu, Roger Pau Monné

On 09.03.2020 14:33, Andrew Cooper wrote:
> On 09/03/2020 12:06, Jan Beulich wrote:
>> Drop #include-s not needed by the header itself. Put the ones needed
>> into whichever other files actually need them.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Having attempted to compile this myself, you're at a minimum missing
> Flask, viridian, general HVM (because I can't spot any other way dm.c
> wouldn't be compiled), xen guest and shim.

I admit I forgot to try an XSM/Flask build, but I'm pretty puzzled by
the other items you list. In fact before submitting I tried the series
on a plain staging tree to exclude there being dependencies on other
patches I have in my try. (I now realize I also meant to check the
clang build before sending.)

> The vm_event failures I presume is due to a dependency on your singleton
> patches.

As per above, things do build fine for me without these. In fact the
order the patches got created was such that the mem-access and vm-event
ones got added last.

>  OTOH,
> 
>> --- a/xen/arch/x86/msr.c
>> +++ b/xen/arch/x86/msr.c
>> @@ -28,6 +28,8 @@
>>  #include <asm/msr.h>
>>  #include <asm/setup.h>
>>  
>> +#include <public/hvm/params.h>
> 
> What failed to compile here?  I can't spot anything in msr.c which uses
> the params.

#define viridian_feature_mask(d) \
    (has_hvm_params(d) ? (d)->arch.hvm.params[HVM_PARAM_VIRIDIAN] : 0)

#define is_viridian_domain(d) \
    (is_hvm_domain(d) && (viridian_feature_mask(d) & HVMPV_base_freq))

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h include dependencies
  2020-03-09 13:33   ` Andrew Cooper
  2020-03-09 13:52     ` Jan Beulich
@ 2020-03-09 14:22     ` Jan Beulich
  1 sibling, 0 replies; 13+ messages in thread
From: Jan Beulich @ 2020-03-09 14:22 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: xen-devel, Paul Durrant, Wei Liu, Roger Pau Monné

On 09.03.2020 14:33, Andrew Cooper wrote:
> On 09/03/2020 12:06, Jan Beulich wrote:
>> Drop #include-s not needed by the header itself. Put the ones needed
>> into whichever other files actually need them.
>>
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
> 
> Having attempted to compile this myself, you're at a minimum missing
> Flask, viridian, general HVM (because I can't spot any other way dm.c
> wouldn't be compiled), xen guest and shim.

So other than I first understood (in particular because you
specifically mention dm.c and it potentially not getting built in
whatever [strange] config you may have suspect I did use) this
looks to be fallout from all the same (XSM-enabled) build, as I
can see that too. The issues, afaics for now, all stem from the
fact that dummy.h include public/hvm/params.h, but with XSM
enabled there's no other place this inclusion would now come from.
Pretty fragile, but fixable.

Jan

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2020-03-09 14:23 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-09 12:04 [Xen-devel] [PATCH 0/9] x86: reduce include dependencies Jan Beulich
2020-03-09 12:06 ` [Xen-devel] [PATCH 1/9] x86/HVM: reduce domain.h " Jan Beulich
2020-03-09 13:33   ` Andrew Cooper
2020-03-09 13:52     ` Jan Beulich
2020-03-09 14:22     ` Jan Beulich
2020-03-09 12:07 ` [Xen-devel] [PATCH 2/9] x86/HVM: reduce vcpu.h " Jan Beulich
2020-03-09 12:07 ` [Xen-devel] [PATCH 3/9] x86/HVM: reduce vpt.h " Jan Beulich
2020-03-09 12:08 ` [Xen-devel] [PATCH 4/9] x86/HVM: reduce vpic.h " Jan Beulich
2020-03-09 12:08 ` [Xen-devel] [PATCH 5/9] x86/HVM: reduce vioapic.h " Jan Beulich
2020-03-09 12:09 ` [Xen-devel] [PATCH 6/9] x86/HVM: reduce vlapic.h " Jan Beulich
2020-03-09 12:10 ` [Xen-devel] [PATCH 7/9] x86/HVM: reduce io.h " Jan Beulich
2020-03-09 12:11 ` [Xen-devel] [PATCH 8/9] x86/HVM: reduce hvm.h " Jan Beulich
2020-03-09 12:11 ` [Xen-devel] [PATCH 9/9] x86: reduce mce.h " Jan Beulich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).