|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] Hi,something about the xentrace tool
Hi Rob,
On 6/14/06, Rob Gardner <rob.gardner@xxxxxx> 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?
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?
I believe that there are few tactics for this problems, and what we
should do depends on situations.
Thanks.
H
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|