From: Rob Gardner <rob.gardner@hp.com>
To: NAHieu <nahieu@gmail.com>
Cc: xen-tools@lists.xensource.com, ryanh@us.ibm.com,
xen-devel@lists.xensource.com,
rickey berkeley <rickey.berkeley@gmail.com>,
xen-users@lists.xensource.com
Subject: Re: Hi,something about the xentrace tool
Date: Wed, 14 Jun 2006 10:06:40 -0600 [thread overview]
Message-ID: <44903410.8010907@hp.com> (raw)
In-Reply-To: <5d7aca950606132047g7a58c775l7af245cc0f27da5c@mail.gmail.com>
NAHieu wrote:
> On 6/14/06, Rob Gardner <rob.gardner@hp.com> wrote:
>> rickey berkeley wrote:
>> > Based on trace source code(xen/common/trace.c),dom0 tracing the event
>> > which are enabled.
>> >
>> > xen initialize tracing buffer for each cpu,trace buffer size (in
>> > pages) in kenel space is defined by opt_tbuf_size.
>> > The tracing buf use loop structure.
>> >
>> > I guess when the tracing data increase rapidly ,and xentrace tool in
>> > user space does not take them immediately.
>> > Some tracing data will lost.Maybe relayfs or something else can solve
>> > this problem.
>> >
>>
>> I added a basic flow control mechanism to the trace buffer system a few
>> months ago. You can see an example of how to use it in tools/xenmon. The
>> way it works is that as trace records are generated, a software
>> interrupt is generated when the trace buffer gets filled to a certain
>> point. The user space tools can use select() on an event channel to find
>> out about these interrupts. See tools/xenmon/xenbaked.c for exact
>> programming details. This code has not been copied into xentrace yet;
>> Feel free to do so yourself if you think it's necessary.
>
> Would you explain a little bit more on how you handle the overflow? If
> the userspace detects that event, what it does then?
If overflow occurs, it is not handled. The mechanism I implemented was
just designed to drastically reduce the probability of overflow.
When xenbaked wakes up from its select() call (indicating the trace
buffer high water mark has been reached) it simply starts reading trace
records out of the trace buffers.
>
> Usually if there is no more space available in kernel buffer, what
> will you do? Drop some data, and hope that the userspace will come up
> to free some for more space in the future? Or if you don't drop them,
> just block there and wait for the userspace to come to free some?
Currently, the trace buffer "high water" mark is set to 50%. That is,
when the hypervisor trace buffer becomes 1/2 full, it sends a soft
interrupt to wake up xenbaked from its blocking select(). If nobody
wakes up to read trace records from the trace buffer, I take that to
mean that nobody cares about the trace records. When somebody does care,
they will read those records in a timely manner. Obviously, the
hypervisor cannot "block" if there is no room in the trace buffers; In
this case, new trace records simply overwrite old ones, and the old ones
are lost.
If you encounter a situation where trace records are being generated too
fast, and fill up the trace buffer too quickly, then the simple next
step is to increase the size of the trace buffers. So far, use of the
trace records has not been linked to anything so critical that it's
necessary to take extraordinary measures to avoid loss of data.
Rob
next prev parent reply other threads:[~2006-06-14 16:06 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-11 13:17 Hi,something about the xentrace tool rickey berkeley
2006-06-12 15:17 ` George Dunlap
2006-06-12 15:30 ` Ryan Harper
2006-06-13 17:11 ` rickey berkeley
2006-06-13 17:25 ` Rob Gardner
2006-06-14 3:47 ` NAHieu
2006-06-14 16:06 ` Rob Gardner [this message]
-- strict thread matches above, loose matches on Subject: below --
2006-06-15 7:06 Ian Pratt
2006-06-15 8:58 ` [Xen-devel] " rickey berkeley
2006-06-15 17:03 ` Rob Gardner
2006-06-15 18:20 ` George Dunlap
2006-06-15 18:28 ` George Dunlap
2006-06-15 18:53 ` Rob Gardner
2006-06-19 1:06 ` George Dunlap
2006-06-19 5:00 ` Rob Gardner
2006-06-19 14:02 ` George Dunlap
2006-06-19 17:19 ` Rob Gardner
2006-06-21 19:02 ` George Dunlap
2006-06-15 16:41 ` Rob Gardner
2006-06-16 14:11 Ian Pratt
2006-06-16 16:56 ` Rob Gardner
2006-06-19 7:14 Ian Pratt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=44903410.8010907@hp.com \
--to=rob.gardner@hp.com \
--cc=nahieu@gmail.com \
--cc=rickey.berkeley@gmail.com \
--cc=ryanh@us.ibm.com \
--cc=xen-devel@lists.xensource.com \
--cc=xen-tools@lists.xensource.com \
--cc=xen-users@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.