oprofile: rework implementation of cpu buffer events
authorRobert Richter <robert.richter@amd.com>
Thu, 25 Dec 2008 16:26:07 +0000 (17:26 +0100)
committerRobert Richter <robert.richter@amd.com>
Wed, 7 Jan 2009 21:40:47 +0000 (22:40 +0100)
commitae735e9964b4584923f2997d98a8d80ae9c1a75c
tree0fc72d18bcc5951f9dd519e8a4527593724b816f
parent2d87b14cf8d0b07720de26d90789d02124141616
oprofile: rework implementation of cpu buffer events

Special events such as task or context switches are marked with an
escape code in the cpu buffer followed by an event code or a task
identifier. There is one escape code per event. To make escape
sequences also available for data samples the internal cpu buffer
format must be changed. The current implementation does not allow the
extension of event codes since this would lead to collisions with the
task identifiers. To avoid this, this patch introduces an event mask
that allows the storage of multiple events with one escape code. Now,
task identifiers are stored in the data section of the sample. The
implementation also allows the usage of custom data in a sample. As a
side effect the new code is much more readable and easier to
understand.

Signed-off-by: Robert Richter <robert.richter@amd.com>
arch/x86/oprofile/op_model_amd.c
drivers/oprofile/buffer_sync.c
drivers/oprofile/cpu_buffer.c
drivers/oprofile/cpu_buffer.h