Added support for I/O scheduling events to the system profiler interface.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34703 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2009-12-19 14:33:29 +00:00
parent ca77afe75f
commit 189010cbc2
2 changed files with 315 additions and 12 deletions
+69 -6
View File
@@ -26,11 +26,12 @@ struct system_profiler_parameters {
// event flags
enum {
B_SYSTEM_PROFILER_TEAM_EVENTS = 0x01,
B_SYSTEM_PROFILER_THREAD_EVENTS = 0x02,
B_SYSTEM_PROFILER_IMAGE_EVENTS = 0x04,
B_SYSTEM_PROFILER_SAMPLING_EVENTS = 0x08,
B_SYSTEM_PROFILER_SCHEDULING_EVENTS = 0x10
B_SYSTEM_PROFILER_TEAM_EVENTS = 0x01,
B_SYSTEM_PROFILER_THREAD_EVENTS = 0x02,
B_SYSTEM_PROFILER_IMAGE_EVENTS = 0x04,
B_SYSTEM_PROFILER_SAMPLING_EVENTS = 0x08,
B_SYSTEM_PROFILER_SCHEDULING_EVENTS = 0x10,
B_SYSTEM_PROFILER_IO_SCHEDULING_EVENTS = 0x20
};
@@ -62,7 +63,15 @@ enum {
B_SYSTEM_PROFILER_THREAD_SCHEDULED,
B_SYSTEM_PROFILER_THREAD_ENQUEUED_IN_RUN_QUEUE,
B_SYSTEM_PROFILER_THREAD_REMOVED_FROM_RUN_QUEUE,
B_SYSTEM_PROFILER_WAIT_OBJECT_INFO
B_SYSTEM_PROFILER_WAIT_OBJECT_INFO,
// I/O scheduling
B_SYSTEM_PROFILER_IO_SCHEDULER_ADDED,
B_SYSTEM_PROFILER_IO_SCHEDULER_REMOVED,
B_SYSTEM_PROFILER_IO_REQUEST_SCHEDULED,
B_SYSTEM_PROFILER_IO_REQUEST_FINISHED,
B_SYSTEM_PROFILER_IO_OPERATION_STARTED,
B_SYSTEM_PROFILER_IO_OPERATION_FINISHED
};
@@ -166,5 +175,59 @@ struct system_profiler_wait_object_info {
char name[1];
};
// B_SYSTEM_PROFILER_IO_SCHEDULER_ADDED
struct system_profiler_io_scheduler_added {
int32 scheduler;
char name[1];
};
// B_SYSTEM_PROFILER_IO_SCHEDULER_REMOVED
struct system_profiler_io_scheduler_removed {
int32 scheduler;
};
// B_SYSTEM_PROFILER_IO_REQUEST_SCHEDULED
struct system_profiler_io_request_scheduled {
nanotime_t time;
int32 scheduler;
team_id team;
thread_id thread;
void* request;
off_t offset;
size_t length;
bool write;
uint8 priority;
};
// B_SYSTEM_PROFILER_IO_REQUEST_FINISHED
struct system_profiler_io_request_finished {
nanotime_t time;
int32 scheduler;
void* request;
status_t status;
size_t transferred;
};
// B_SYSTEM_PROFILER_IO_OPERATION_STARTED
struct system_profiler_io_operation_started {
nanotime_t time;
int32 scheduler;
void* request;
void* operation;
off_t offset;
size_t length;
bool write;
};
// B_SYSTEM_PROFILER_IO_OPERATION_FINISHED
struct system_profiler_io_operation_finished {
nanotime_t time;
int32 scheduler;
void* request;
void* operation;
status_t status;
size_t transferred;
};
#endif /* _SYSTEM_SYSTEM_PROFILER_DEFS_H */