|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 03/16] xen: sched: improve domain creation tracing
On 16/02/16 18:11, Dario Faggioli wrote:
> by doing the following two things:
>
> - move TRC_SCHED_DOM_{ADD,REM}, into the functions
> that do the actual scheduling-related domain
> initialization;
>
> - add two 'generic' DOM_{ADD,REM} events. They're
> made part of the TRC_DOM0 tracing class, as Dom0
> is, usually, from where domains are created and
> destroyed.
>
> Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx>
Reviewed-by: George Dunlap <george.dunlap@xxxxxxxxxx>
Since this changes domain.c, I guess this would need an ack from "The
Rest" -- probably either from Jan or Ian, since they're somewhat
familiar with this code...?
-George
> ---
> Cc: George Dunlap <george.dunlap@xxxxxxxxxxxxx>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> ---
> Changes from v1:
> * added generic domain creation and destruction events, as
> suggested during review.
> ---
> xen/common/domain.c | 5 ++++-
> xen/common/schedule.c | 4 ++--
> xen/include/public/trace.h | 6 ++++++
> 3 files changed, 12 insertions(+), 3 deletions(-)
>
> diff --git a/xen/common/domain.c b/xen/common/domain.c
> index 425767c..45273d4 100644
> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -270,6 +270,8 @@ struct domain *domain_create(domid_t domid, unsigned int
> domcr_flags,
>
> d->domain_id = domid;
>
> + TRACE_1D(TRC_DOM0_DOM_ADD, d->domain_id);
> +
> lock_profile_register_struct(LOCKPROF_TYPE_PERDOM, d, domid, "Domain");
>
> if ( (err = xsm_alloc_security_domain(d)) != 0 )
> @@ -864,10 +866,11 @@ void domain_destroy(struct domain *d)
> if ( atomic_cmpxchg(&d->refcnt, 0, DOMAIN_DESTROYED) != 0 )
> return;
>
> + TRACE_1D(TRC_DOM0_DOM_REM, d->domain_id);
> +
> cpupool_rm_domain(d);
>
> /* Delete from task list and task hashtable. */
> - TRACE_1D(TRC_SCHED_DOM_REM, d->domain_id);
> spin_lock(&domlist_update_lock);
> pd = &domain_list;
> while ( *pd != d )
> diff --git a/xen/common/schedule.c b/xen/common/schedule.c
> index c87922f..27695e3 100644
> --- a/xen/common/schedule.c
> +++ b/xen/common/schedule.c
> @@ -241,8 +241,6 @@ int sched_init_vcpu(struct vcpu *v, unsigned int
> processor)
> if ( v->sched_priv == NULL )
> return 1;
>
> - TRACE_2D(TRC_SCHED_DOM_ADD, v->domain->domain_id, v->vcpu_id);
> -
> /* Idle VCPUs are scheduled immediately, so don't put them in runqueue.
> */
> if ( is_idle_domain(d) )
> {
> @@ -369,12 +367,14 @@ void sched_destroy_vcpu(struct vcpu *v)
> int sched_init_domain(struct domain *d)
> {
> SCHED_STAT_CRANK(dom_init);
> + TRACE_1D(TRC_SCHED_DOM_ADD, d->domain_id);
> return SCHED_OP(DOM2OP(d), init_domain, d);
> }
>
> void sched_destroy_domain(struct domain *d)
> {
> SCHED_STAT_CRANK(dom_destroy);
> + TRACE_1D(TRC_SCHED_DOM_REM, d->domain_id);
> SCHED_OP(DOM2OP(d), destroy_domain, d);
> }
>
> diff --git a/xen/include/public/trace.h b/xen/include/public/trace.h
> index 274f8f6..5ef9c37 100644
> --- a/xen/include/public/trace.h
> +++ b/xen/include/public/trace.h
> @@ -85,6 +85,9 @@
> ((TRC_SCHED_##_c << TRC_SCHED_ID_SHIFT) & TRC_SCHED_ID_MASK) ) + \
> (_e & TRC_SCHED_EVT_MASK) )
>
> +/* Trace classes for DOM0 operations */
> +#define TRC_DOM0_DOMOPS 0x00041000 /* Domains manipulations */
> +
> /* Trace classes for Hardware */
> #define TRC_HW_PM 0x00801000 /* Power management traces */
> #define TRC_HW_IRQ 0x00802000 /* Traces relating to the handling
> of IRQs */
> @@ -113,6 +116,9 @@
> #define TRC_SCHED_SWITCH_INFNEXT (TRC_SCHED_VERBOSE + 15)
> #define TRC_SCHED_SHUTDOWN_CODE (TRC_SCHED_VERBOSE + 16)
>
> +#define TRC_DOM0_DOM_ADD (TRC_DOM0_DOMOPS + 1)
> +#define TRC_DOM0_DOM_REM (TRC_DOM0_DOMOPS + 2)
> +
> #define TRC_MEM_PAGE_GRANT_MAP (TRC_MEM + 1)
> #define TRC_MEM_PAGE_GRANT_UNMAP (TRC_MEM + 2)
> #define TRC_MEM_PAGE_GRANT_TRANSFER (TRC_MEM + 3)
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |