On Fri, Oct 30, 2009 at 11:17:22AM +0100, Tejun Heo wrote: > Matthew Wilcox wrote: > > It is convoluted. The advantage of this is that we get to create many > > fewer dirents. I wonder if we can do away with the dirents entirely, and > > have dentries constructed dynamically instead. > > I think it's a bit misdirected. It's probably better to try to reduce > the size of struct sysfs_dirent by tightly packing them and moving out > dynamic part of the data structure into a separate one which is only > allocated while the node is being accessed. The thing is that large > number of the nodes would require struct sysfs_dirent anyway, so it > would be much more benficial and less convoluted to diet the whole > thing. > > In this particular case, the trade off is actually much worse because > sysfs_dirent is being increased but the only one which is seeing any > kind of memory usage drop is the new msi-x code. Given that there can > be only a handful of msi-x controllers even in a fairly large system, > I don't think memory usage will be reduced in any meaningful way even > on affected systems and if you think about large systems with > thousands and tens of thousands block devices, the bloat in > sysfs_dirent will waste a lot of memory. Every attribute sees a drop in memory usage. I think I saw about 30% fewer dirents created on boot with this laptop. Why not try this patch on one of your machines and see the difference? -- Matthew Wilcox Intel Open Source Technology Centre "Bill, look, we understand that you're interested in selling us this operating system, but compare it to ours. We can't possibly take such a retrograde step." -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html