Event tools, do they exist
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
Quoted 6 lines · george anzinger
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.
Quoted 8 lines
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!)
Quoted 4 lines
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.
Quoted 21 lines · george anzinger
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
Quoted 29 lines · george anzinger
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/
Signature · 5 lines
===================================================
Karim Yaghmour
[email protected]
Embedded and Real-Time Linux Expert
===================================================