Hi I uploaded new statistics patches for 3.10 to http://people.redhat.com/mpatocka/patches/kernel/dm-statistics/current/ You need to apply the patch dm-optimize.patch, then apply dm-statistics.patch. Use the Makefile to compile the userspace tool. Basic usage: ============ ./stats -c /dev/mapper/device --- start collecting statistics, by default, statistics are collected for segments, each segment has 64MB. The segment size can be changed with -g. If the argument to -g is a positive number, it is the size of segment in 512-byte sectors. If the the argument to -g is a negative number, the segment size is set so that device is divided into the specified number of segments. ./stats -q /dev/mapper/device --- query the collected statistics (use --clear to clear them) Query can be combined with --raw (report raw counters), --bi (use mebibytes), --nomerge (treat merged I/Os as separate). --seek (show approximate seek time instead of latency). ./stats -d /dev/mapper/device --- delete the statistics ./stats -l --- list all devices that have statistics collected If the device is omitted, the command works on all active device mapper devices. Advanced usage: =============== ./stats /dev/mapper/device -s <sector> -g <sectors> --- subdivide the existing range into a smaller range. <sector> must be an start of some segment where statistics are already being collected. The command will subdivide the segment into many smaller segments, each having <sectors> sectors. ./stats -d /dev/mapper/device -s <sector> --- delete a range that was previously created using the subdivide function. ./stats -a /dev/mapper/device --- schedule the device for automatic subdivide. This option can be combined with the '-c' option to create initial statistics for the device. For automatic subdivide to work, you need to run the "stats" program periodically from cron with no parameters. When the device is scheduled for automatic subdivide, the system waits the specified amount of time (by default 600 seconds, can be set with --auto-subdivide-time), then takes 3 ranges with most I/O requests (can be set with --auto-subdivide-number) and subdivides them into 256 pieces (can be set with --auto-subdivide-granularity). If you specify --auto-subdivide-depth greater than 1, then the process is repeated at next interval (by default --auto-subdivide-depth is 1, which means that just one automatic subdivision is done). ./stats -da /dev/mapper/device --- delete all statistics that were collected as a result of automatic subdivision. Mikulas -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel