[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 08/15] xen: trace RCU behavior
>>> On 01.06.17 at 19:34, <dario.faggioli@xxxxxxxxxx> wrote: > --- a/xen/common/rcupdate.c > +++ b/xen/common/rcupdate.c > @@ -92,6 +92,57 @@ static int qhimark = 10000; > static int qlowmark = 100; > static int rsinterval = 1000; > > +#ifdef CONFIG_TRACE_RCU > +static inline void trace_call_rcu(void *func) > +{ > + uint64_t addr = (uint64_t)func; I've probably overlooked something similar in patch 6 - why uint64_t rather than unsigned long? Does this even build without warning for ARM32? > + if ( likely(!tb_init_done) ) > + return; > + > + __trace_var(TRC_XEN_RCU_CALL_RCU, 0, sizeof(addr), &addr); > +} > +static inline void trace_start_batch(const cpumask_t *m) Blank lines between functions please. > +{ > + uint32_t mask[6]; > + > + if ( likely(!tb_init_done) ) > + return; > + > + memset(mask, 0, sizeof(mask)); Perhaps better use {} as initializer? > + memcpy(mask, m, min(sizeof(mask), sizeof(cpumask_t))); sizeof(*m) > +#define trace_force_qstate() TRACE_0D(TRC_XEN_RCU_FORCE_QSTATE) > +#define trace_cpu_quiet() TRACE_0D(TRC_XEN_RCU_CPU_QUIET) > +#define trace_check_qstate(p) TRACE_1D(TRC_XEN_RCU_CHECK_QSTATE, p) > +#define trace_do_callbacks() TRACE_0D(TRC_XEN_RCU_DO_CALLBKS) > +#define trace_pending(p) TRACE_1D(TRC_XEN_RCU_PENDING, p) > +#else /* !TRACE_RCU */ > +#define trace_call_rcu(f) do {} while ( 0 ) > +#define trace_start_batch(m) do {} while ( 0 ) > +#define trace_do_batch(f, q) do {} while ( 0 ) > +#define trace_force_qstate() do {} while ( 0 ) > +#define trace_cpu_quiet() do {} while ( 0 ) > +#define trace_check_qstate(p) do {} while ( 0 ) > +#define trace_do_callbacks() do {} while ( 0 ) > +#define trace_pending(p) do {} while ( 0 ) Here and elsewhere please make sure you evaluate macro arguments consistently (i.e. exactly once regardless of tracing being enabled or disabled). Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |