Re: [patch] drop_caches: add some documentation and info message

From: Andrew Morton
Date: Fri Feb 07 2014 - 15:31:37 EST


On Fri, 7 Feb 2014 13:13:32 -0500 Johannes Weiner <hannes@xxxxxxxxxxx> wrote:

> @@ -63,6 +64,9 @@ int drop_caches_sysctl_handler(ctl_table *table, int write,
> iterate_supers(drop_pagecache_sb, NULL);
> if (sysctl_drop_caches & 2)
> drop_slab();
> + printk_ratelimited(KERN_INFO "%s (%d): dropped kernel caches: %d\n",
> + current->comm, task_pid_nr(current),
> + sysctl_drop_caches);
> }
> return 0;
> }

My concern with this is that there may be people whose
other-party-provided software uses drop_caches. Their machines will
now sit there emitting log messages and there's nothing they can do
about it, apart from whining at their vendors.


We could do something like this?

--- a/fs/drop_caches.c~drop_caches-add-some-documentation-and-info-message-fix
+++ a/fs/drop_caches.c
@@ -60,13 +60,17 @@ int drop_caches_sysctl_handler(ctl_table
if (ret)
return ret;
if (write) {
+ static int stfu;
+
if (sysctl_drop_caches & 1)
iterate_supers(drop_pagecache_sb, NULL);
if (sysctl_drop_caches & 2)
drop_slab();
- printk_ratelimited(KERN_INFO "%s (%d): dropped kernel caches: %d\n",
- current->comm, task_pid_nr(current),
- sysctl_drop_caches);
+ stfu |= sysctl_drop_caches & 4;
+ if (!stfu)
+ pr_info_ratelimited("%s (%d): dropped kernel caches: %d\n",
+ current->comm, task_pid_nr(current),
+ sysctl_drop_caches);
}
return 0;
}
_

(note switch to pr_info_ratelimited)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/