From: pmf Date: Thu, 27 Mar 2008 22:08:37 +0000 (+0000) Subject: update blktrace_start with work on blktrace X-Git-Tag: v0.12.20~653 X-Git-Url: https://git.lttng.org/?p=lttv.git;a=commitdiff_plain;h=f8597eb97dcdbcb3e9c38b19c7f7b235bda3bd2f update blktrace_start with work on blktrace patch: block-devices-instrumentation-while-destroying-blktrace-for-2.6.24-rc8-git3-lttng-0.10-pre42.patch git-svn-id: http://ltt.polymtl.ca/svn@2836 04897980-b3bd-0310-b5e0-8ef037075253 --- diff --git a/blk/Makefile b/blk/Makefile index 53363ffd..d839c20b 100644 --- a/blk/Makefile +++ b/blk/Makefile @@ -1,2 +1,2 @@ blktrace_start: blktrace_start.c - gcc -o blktrace_start blktrace_start.c + gcc -I/usr/include -o blktrace_start blktrace_start.c diff --git a/blk/blktrace_api.h b/blk/blktrace_api.h index 61b405a2..c9f8e03c 100644 --- a/blk/blktrace_api.h +++ b/blk/blktrace_api.h @@ -30,31 +30,32 @@ enum { /* * Basic trace actions */ -enum { - __BLK_TA_QUEUE = 1, /* queued */ - __BLK_TA_BACKMERGE, /* back merged to existing rq */ - __BLK_TA_FRONTMERGE, /* front merge to existing rq */ - __BLK_TA_GETRQ, /* allocated new request */ - __BLK_TA_SLEEPRQ, /* sleeping on rq allocation */ - __BLK_TA_REQUEUE, /* request requeued */ - __BLK_TA_ISSUE, /* sent to driver */ - __BLK_TA_COMPLETE, /* completed by driver */ - __BLK_TA_PLUG, /* queue was plugged */ - __BLK_TA_UNPLUG_IO, /* queue was unplugged by io */ - __BLK_TA_UNPLUG_TIMER, /* queue was unplugged by timer */ - __BLK_TA_INSERT, /* insert request */ - __BLK_TA_SPLIT, /* bio was split */ - __BLK_TA_BOUNCE, /* bio was bounced */ - __BLK_TA_REMAP, /* bio was remapped */ -}; +//enum blktrace_act { +// __BLK_TA_QUEUE = 1, /* queued */ +// __BLK_TA_BACKMERGE, /* back merged to existing rq */ +// __BLK_TA_FRONTMERGE, /* front merge to existing rq */ +// __BLK_TA_GETRQ, /* allocated new request */ +// __BLK_TA_SLEEPRQ, /* sleeping on rq allocation */ +// __BLK_TA_REQUEUE, /* request requeued */ +// __BLK_TA_ISSUE, /* sent to driver */ +// __BLK_TA_COMPLETE, /* completed by driver */ +// __BLK_TA_PLUG, /* queue was plugged */ +// __BLK_TA_UNPLUG_IO, /* queue was unplugged by io */ +// __BLK_TA_UNPLUG_TIMER, /* queue was unplugged by timer */ +// __BLK_TA_INSERT, /* insert request */ +// __BLK_TA_SPLIT, /* bio was split */ +// __BLK_TA_BOUNCE, /* bio was bounced */ +// __BLK_TA_REMAP, /* bio was remapped */ +//}; /* * Notify events. */ -enum blktrace_notify { - __BLK_TN_PROCESS = 0, /* establish pid/name mapping */ - __BLK_TN_TIMESTAMP, /* include system clock */ -}; +//enum blktrace_notify { +// __BLK_TN_PROCESS = 0, /* establish pid/name mapping */ +// __BLK_TN_TIMESTAMP, /* include system clock */ +//}; + /* * Trace actions in full. Additionally, read or write is masked @@ -84,27 +85,47 @@ enum blktrace_notify { /* * The trace itself */ -struct blk_io_trace { - __u32 magic; /* MAGIC << 8 | version */ - __u32 sequence; /* event number */ - __u64 time; /* in nanoseconds */ - __u64 sector; /* disk offset */ - __u32 bytes; /* transfer length */ - __u32 action; /* what happened */ - __u32 pid; /* who did it */ - __u32 device; /* device identifier (dev_t) */ - __u32 cpu; /* on what cpu did it happen */ - __u16 error; /* completion error */ - __u16 pdu_len; /* length of data after this trace */ -}; +//struct blk_io_trace { +// u32 magic; /* MAGIC << 8 | version */ +// u32 sequence; /* event number */ +// u64 time; /* in microseconds */ +// u64 sector; /* disk offset */ +// u32 bytes; /* transfer length */ +// u32 action; /* what happened */ +// u32 pid; /* who did it */ +// u32 device; /* device number */ +// u32 cpu; /* on what cpu did it happen */ +// u16 error; /* completion error */ +// u16 pdu_len; /* length of data after this trace */ +//}; /* * The remap event */ -struct blk_io_trace_remap { - __u32 device; - __u32 device_from; - __u64 sector; +//struct blk_io_trace_remap { +// __be32 device; +// __be32 device_from; +// __be64 sector; +//}; + +enum { + Blktrace_setup = 1, + Blktrace_running, + Blktrace_stopped, +}; + +struct blk_trace { + int trace_state; +// struct rchan *rchan; +// unsigned long *sequence; +// u16 act_mask; +// u64 start_lba; +// u64 end_lba; +// u32 pid; + __u32 dev; +// struct dentry *dir; +// struct dentry *dropped_file; +// atomic_t dropped; }; /* @@ -112,12 +133,12 @@ struct blk_io_trace_remap { */ struct blk_user_trace_setup { char name[32]; /* output */ - __u16 act_mask; /* input */ - __u32 buf_size; /* input */ - __u32 buf_nr; /* input */ - __u64 start_lba; - __u64 end_lba; - __u32 pid; +// __u16 act_mask; /* input */ +// __u32 buf_size; /* input */ +// __u32 buf_nr; /* input */ +// __u64 start_lba; +// __u64 end_lba; +// __u32 pid; }; #define BLKTRACESETUP _IOWR(0x12,115,struct blk_user_trace_setup) diff --git a/blk/blktrace_start.c b/blk/blktrace_start.c index 97c15926..651a0763 100644 --- a/blk/blktrace_start.c +++ b/blk/blktrace_start.c @@ -12,9 +12,9 @@ int start(int fd) struct blk_user_trace_setup buts; memset(&buts, 0, sizeof(buts)); - buts.buf_size = 512*1024; - buts.buf_nr = 4; - buts.act_mask = ~0; +// buts.buf_size = 512*1024; +// buts.buf_nr = 4; +// buts.act_mask = ~0; if (ioctl(fd, BLKTRACESETUP, &buts) < 0) { perror("BLKTRACESETUP"); @@ -44,7 +44,7 @@ int main(int argc, char **argv) fd = open(argv[2], O_RDONLY | O_NONBLOCK); if (fd < 0) { - perror(argv[1]); + perror(argv[0]); return 1; }