This is an attempt to look in the wheel locker.
I need a simple event sub system for use in the kernel. I envision at
least two types of events: the history event and the timing event.
The timing event would keep track of start/stop times by class. If, for
example, I wanted to know how much time the kernel spends doing the
recalc in schedule() I would put and event start in front of it and an
end at the other end. The sub system would note the first event time
and the cumulative time between all starts and stops on the same event.
When reported by /proc/ it would give the total event time, the elapsed
time and the % of processor time for each of the possibly several
classes.
The history event would record each events time, location, data1,
data2. It would keep N of these (the last N) and report M (M=<N) via
/proc/. This list should also be kept in a format that a simple
debugger can easily examine.
Somebody must have written these routines and have them in their
library. Sure would help if I could have a peek.
George
george anzinger wrote:
>
> This is an attempt to look in the wheel locker.
>
> I need a simple event sub system for use in the kernel. I envision at
> least two types of events: the history event and the timing event.
>
> The timing event would keep track of start/stop times by class. If, for
> example, I wanted to know how much time the kernel spends doing the
> recalc in schedule() I would put and event start in front of it and an
> end at the other end. The sub system would note the first event time
> and the cumulative time between all starts and stops on the same event.
> When reported by /proc/ it would give the total event time, the elapsed
> time and the % of processor time for each of the possibly several
> classes.
http://www.uow.edu.au/~andrewm/linux/#timepegs (The patch
against 2.4.1-pre10 still applies!)
> The history event would record each events time, location, data1,
> data2. It would keep N of these (the last N) and report M (M=<N) via
> /proc/. This list should also be kept in a format that a simple
> debugger can easily examine.
Linux Trace Toolkit may be able to do this.
-
I think all of this has been done... you should check out
the Linux Trace Toolkit.
george anzinger wrote:
> This is an attempt to look in the wheel locker.
>
> I need a simple event sub system for use in the kernel. I envision at
> least two types of events: the history event and the timing event.
>
> The timing event would keep track of start/stop times by class. If, for
> example, I wanted to know how much time the kernel spends doing the
> recalc in schedule() I would put and event start in front of it and an
> end at the other end. The sub system would note the first event time
> and the cumulative time between all starts and stops on the same event.
> When reported by /proc/ it would give the total event time, the elapsed
> time and the % of processor time for each of the possibly several
> classes.
>
> The history event would record each events time, location, data1,
> data2. It would keep N of these (the last N) and report M (M=<N) via
> /proc/. This list should also be kept in a format that a simple
> debugger can easily examine.
>
> Somebody must have written these routines and have them in their
> library. Sure would help if I could have a peek.
Hellor George,
As others have suggested, you can do what you are asking for using LTT
(http://www.opersys.com/LTT).
Specifically, you may want to use the event allocation capabilities.
This will enable you to add your own events and view these as part
of the trace.
By the way, there are mailing lists for LTT if you're interested to
make a contribution.
Cheers,
Karim
george anzinger wrote:
>
> This is an attempt to look in the wheel locker.
>
> I need a simple event sub system for use in the kernel. I envision at
> least two types of events: the history event and the timing event.
>
> The timing event would keep track of start/stop times by class. If, for
> example, I wanted to know how much time the kernel spends doing the
> recalc in schedule() I would put and event start in front of it and an
> end at the other end. The sub system would note the first event time
> and the cumulative time between all starts and stops on the same event.
> When reported by /proc/ it would give the total event time, the elapsed
> time and the % of processor time for each of the possibly several
> classes.
>
> The history event would record each events time, location, data1,
> data2. It would keep N of these (the last N) and report M (M=<N) via
> /proc/. This list should also be kept in a format that a simple
> debugger can easily examine.
>
> Somebody must have written these routines and have them in their
> library. Sure would help if I could have a peek.
>
> George
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
--
===================================================
Karim Yaghmour
[email protected]
Embedded and Real-Time Linux Expert
===================================================