Subject: bug#10561: stat unclear about size on disk and type of blocks discussed

From: Pádraig Brady <[email-masked]>
Date: Sat, 21 Jan 2012 00:03:24 +0000

On 01/20/2012 05:47 PM, Filipus Klutiero wrote:
> Hi Pádraig and Jim,
> 
> On 2012-01-20 09:15, Pádraig Brady wrote:
>> On 01/20/2012 02:03 PM, Jim Meyering wrote:
>>> Pádraig Brady wrote:
>>> ...
>>>>> As for %o, if you'd ask me what "I/O block size" means without any
>>>>> context, I'm far from being sure I would answer it means size on
>>>>> disk. I suggest to call this Size on disk, or Size used on the
>>>>> filesystem.
>>>> I/O implies transfer.
>>>> So it corresponds to an "optimal transfer size hint"
>>>> This value can be different at each layer, for example:
>>>>
>>>> $ stat -c "%o" .                # file level
>>>> $ stat -f -c "%s" .             # file system level
>>>> # blockdev --getioopt /dev/sda  # device level
>>>>
>>>>> I'm not sure what language should be used instead. Perhaps instead
>>>>> of blocks the manual should talk about "data storage device blocks".
>>>> I suppose we could clarify "I/O block size" a bit.
>>>> How about s|I/O block size|optimal I/O block transfer size|
>>> or even without "block",
>>>
>>>    "optimal I/O transfer size"
>> OK I'll go with "optimal I/O transfer size hint",
>> since there is nothing guaranteed about it,
>> and in fact it's often wrong.
>>
>> cheers,
>> Pádraig.
>>
> 
> I'm sorry but this change does not really address my concern.

It does actually, because...

> The previous definition of %o did refer to "block" without specifying which kind of block. This is no longer the case as the new definition no longer refers to blocks. However, I still do not consider the new definition, "Optimal I/O transfer size hint", understandable.
> To come back to my original problem, I tried figuring out how much disk space a small file took. In Windows, I would look at "Size on disk". If "optimal I/O transfer size hint" means size on disk, this is still very unclear. Even after reading your answers, I don't understand what "Optimal I/O transfer size" means.
> I am not looking for a transfer size.

... you know to ignore %o

> My question is, if I'm putting a small file on my filesystem, how much space will it use.
> Here are 2 new descriptions I suggest:
> Size occupied when including slack space
> Size of the clusters occupied
> 
> Appart from %o, the ambiguity problem in the descriptions of %b and %B remains.

No it does not. As I said they're abstract entities only valid in relation to each other.
Just multiple %b x %B to get your answer.

You may have missed the start of the last mail, where I said
the du command is more appropriate (it does the above for you).

cheers,
Pádraig.