Addressing logically the buffer cache
Hi!.
Is there any patch or project to address logically the buffer cache?. Now, you use three parameters to find a buffer in cache: device, block number, and block size. But, what about if I want to find a buffer using a super block, an inode number, and a block number within the file specified by the inode number.
This mechanism would be very useful for a log-structured file system, for example.
Thanks in advance
Signature · 12 lines
D. Juan Piernas Cánovas Departamento de Ingeniería y Tecnología de Computadores Facultad de Informática. Universidad de Murcia Campus de Espinardo - 30080 Murcia (SPAIN) Tel.: +34968364633 Fax: +34968364151 email: [email protected] PGP public key: http://pgp.rediris.es:11371/pks/lookup?search=piernas%40ditec.um.es&op=index - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] Please read the FAQ at http://www.tux.org/lkml/
Quoted 7 lines · Juan
Hi!.
Is there any patch or project to address logically the buffer cache?. Now, you use three parameters to find a buffer in cache: device, block number, and block size. But, what about if I want to find a buffer using a super block, an inode number, and a block number within the file specified by the inode number.
What's wrong with using the pagecache and per-page buffer_heads?
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/
Quoted 5 lines · Alexander Viro
Quoted 2 lines · Juan
Hi!.
Quoted 7 lines
Quoted 5 lines
Is there any patch or project to address logically the buffer cache?. Now, you use three parameters to find a buffer in cache: device, block number, and block size. But, what about if I want to find a buffer using a super block, an inode number, and a block number within the file specified by the inode number.
What's wrong with using the pagecache and per-page
buffer_heads?
Suppose you are implementing a log-structured file system and a process adds a new logical block to a file. Besides, suppose that the segment is 512 KBytes in size. Usually, you don't want to write the segment before it is full. The logical block hasn't got a physical address because you don't build the segment until it is written to disk. So, what happens if another process wants to access to the new block?.
You can't assign a physical address to the new block because the address can change when the buffer is written to disk.
Perhaps, I'm wrong, but I think that the implementation of the BSD-LFS needs to address logically the buffer cache.
Bye!
P.D.: sorry for my bad English ;-)
Signature · 12 lines
D. Juan Piernas Cánovas Departamento de Ingeniería y Tecnología de Computadores Facultad de Informática. Universidad de Murcia Campus de Espinardo - 30080 Murcia (SPAIN) Tel.: +34968364633 Fax: +34968364151 email: [email protected] PGP public key: http://pgp.rediris.es:11371/pks/lookup?search=piernas%40ditec.um.es&op=index - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] Please read the FAQ at http://www.tux.org/lkml/
Quoted 21 lines · Juan
Quoted 5 lines · Alexander Viro
Quoted 2 lines · Juan
Hi!.
Quoted 7 lines
Quoted 5 lines
Is there any patch or project to address logically the buffer cache?. Now, you use three parameters to find a buffer in cache: device, block number, and block size. But, what about if I want to find a buffer using a super block, an inode number, and a block number within the file specified by the inode number.
What's wrong with using the pagecache and per-page
buffer_heads?Suppose you are implementing a log-structured file system and a process adds a new logical block to a file. Besides, suppose that the segment is 512 KBytes in size. Usually, you don't want to write the segment before it is full. The logical block hasn't got a physical address because you don't build the segment until it is written to disk. So, what happens if another process wants to access to the new block?.
Quoted 2 lines
You can't assign a physical address to the new block because the address can change when the buffer is written to disk.
So you don't assign a buffer head until you make the final decision. There are some interesting issues with how you track that your data is dirty but otherwise all is well.
Quoted 3 lines
Perhaps, I'm wrong, but I think that the implementation of the BSD-LFS needs to address logically the buffer cache.
The linux vfs is quite different from the berkley one. The linux page cache is much closer to the berkley block cache, then the depricated linux block cache.
Eric
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected]
Please read the FAQ at http://www.tux.org/lkml/