Skip to contentSkip to conversation

Event tools, do they exist

DISCUSSION george anzinger 4 participants 4 messages Apr 25, 2001 – Apr 26, 2001

lore
Share & tools
lore
#0 lore raw

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

#1 lore raw
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.

-

#2 lore raw
In reply to george anzinger

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.

#3 lore raw
In reply to george anzinger

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
===================================================