Description of problem: The DK_MAX_MAJOR definition is too low in kernel_stat.h, and does not encompass all the block devices in documentation/devices.txt Version-Release number of selected component (if applicable): All How reproducible: allways Steps to Reproduce: 1.boot a system using a block device with a major number greater than the kernels DK_MAJOR_MAX value (cciss is a good example) 2. preform io to the device through a filesystem 3. examine /proc/stat, or the output of sar or iostat on the device Actual results: no activity is recorded Expected results: proper disk usage statistics are kept Additional info: DK_MAX_MAJOR should be raised to match the greatest block major value in Documentation/devices.txt
Created attachment 95915 [details] patch to raise the DK_MAX_MAJOR value This is really kind of a silly solution, as its pretty wasetful on memory, but it should work. Perhaps what is really needed is a patch so that the dk_disk* arrays in kstat_percpu can grow when block device modules with major numbers greater than DK_MAX_MAJOR can grow the size of the array dynamically
the highest allocated block major is 114 (ataraid) not 201.....
Documentation/devices.txt lists block major 201 (the Veritas VxVM dynamic multipathing driver) as the highest allocated block number
The stats in /proc/partitions should be available for devices with any major number, regardless of what is in /proc/stats. User-space should be looking there for its information.
Looking at the two files, I don't see a direct way to convert between the stats which /proc/partitions gathers and those which /proc/stats gathers. I'll happily start patching sar, iostat, etc to start using proc/partitions if I can figure out a conversion map between the two files.
*** Bug 111294 has been marked as a duplicate of this bug. ***
Created attachment 98301 [details] patch to allow sadc/sar and iostat to read info from /proc/partitions rather than /proc/stat This is an alternative patch to patch 95915. This patch, instead of raising the DK_MAX_MAJOR value in the kernel, alters iostat and sadc to collect disk io data from /proc/partitions rather than a combination of /proc/partitions and /proc/stat.
*** Bug 110092 has been marked as a duplicate of this bug. ***
Created attachment 100766 [details] fix to my previous systat patch local array I was using for line input wasn't long enough for some lines in /proc/partitions. This modified patch fixes that and cleans a few other things up
Created attachment 100790 [details] removing extra debug code from my last patch sorry, had some extraneous debug code in my last patch
Seems we all agree its not a kernel problem. So..... - changing owner to bernds - changing category from kernel to OS
Someone says this should be owned by ccb, so reassigning.
Created attachment 100993 [details] Final version of Neil's patch (Adds back iostat prtion of the fix)...
Bouncing this back to assigned, as appears that Jay has discovered an oddity.
he's right, that should be wio, not rsect. I'll regenerate the patch.
*** This bug has been marked as a duplicate of 123136 ***
An errata has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2004-336.html