[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xentrace: new trace event to track lost trace records



I like this idea.  Thanks for all the work you're doing on the trace buffer.

> diff -r 67f658b84025 -r 81e7d6e0f910 xen/common/trace.c
> --- a/xen/common/trace.c    Thu Jul  6 18:08:37 2006
> +++ b/xen/common/trace.c    Thu Jul  6 23:29:26 2006
> @@ -234,7 +234,8 @@
>      struct t_buf *buf;
>      struct t_rec *rec;
>      unsigned long flags;
> -
> +    static long lost_records = 0;
> +

Shouldn't this be a per-CPU counter?  Otherwise there are going to be issues 
with multiple CPUs accessing it, and with not knowing which CPU lost the 
data.

Although I guess we're very unlikely to ever overflow this, perhaps it's also 
worth considering making it a saturating counter so that userland knows the 
count may not be accurate?  Just a random thought...

> +    if (lost_records) {
> +        rec = &t_recs[smp_processor_id()][buf->prod % nr_recs];

You could use &this_cpu[t_recs] here - I think the rest of the code is now 
converted to use this format.

Cheers,
Mark

> +        rec->cycles  = (u64)get_cycles();
> +        rec->event   = TRC_LOST_RECORDS;
> +        rec->data[0] = lost_records;
> +        rec->data[1] = 0;
> +        rec->data[2] = 0;
> +        rec->data[3] = 0;
> +        rec->data[4] = 0;
> +
> +        wmb();
> +        buf->prod++;
> +        lost_records = 0;
>      }
>
>      rec = &t_recs[smp_processor_id()][buf->prod % nr_recs];
> diff -r 67f658b84025 -r 81e7d6e0f910 xen/include/public/trace.h
> --- a/xen/include/public/trace.h    Thu Jul  6 18:08:37 2006
> +++ b/xen/include/public/trace.h    Thu Jul  6 23:29:26 2006
> @@ -26,6 +26,7 @@
>  #define TRC_VMXIO    0x00088000   /* VMX io emulation trace  */
>
>  /* Trace events per class */
> +#define TRC_LOST_RECORDS        (TRC_GEN + 1)
>
>  #define TRC_SCHED_DOM_ADD       (TRC_SCHED +  1)
>  #define TRC_SCHED_DOM_REM       (TRC_SCHED +  2)

-- 
Dave: Just a question. What use is a unicyle with no seat?  And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.