Messages in this thread |  | | Date | Sun, 2 Sep 2001 09:38:10 -0600 | | From | Richard Gooch <> | | Subject | Re: [RFC] lazy allocation of struct block_device |
| |
Alexander Viro writes: > > > On Sun, 2 Sep 2001 Andries.Brouwer@cwi.nl wrote: > > > That majors allocation is frozen is not my problem. > > I make life simple with a 64-bit dev_t. Everybody else already has the > > disadvantages of a 64-bit dev_t, since glibc moves 64 bits around, > > but not the advantage of a large namespace. > > Not an option for any tree I'd ever run on my box and IIRC Linus was not > likely to inflict that on his. As for the glibc... > a) not everything uses this piece of shit
Nod.
> b) it would be really nice to get rid of it completely someday
Or at the very least, to selectively not compile large chunks of stuff that went in that I will never need. Stuff that isn't there on libc5 and other Unices. Something that takes up less than half a floppy. And having source and binary compatibility between major releases wouldn't hurt either!
> > Concerning devfs, I don't use it and have not really thought about it. > > I think my point of view would be that devfs provides a different object. > > A device node in a filesystem is a pair (pathname, dev_t). > > Opening it gives the triple (pathname, dev_t, kdev_t). > > What devfs provides is (pathname), after opening (pathname, kdev_t). > > Wait a second. To hell with devfs, I'm talking about any synthetic > tree containing device nodes. Being forced to allocate a point in > numeric namespace just to be able to associate a driver-created > inode with (also driver-created) device... Looks rather bogus, not > to mention the ugliness of maintaining said numeric namespace.
Nod.
> > But I think the pointer kdev_t (or i_bcdev) must still be recomputed: > > it remains true that modules can be unloaded. > > Umm... So what? They can be unloaded only when we have device not opened. > We might leave both allocation and freeing to driver-side code (and that > includes grok_partitions()) and let the freeing code reset ->i_bdev and > friends in all relevant inodes.
Yep. Having to allocate/search for a device structure during open(2) is insane. It's wasteful. For ext2fs you can do it in lookup(), and for devfs (or similar) you can do the ideal thing: when the device entry is registered with the FS (i.e. only once).
Regards,
Richard.... Permanent: rgooch@atnf.csiro.au Current: rgooch@ras.ucalgary.ca - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |