Re: [PATCH v4 01/15] fs: Rename the kernel-internal data lifetime constants

Kanchan Joshi
2023-11-27T08:46:00Z

On 11/27/2023 12:38 PM, Christoph Hellwig wrote:
> On Tue, Nov 14, 2023 at 01:40:56PM -0800, Bart Van Assche wrote:
>> - case WRITE_LIFE_SHORT:
>> + case WRITE_LIFE_2:
>> return CURSEG_HOT_DATA;
>> - case WRITE_LIFE_EXTREME:
>> + case WRITE_LIFE_5:
>> return CURSEG_COLD_DATA;
>> default:
>> return CURSEG_WARM_DATA;
>
> A WRITE_LIFE_2 constant is strictly more confusing than just using 2,
> so this patch makes no sense whatsoever.
>
> More importantly these constant have been around forever, so we'd better
> have a really good argument for changing them.

How about this argument (assuming you may not have seen) from previous
iteration [1]-

"Does it make sense to do away with these, and have temperature-neutral
names instead e.g., WRITE_LIFE_1, WRITE_LIFE_2?

With the current choice:
- If the count goes up (beyond 5 hints), infra can scale fine but these
names do not. Imagine ULTRA_EXTREME after EXTREME.
- Applications or in-kernel users can specify LONG hint with data that
actually has a SHORT lifetime. Nothing really ensures that LONG is
really LONG.

Temperature-neutral names seem more generic/scalable and do not present
the unnecessary need to be accurate with relative temperatures."

[1]