|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v5 04/11] common: add vmtrace_pt_size domain parameter
From: Michal Leszczynski <michal.leszczynski@xxxxxxx>
Add vmtrace_pt_size domain parameter in live domain and
vmtrace_pt_order parameter in xen_domctl_createdomain.
Signed-off-by: Michal Leszczynski <michal.leszczynski@xxxxxxx>
---
xen/common/domain.c | 12 ++++++++++++
xen/include/public/domctl.h | 1 +
xen/include/xen/sched.h | 4 ++++
3 files changed, 17 insertions(+)
diff --git a/xen/common/domain.c b/xen/common/domain.c
index a45cf023f7..25d3359c5b 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -338,6 +338,12 @@ static int sanitise_domain_config(struct
xen_domctl_createdomain *config)
return -EINVAL;
}
+ if ( config->vmtrace_pt_order && !vmtrace_supported )
+ {
+ dprintk(XENLOG_INFO, "Processor tracing is not supported\n");
+ return -EINVAL;
+ }
+
return arch_sanitise_domain_config(config);
}
@@ -443,6 +449,12 @@ struct domain *domain_create(domid_t domid,
d->nr_pirqs = min(d->nr_pirqs, nr_irqs);
radix_tree_init(&d->pirq_tree);
+
+ if ( config->vmtrace_pt_order )
+ {
+ uint32_t shift_val = config->vmtrace_pt_order + PAGE_SHIFT;
+ d->vmtrace_pt_size = (1ULL << shift_val);
+ }
}
if ( (err = arch_domain_create(d, config)) != 0 )
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index 59bdc28c89..7b8289d436 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -92,6 +92,7 @@ struct xen_domctl_createdomain {
uint32_t max_evtchn_port;
int32_t max_grant_frames;
int32_t max_maptrack_frames;
+ uint8_t vmtrace_pt_order;
struct xen_arch_domainconfig arch;
};
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index ac53519d7f..48f0a61bbd 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -457,6 +457,10 @@ struct domain
unsigned pbuf_idx;
spinlock_t pbuf_lock;
+ /* Used by vmtrace features */
+ spinlock_t vmtrace_lock;
+ uint64_t vmtrace_pt_size;
+
/* OProfile support. */
struct xenoprof *xenoprof;
--
2.17.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |