[COFF] [TUHS] Re: History of cal(1)?
Steffen Nurpmeso via COFF
coff at tuhs.org
Sat Sep 27 08:04:49 AEST 2025
Arnold Robbins via COFF wrote in
<202509261451.58QEpK5e025554 at freefriends.org>:
|Dan Cross via TUHS <tuhs at tuhs.org> wrote:
...
|> [.] recall that the `inode` contains some space for disk
|> block addresses (60 bytes in UFS on 4.1C, but this got bigger in later
|> versions). The idea with fast symlinks is that, if the target file
|> name of a symlink is short enough, the system can just store it in the
|> space that would normally be used for block addresses; there's no need
|> to allocate a separate fragment from a disk block, let alone bear the
|> cost of allocating a buffer and fetching a block from disk, if a short
|> name can be written directly into the inode.
|>
|> I don't think anyone ever gave serious thought to generalizing this
|> facility for very small files, but in principle, one could store their
|> contents in a similar manner (think of all those random little files
|> that just have a pid in them or something).
|
|I recall hearing that Amdahl did this for UTS, their System V port.
|I think it was a little more general, in that if there were, say 2
|inodes in a 512-byte block, a file of size (256 - sizeof(struct inode))
|could be stored in the same block as the inode itself.
Now you got me in my user space comfort. But, from readings here
and there from about 25 years ago, wasn't this one of the things
the people liked so much about ReiserFS? And likewise i would
think BTRFS also does this. "man 5 btrfs" says
max_inline=<bytes>
(default: min(2048, page size) )
Specify the maximum amount of space, that can be inlined in a
metadata b-tree leaf. The value is specified in bytes, optionā
ally with a K suffix (case insensitive). In practice, this value
is limited by the filesystem block size (named sectorsize at mkfs
time), and memory page size of the system. In case of sectorsize
limit, there's some space unavailable due to b-tree leaf headers.
For example, a 4KiB sectorsize, maximum size of inline data is
about 3900 bytes.
Inlining can be completely turned off by specifying 0. This will
increase data block slack if file sizes are much smaller than
block size but will reduce metadata consumption in return.
NOTE:
The default value has changed to 2048 in kernel 4.6.
Monty Python would now possibly go and say "hey, let's design
a tiny house with the core design principle of inlining small
subjects, like elephant or giraff". (And ah, the luxury of heigh
ceilings..)
--steffen
|
|Der Kragenbaer, The moon bear,
|der holt sich munter he cheerfully and one by one
|einen nach dem anderen runter wa.ks himself off
|(By Robert Gernhardt)
More information about the COFF
mailing list