Re: [PATCHv2] mm/zsmalloc: don't fail if can't create debugfs info

From: Dan Streetman
Date: Fri May 20 2016 - 06:33:30 EST


On Fri, May 20, 2016 at 12:08 AM, Sergey Senozhatsky
<sergey.senozhatsky.work@xxxxxxxxx> wrote:
> On (05/19/16 11:18), Dan Streetman wrote:
> [..]
>> zs_stat_root = debugfs_create_dir("zsmalloc", NULL);
>> if (!zs_stat_root)
>> - return -ENOMEM;
>> -
>> - return 0;
>> + pr_warn("debugfs 'zsmalloc' stat dir creation failed\n");
>> }
>>
>> static void __exit zs_stat_exit(void)
>> @@ -573,17 +575,19 @@ static const struct file_operations zs_stat_size_ops = {
>> .release = single_release,
>> };
>>
>> -static int zs_pool_stat_create(struct zs_pool *pool, const char *name)
>> +static void zs_pool_stat_create(struct zs_pool *pool, const char *name)
>> {
>> struct dentry *entry;
>>
>> - if (!zs_stat_root)
>> - return -ENODEV;
>> + if (!zs_stat_root) {
>> + pr_warn("no root stat dir, not creating <%s> stat dir\n", name);
>> + return;
>> + }
>
> just a small nit, there are basically two warn messages now for
> `!zs_stat_root':
>
> debugfs 'zsmalloc' stat dir creation failed
> no root stat dir, not creating <%s> stat dir

They're logged at different times though, the first at module load
time, the second at every pool creation time. So while they may be
logged together if the module is loaded because a pool is being
created, any later pools created will only log the second message.

>
> may be we need only one of them; but no strong opinions.

If we drop either, I'd drop the first, but I think it could be useful
also in case zsmalloc is built-in or manually loaded without creating
a pool.

>
> -ss