* Re: [Bugme-new] [Bug 11323] New: /proc/diskstats does not contain all disk devices [not found] <bug-11323-10286@http.bugzilla.kernel.org/> @ 2008-08-13 20:01 ` Andrew Morton 2008-08-13 23:51 ` Greg KH 0 siblings, 1 reply; 3+ messages in thread From: Andrew Morton @ 2008-08-13 20:01 UTC (permalink / raw) To: Greg KH, Kay Sievers; +Cc: bugme-daemon, linux-kernel, genanr On Wed, 13 Aug 2008 12:12:44 -0700 (PDT) bugme-daemon@bugzilla.kernel.org wrote: > > http://bugzilla.kernel.org/show_bug.cgi?id=11323 > > Summary: /proc/diskstats does not contain all disk devices > Product: File System > Version: 2.5 > KernelVersion: 2.6.27-rcX > Platform: All > OS/Version: Linux > Tree: Mainline > Status: NEW > Severity: normal > Priority: P1 > Component: Other > AssignedTo: fs_other@kernel-bugs.osdl.org > ReportedBy: genanr@emsphone.com > > > Latest working kernel version: 2.6.26 > Earliest failing kernel version: 2.6.27-rc1 Post-2.6.26 regression. > Distribution: Debian > Hardware Environment: Dell > Software Environment: > Problem Description: /proc/diskstats does not contain all the block devices it > should. /sys/block has all the devices, but /proc/diskstats does not. > > Steps to reproduce: boot a system with >9 (10?) disk devices (24 block > devices?) The below would be a prime suspect. Unfortunately a simple revert results in an uncompilable kernel. (It drives me up the wall and across the ceiling how the patch has a commit "date" of three months prior to the 2.6.26 release, however it wasn't present in 2.6.26. What a dumb feature. How do I make it stop doing this? gitk kind of gets it right, but isn't useful across DSL) commit 27f302519148f311307637d4c9a6d0fd87d07e4c Author: Greg Kroah-Hartman <gregkh@suse.de> Date: Thu May 22 17:21:08 2008 -0400 block: make /proc/partitions and /proc/diskstats use class_find_device() Use the proper class iterator function instead of mucking around in the internals of the class structures. Cc: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> diff --git a/block/genhd.c b/block/genhd.c index 70f1d70..c13cc77 100644 --- a/block/genhd.c +++ b/block/genhd.c @@ -317,17 +317,21 @@ static void *part_start(struct seq_file return NULL; } +static int find_next(struct device *dev, void *data) +{ + if (dev->type == &disk_type) + return 1; + return 0; +} + static void *part_next(struct seq_file *part, void *v, loff_t *pos) { struct gendisk *gp = v; struct device *dev; ++*pos; - list_for_each_entry(dev, &gp->dev.node, node) { - if (&dev->node == &block_class.devices) - return NULL; - if (dev->type == &disk_type) - return dev_to_disk(dev); - } + dev = class_find_device(&block_class, &gp->dev, NULL, find_next); + if (dev) + return dev_to_disk(dev); return NULL; } @@ -578,12 +582,9 @@ static void *diskstats_next(struct seq_f struct device *dev; ++*pos; - list_for_each_entry(dev, &gp->dev.node, node) { - if (&dev->node == &block_class.devices) - return NULL; - if (dev->type == &disk_type) - return dev_to_disk(dev); - } + dev = class_find_device(&block_class, &gp->dev, NULL, find_next); + if (dev) + return dev_to_disk(dev); return NULL; } ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Bugme-new] [Bug 11323] New: /proc/diskstats does not contain all disk devices 2008-08-13 20:01 ` [Bugme-new] [Bug 11323] New: /proc/diskstats does not contain all disk devices Andrew Morton @ 2008-08-13 23:51 ` Greg KH 2008-08-14 0:20 ` Andrew Morton 0 siblings, 1 reply; 3+ messages in thread From: Greg KH @ 2008-08-13 23:51 UTC (permalink / raw) To: Andrew Morton; +Cc: Kay Sievers, bugme-daemon, linux-kernel, genanr On Wed, Aug 13, 2008 at 01:01:58PM -0700, Andrew Morton wrote: > > Problem Description: /proc/diskstats does not contain all the block devices it > > should. /sys/block has all the devices, but /proc/diskstats does not. > > > > Steps to reproduce: boot a system with >9 (10?) disk devices (24 block > > devices?) > > The below would be a prime suspect. > > Unfortunately a simple revert results in an uncompilable kernel. > > > (It drives me up the wall and across the ceiling how the patch has a > commit "date" of three months prior to the 2.6.26 release, however it > wasn't present in 2.6.26. What a dumb feature. How do I make it stop > doing this? gitk kind of gets it right, but isn't useful across DSL) $ git show --pretty=fuller 27f302519148f311307637d4c9a6d0fd87d07e4c commit 27f302519148f311307637d4c9a6d0fd87d07e4c Author: Greg Kroah-Hartman <gregkh@suse.de> AuthorDate: Thu May 22 17:21:08 2008 -0400 Commit: Greg Kroah-Hartman <gregkh@suse.de> CommitDate: Mon Jul 21 21:54:49 2008 -0700 There is a commit date, and the date the patch was written. Both are preserved in git. And even if it was committed to a branch before 2.6.26 was released, and then pulled in, that's fine, it's distributed development :) $ git describe --contains 27f302519148f311307637d4c9a6d0fd87d07e4c v2.6.27-rc1~866^2~40 showing it first showed up on 2.6.27-rc1. Anyway, I don't have any systems with such a large number of devices to test with. Running git-bisect should narrow the problem down, you can't just revert this patch as later-on patches relied on it, as you found out... Also, what is the output of these files, what exactly is missing? thanks, greg k-h ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Bugme-new] [Bug 11323] New: /proc/diskstats does not contain all disk devices 2008-08-13 23:51 ` Greg KH @ 2008-08-14 0:20 ` Andrew Morton 0 siblings, 0 replies; 3+ messages in thread From: Andrew Morton @ 2008-08-14 0:20 UTC (permalink / raw) To: Greg KH; +Cc: kay.sievers, bugme-daemon, linux-kernel, genanr On Wed, 13 Aug 2008 16:51:12 -0700 Greg KH <greg@kroah.com> wrote: > On Wed, Aug 13, 2008 at 01:01:58PM -0700, Andrew Morton wrote: > > > Problem Description: /proc/diskstats does not contain all the block devices it > > > should. /sys/block has all the devices, but /proc/diskstats does not. > > > > > > Steps to reproduce: boot a system with >9 (10?) disk devices (24 block > > > devices?) > > > > The below would be a prime suspect. > > > > Unfortunately a simple revert results in an uncompilable kernel. > > > > > > (It drives me up the wall and across the ceiling how the patch has a > > commit "date" of three months prior to the 2.6.26 release, however it > > wasn't present in 2.6.26. What a dumb feature. How do I make it stop > > doing this? gitk kind of gets it right, but isn't useful across DSL) > > $ git show --pretty=fuller 27f302519148f311307637d4c9a6d0fd87d07e4c <writes a script> > commit 27f302519148f311307637d4c9a6d0fd87d07e4c > Author: Greg Kroah-Hartman <gregkh@suse.de> > AuthorDate: Thu May 22 17:21:08 2008 -0400 > Commit: Greg Kroah-Hartman <gregkh@suse.de> > CommitDate: Mon Jul 21 21:54:49 2008 -0700 > > There is a commit date, and the date the patch was written. Both are > preserved in git. > > And even if it was committed to a branch before 2.6.26 was released, and > then pulled in, that's fine, it's distributed development :) It's useless. I have never ever ever ever wanted to know when random person X committed a patch to some local tree. The overwhelmingly most common question is "when did that go into Linux". Sigh. > $ git describe --contains 27f302519148f311307637d4c9a6d0fd87d07e4c > v2.6.27-rc1~866^2~40 > > showing it first showed up on 2.6.27-rc1. Spose that works. My usual recourse is searching the commits list, which has useful-to-humans ordering information. Is the date at which it went into mainline recorded? > Anyway, I don't have any systems with such a large number of devices to > test with. I suppose that partitioning a junk disk with lots of little partitions will show it. parted wants to go stupid on me though. > Running git-bisect should narrow the problem down, you can't > just revert this patch as later-on patches relied on it, as you found > out... > > Also, what is the output of these files, what exactly is missing? ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-08-14 0:21 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <bug-11323-10286@http.bugzilla.kernel.org/>
2008-08-13 20:01 ` [Bugme-new] [Bug 11323] New: /proc/diskstats does not contain all disk devices Andrew Morton
2008-08-13 23:51 ` Greg KH
2008-08-14 0:20 ` Andrew Morton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox