|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH] xen/console: pre-compute domain prefix for printouts
Every guest_printk() call computes "(d%d) " prefix on every call.
Move prefix generation to the domain creation time.
Signed-off-by: Denis Mukhin <dmukhin@xxxxxxxx>
---
xen/arch/x86/pv/shim.c | 2 ++
xen/common/domain.c | 2 ++
xen/drivers/char/console.c | 6 +-----
xen/include/xen/sched.h | 1 +
4 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/xen/arch/x86/pv/shim.c b/xen/arch/x86/pv/shim.c
index 81e4a0516d..b9c034ccff 100644
--- a/xen/arch/x86/pv/shim.c
+++ b/xen/arch/x86/pv/shim.c
@@ -329,6 +329,8 @@ int pv_shim_shutdown(uint8_t reason)
/* Update domain id. */
d->domain_id = get_initial_domain_id();
+ snprintf(d->domain_prefix, sizeof(d->domain_prefix),
+ "(d%d) ", d->domain_id);
/* Clean the iomem range. */
BUG_ON(iomem_deny_access(d, 0, ~0UL));
diff --git a/xen/common/domain.c b/xen/common/domain.c
index 0c4cc77111..49d4cb8221 100644
--- a/xen/common/domain.c
+++ b/xen/common/domain.c
@@ -681,6 +681,8 @@ struct domain *domain_create(domid_t domid,
/* Sort out our idea of is_system_domain(). */
d->domain_id = domid;
+ snprintf(d->domain_prefix, sizeof(d->domain_prefix),
+ "(d%d) ", d->domain_id);
d->unique_id = get_unique_id();
/* Holding CDF_* internal flags. */
diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
index 235d55bbff..2e23910dfa 100644
--- a/xen/drivers/char/console.c
+++ b/xen/drivers/char/console.c
@@ -965,12 +965,8 @@ void printk(const char *fmt, ...)
void guest_printk(const struct domain *d, const char *fmt, ...)
{
va_list args;
- char prefix[16];
-
- snprintf(prefix, sizeof(prefix), "(d%d) ", d->domain_id);
-
va_start(args, fmt);
- vprintk_common(prefix, fmt, args);
+ vprintk_common(d->domain_prefix, fmt, args);
va_end(args);
}
diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
index 037c83fda2..e90921dbd1 100644
--- a/xen/include/xen/sched.h
+++ b/xen/include/xen/sched.h
@@ -368,6 +368,7 @@ struct evtchn_port_ops;
struct domain
{
domid_t domain_id;
+ char domain_prefix[16]; /* '(dX) ' prefix for printouts */
unsigned int max_vcpus;
--
2.34.1
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |