|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 9/9] x86/shim: pass through vcpu runstate to L0 Xen
So that we can have accurate stolen time accounting. Idea taken from
Vixen work from Amazon.
Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
---
Cc: Roger Pau Monné <roger.pau@xxxxxxxxxx>
Cc: Anthony Liguori <anthony@xxxxxxxxxxxxx>
Cc: Jan Beulich <jbeulich@xxxxxxxx>
Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
xen/common/domain.c | 10 ++++++++++
xen/include/asm-x86/guest/hypercall.h | 7 +++++++
2 files changed, 17 insertions(+)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 558318e852..189ffac9b1 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -45,6 +45,7 @@
#ifdef CONFIG_X86
#include <asm/guest.h>
+#include <asm/guest/hypercall.h>
#endif
/* Linux config option: propageted to domain0 */
@@ -1425,6 +1426,15 @@ long do_vcpu_op(int cmd, unsigned int vcpuid,
XEN_GUEST_HANDLE_PARAM(void) arg)
if ( !guest_handle_okay(area.addr.h, 1) )
break;
+#if CONFIG_X86
+ if ( pv_shim )
+ {
+ rc = xen_hypercall_vcpu_op(VCPUOP_register_runstate_memory_area,
+ vcpuid, &area);
+ break;
+ }
+#endif
+
rc = 0;
runstate_guest(v) = area.addr.h;
diff --git a/xen/include/asm-x86/guest/hypercall.h
b/xen/include/asm-x86/guest/hypercall.h
index e9e626b474..07b9302263 100644
--- a/xen/include/asm-x86/guest/hypercall.h
+++ b/xen/include/asm-x86/guest/hypercall.h
@@ -192,6 +192,13 @@ static inline long xen_hypercall_shutdown(unsigned int
reason)
return 0;
}
+static inline int xen_hypercall_vcpu_op(unsigned int cmd, unsigned int vcpu,
+ void *arg)
+{
+ ASSERT_UNREACHABLE();
+ return 0;
+}
+
#endif /* CONFIG_XEN_GUEST */
#endif /* __X86_XEN_HYPERCALL_H__ */
--
2.11.0
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |