[PATCH 2/2] cachefiles: support query cachefiles ondemand feature
Gao Xiang
hsiangkao at linux.alibaba.com
Mon Jun 24 22:58:40 AEST 2024
On 2024/6/24 19:58, Hongbo Li wrote:
>
>
> On 2024/6/21 18:42, Gao Xiang wrote:
>> Hi,
>>
>> On 2024/6/21 18:06, Gao Xiang wrote:
>>>
>>>
>>> On 2024/6/21 17:37, Hongbo Li wrote:
>>>>
>>>>
>>>> On 2024/6/21 17:14, Gao Xiang wrote:
>>>>>
>>>>>
>>>>> On 2024/6/21 14:18, Hongbo Li wrote:
>>>>>> Erofs over fscache need CONFIG_CACHEFILES_ONDEMAND in cachefiles
>>>>>> module. We cannot know whether it is supported from userspace, so
>>>>>> we export this feature to user by sysfs interface.
>>>>>>
>>>>>> [Before]
>>>>>> $ cat /sys/fs/cachefiles/features/cachefiles_ondemand
>>>>>> cat: /sys/fs/cachefiles/features/cachefiles_ondemand: No such file or directory
>>>>>>
>>>>>> [After]
>>>>>> $ cat /sys/fs/cachefiles/features/cachefiles_ondemand
>>>>>> supported
>>>>>>
>>>>>> Signed-off-by: Hongbo Li <lihongbo22 at huawei.com>
>>>>>
>>>>> I don't think such sysfs is needed, you could just use
>>>>> `bind ondemand` to check if it is supported:
>>>>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/fs/cachefiles/daemon.c?h=v6.9#n780
>>>>>
>>>> Thanks for reply!
>>>> `bind ondemand` can check if it is supported, but it requires a more complicated procedure for user to implement. For example, a serial of system call (open, ioctl, close) are need.The containerd snapshotter daemon relies on these feature, only use a simple check method is usable in product environment. The snapshotter developers may know how cachefiles works, but for snapshotter users, a simple way to check whether snapshotter can be launched is useful. Even though they do not know how cachefiles works.
>>>
>>> I don't think it needs to be considered as long as userspace
>>> has a way to check since you could wrap up these as a helper
>>> (I will do in the official erofs-utils later or if you have
>>> some interest you could help too) and even some erofs-utils
>>> binary for this.
>>>
>>> sysfs maintainence just for some random feature doesn't
>>> sound good to me (similar to ext4/xfs on-disk features) and
>>> even if works, you cannot use this way for 5.19~6.10
>>> upstream kernels.
>>
>> Anyway, I know userspace folks always would like to have a
>> simple kernel way to check if a feature is supported for a
>> kernel, but (many years later) my current thought is that
>> the simplist way to check this is to introduce a simple
>> helper to try. You cannot list every kernel features you
>> concerned as some sysfs file and in time properly, or you
>> could cause some inconsistency.
>>
>> Anyway, that is my personal thought, having another detailed
>> list for all features users care about along with the real
>> implementaions seems unnecessary.
> Thanks for explaining!
> Maybe the way of showing the features in erofs now seems not
> quite reasonable. It only output the "supported" string from
> sysfs. What suggestions do you have for this?
As I said, just using "bind ondemand" and "mount fsid" to check
if erofs over fscache is supported is enough.
If userspace folks don't like the internals, these logic could
be wrapped up in erofs-utils or whatever libraries.
Thanks,
Gao Xiang
>
> Thanks,
> Hongbo
>>
>> Thanks,
>> Gao Xiang
More information about the Linux-erofs
mailing list