* [PATCH] drop_caches: re-enable message after disabling
@ 2025-02-16 10:05 Ruiwu Chen
2025-02-21 8:50 ` Joel Granados
0 siblings, 1 reply; 7+ messages in thread
From: Ruiwu Chen @ 2025-02-16 10:05 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: viro, brauner, jack, kees, joel.granados, Ruiwu Chen
When 'echo 4 > /proc/sys/vm/drop_caches' the message is disabled,
but there is no interface to enable the message, only by restarting
the way, so I want to add the 'echo 0 > /proc/sys/vm/drop_caches'
way to enabled the message again.
Signed-off-by: Ruiwu Chen <rwchen404@gmail.com>
---
fs/drop_caches.c | 7 +++++--
kernel/sysctl.c | 2 +-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/fs/drop_caches.c b/fs/drop_caches.c
index d45ef541d848..c90cfaf9756d 100644
--- a/fs/drop_caches.c
+++ b/fs/drop_caches.c
@@ -57,7 +57,7 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
if (ret)
return ret;
if (write) {
- static int stfu;
+ static bool stfu;
if (sysctl_drop_caches & 1) {
lru_add_drain_all();
@@ -73,7 +73,10 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
current->comm, task_pid_nr(current),
sysctl_drop_caches);
}
- stfu |= sysctl_drop_caches & 4;
+ if (sysctl_drop_caches == 0)
+ stfu = false;
+ else if (sysctl_drop_caches == 4)
+ stfu = true;
}
return 0;
}
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index cb57da499ebb..f2e06e074724 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -2088,7 +2088,7 @@ static const struct ctl_table vm_table[] = {
.maxlen = sizeof(int),
.mode = 0200,
.proc_handler = drop_caches_sysctl_handler,
- .extra1 = SYSCTL_ONE,
+ .extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_FOUR,
},
{
--
2.27.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH] drop_caches: re-enable message after disabling
@ 2025-02-16 10:17 Ruiwu Chen
2025-02-16 17:07 ` Darrick J. Wong
` (3 more replies)
0 siblings, 4 replies; 7+ messages in thread
From: Ruiwu Chen @ 2025-02-16 10:17 UTC (permalink / raw)
To: linux-fsdevel, linux-kernel
Cc: viro, brauner, jack, kees, joel.granados, zachwade.k, Ruiwu Chen
When 'echo 4 > /proc/sys/vm/drop_caches' the message is disabled,
but there is no interface to enable the message, only by restarting
the way, so I want to add the 'echo 0 > /proc/sys/vm/drop_caches'
way to enabled the message again.
Signed-off-by: Ruiwu Chen <rwchen404@gmail.com>
---
fs/drop_caches.c | 7 +++++--
kernel/sysctl.c | 2 +-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/fs/drop_caches.c b/fs/drop_caches.c
index d45ef541d848..c90cfaf9756d 100644
--- a/fs/drop_caches.c
+++ b/fs/drop_caches.c
@@ -57,7 +57,7 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
if (ret)
return ret;
if (write) {
- static int stfu;
+ static bool stfu;
if (sysctl_drop_caches & 1) {
lru_add_drain_all();
@@ -73,7 +73,10 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
current->comm, task_pid_nr(current),
sysctl_drop_caches);
}
- stfu |= sysctl_drop_caches & 4;
+ if (sysctl_drop_caches == 0)
+ stfu = false;
+ else if (sysctl_drop_caches == 4)
+ stfu = true;
}
return 0;
}
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index cb57da499ebb..f2e06e074724 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -2088,7 +2088,7 @@ static const struct ctl_table vm_table[] = {
.maxlen = sizeof(int),
.mode = 0200,
.proc_handler = drop_caches_sysctl_handler,
- .extra1 = SYSCTL_ONE,
+ .extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_FOUR,
},
{
--
2.27.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] drop_caches: re-enable message after disabling
2025-02-16 10:17 [PATCH] drop_caches: re-enable message after disabling Ruiwu Chen
@ 2025-02-16 17:07 ` Darrick J. Wong
2025-02-17 8:28 ` Christian Brauner
` (2 subsequent siblings)
3 siblings, 0 replies; 7+ messages in thread
From: Darrick J. Wong @ 2025-02-16 17:07 UTC (permalink / raw)
To: Ruiwu Chen
Cc: linux-fsdevel, linux-kernel, viro, brauner, jack, kees,
joel.granados, zachwade.k
On Sun, Feb 16, 2025 at 06:17:29PM +0800, Ruiwu Chen wrote:
> When 'echo 4 > /proc/sys/vm/drop_caches' the message is disabled,
> but there is no interface to enable the message, only by restarting
> the way, so I want to add the 'echo 0 > /proc/sys/vm/drop_caches'
> way to enabled the message again.
Please update Documentation/ to note this new API.
--D
> Signed-off-by: Ruiwu Chen <rwchen404@gmail.com>
> ---
> fs/drop_caches.c | 7 +++++--
> kernel/sysctl.c | 2 +-
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/fs/drop_caches.c b/fs/drop_caches.c
> index d45ef541d848..c90cfaf9756d 100644
> --- a/fs/drop_caches.c
> +++ b/fs/drop_caches.c
> @@ -57,7 +57,7 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
> if (ret)
> return ret;
> if (write) {
> - static int stfu;
> + static bool stfu;
>
> if (sysctl_drop_caches & 1) {
> lru_add_drain_all();
> @@ -73,7 +73,10 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
> current->comm, task_pid_nr(current),
> sysctl_drop_caches);
> }
> - stfu |= sysctl_drop_caches & 4;
> + if (sysctl_drop_caches == 0)
> + stfu = false;
> + else if (sysctl_drop_caches == 4)
> + stfu = true;
> }
> return 0;
> }
> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> index cb57da499ebb..f2e06e074724 100644
> --- a/kernel/sysctl.c
> +++ b/kernel/sysctl.c
> @@ -2088,7 +2088,7 @@ static const struct ctl_table vm_table[] = {
> .maxlen = sizeof(int),
> .mode = 0200,
> .proc_handler = drop_caches_sysctl_handler,
> - .extra1 = SYSCTL_ONE,
> + .extra1 = SYSCTL_ZERO,
> .extra2 = SYSCTL_FOUR,
> },
> {
> --
> 2.27.0
>
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] drop_caches: re-enable message after disabling
2025-02-16 10:17 [PATCH] drop_caches: re-enable message after disabling Ruiwu Chen
2025-02-16 17:07 ` Darrick J. Wong
@ 2025-02-17 8:28 ` Christian Brauner
2025-02-20 13:18 ` [PATCH v2] " Ruiwu Chen
2025-02-21 8:52 ` [PATCH] " Joel Granados
3 siblings, 0 replies; 7+ messages in thread
From: Christian Brauner @ 2025-02-17 8:28 UTC (permalink / raw)
To: Ruiwu Chen
Cc: linux-fsdevel, linux-kernel, viro, jack, kees, joel.granados,
zachwade.k
On Sun, Feb 16, 2025 at 06:17:29PM +0800, Ruiwu Chen wrote:
> When 'echo 4 > /proc/sys/vm/drop_caches' the message is disabled,
> but there is no interface to enable the message, only by restarting
> the way, so I want to add the 'echo 0 > /proc/sys/vm/drop_caches'
> way to enabled the message again.
>
> Signed-off-by: Ruiwu Chen <rwchen404@gmail.com>
> ---
> fs/drop_caches.c | 7 +++++--
> kernel/sysctl.c | 2 +-
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/fs/drop_caches.c b/fs/drop_caches.c
> index d45ef541d848..c90cfaf9756d 100644
> --- a/fs/drop_caches.c
> +++ b/fs/drop_caches.c
> @@ -57,7 +57,7 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
> if (ret)
> return ret;
> if (write) {
> - static int stfu;
> + static bool stfu;
Please the change and change that to something explicitly like "silent".
>
> if (sysctl_drop_caches & 1) {
> lru_add_drain_all();
> @@ -73,7 +73,10 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
> current->comm, task_pid_nr(current),
> sysctl_drop_caches);
> }
> - stfu |= sysctl_drop_caches & 4;
> + if (sysctl_drop_caches == 0)
> + stfu = false;
> + else if (sysctl_drop_caches == 4)
> + stfu = true;
> }
> return 0;
> }
> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> index cb57da499ebb..f2e06e074724 100644
> --- a/kernel/sysctl.c
> +++ b/kernel/sysctl.c
> @@ -2088,7 +2088,7 @@ static const struct ctl_table vm_table[] = {
> .maxlen = sizeof(int),
> .mode = 0200,
> .proc_handler = drop_caches_sysctl_handler,
> - .extra1 = SYSCTL_ONE,
> + .extra1 = SYSCTL_ZERO,
> .extra2 = SYSCTL_FOUR,
> },
> {
> --
> 2.27.0
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v2] drop_caches: re-enable message after disabling
2025-02-16 10:17 [PATCH] drop_caches: re-enable message after disabling Ruiwu Chen
2025-02-16 17:07 ` Darrick J. Wong
2025-02-17 8:28 ` Christian Brauner
@ 2025-02-20 13:18 ` Ruiwu Chen
2025-02-21 8:52 ` [PATCH] " Joel Granados
3 siblings, 0 replies; 7+ messages in thread
From: Ruiwu Chen @ 2025-02-20 13:18 UTC (permalink / raw)
To: linux-kernel, linux-fsdevel, linux-doc
Cc: corbet, viro, mcgrof, keescook, zachwade.k, Ruiwu Chen
When 'echo 4 > /proc/sys/vm/drop_caches' the message is disabled,
but there is no interface to enable the message, only by restarting
the way, so I want to add the 'echo 0 > /proc/sys/vm/drop_caches'
way to enabled the message again.
Signed-off-by: Ruiwu Chen <rwchen404@gmail.com>
---
v2: - updated Documentation/ to note this new API.
- renamed the variable.
Documentation/admin-guide/sysctl/vm.rst | 11 ++++++++++-
fs/drop_caches.c | 9 ++++++---
kernel/sysctl.c | 2 +-
3 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/Documentation/admin-guide/sysctl/vm.rst b/Documentation/admin-guide/sysctl/vm.rst
index f48eaa98d22d..1b9ae9bc6cf9 100644
--- a/Documentation/admin-guide/sysctl/vm.rst
+++ b/Documentation/admin-guide/sysctl/vm.rst
@@ -266,7 +266,16 @@ used::
cat (1234): drop_caches: 3
These are informational only. They do not mean that anything is wrong
-with your system. To disable them, echo 4 (bit 2) into drop_caches.
+with your system.
+
+To disable informational::
+
+ echo 4 > /proc/sys/vm/drop_caches
+
+To enable informational::
+
+ echo 0 > /proc/sys/vm/drop_caches
+
enable_soft_offline
===================
diff --git a/fs/drop_caches.c b/fs/drop_caches.c
index d45ef541d848..5d02c1d99d9f 100644
--- a/fs/drop_caches.c
+++ b/fs/drop_caches.c
@@ -57,7 +57,7 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
if (ret)
return ret;
if (write) {
- static int stfu;
+ static bool silent;
if (sysctl_drop_caches & 1) {
lru_add_drain_all();
@@ -68,12 +68,15 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
drop_slab();
count_vm_event(DROP_SLAB);
}
- if (!stfu) {
+ if (!silent) {
pr_info("%s (%d): drop_caches: %d\n",
current->comm, task_pid_nr(current),
sysctl_drop_caches);
}
- stfu |= sysctl_drop_caches & 4;
+ if (sysctl_drop_caches == 0)
+ silent = false;
+ else if (sysctl_drop_caches == 4)
+ silent = true;
}
return 0;
}
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index cb57da499ebb..f2e06e074724 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -2088,7 +2088,7 @@ static const struct ctl_table vm_table[] = {
.maxlen = sizeof(int),
.mode = 0200,
.proc_handler = drop_caches_sysctl_handler,
- .extra1 = SYSCTL_ONE,
+ .extra1 = SYSCTL_ZERO,
.extra2 = SYSCTL_FOUR,
},
{
--
2.27.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] drop_caches: re-enable message after disabling
2025-02-16 10:05 Ruiwu Chen
@ 2025-02-21 8:50 ` Joel Granados
0 siblings, 0 replies; 7+ messages in thread
From: Joel Granados @ 2025-02-21 8:50 UTC (permalink / raw)
To: Ruiwu Chen; +Cc: linux-fsdevel, linux-kernel, viro, brauner, jack, kees
On Sun, Feb 16, 2025 at 06:05:14PM +0800, Ruiwu Chen wrote:
> When 'echo 4 > /proc/sys/vm/drop_caches' the message is disabled,
> but there is no interface to enable the message, only by restarting
> the way, so I want to add the 'echo 0 > /proc/sys/vm/drop_caches'
> way to enabled the message again.
>
> Signed-off-by: Ruiwu Chen <rwchen404@gmail.com>
> ---
> fs/drop_caches.c | 7 +++++--
> kernel/sysctl.c | 2 +-
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/fs/drop_caches.c b/fs/drop_caches.c
> index d45ef541d848..c90cfaf9756d 100644
> --- a/fs/drop_caches.c
> +++ b/fs/drop_caches.c
> @@ -57,7 +57,7 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
> if (ret)
> return ret;
> if (write) {
> - static int stfu;
> + static bool stfu;
>
> if (sysctl_drop_caches & 1) {
> lru_add_drain_all();
> @@ -73,7 +73,10 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
> current->comm, task_pid_nr(current),
> sysctl_drop_caches);
> }
> - stfu |= sysctl_drop_caches & 4;
> + if (sysctl_drop_caches == 0)
> + stfu = false;
> + else if (sysctl_drop_caches == 4)
> + stfu = true;
> }
> return 0;
> }
> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> index cb57da499ebb..f2e06e074724 100644
> --- a/kernel/sysctl.c
> +++ b/kernel/sysctl.c
> @@ -2088,7 +2088,7 @@ static const struct ctl_table vm_table[] = {
> .maxlen = sizeof(int),
> .mode = 0200,
> .proc_handler = drop_caches_sysctl_handler,
> - .extra1 = SYSCTL_ONE,
> + .extra1 = SYSCTL_ZERO,
> .extra2 = SYSCTL_FOUR,
> },
> {
> --
> 2.27.0
>
All this has changed with Kaixiong's move of the vm_table.
Please rebase this on top of sysctl-next [1] and send a V2
Best
[1] https://git.kernel.org/pub/scm/linux/kernel/git/sysctl/sysctl.git/log/?h=sysctl-next
--
Joel Granados
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] drop_caches: re-enable message after disabling
2025-02-16 10:17 [PATCH] drop_caches: re-enable message after disabling Ruiwu Chen
` (2 preceding siblings ...)
2025-02-20 13:18 ` [PATCH v2] " Ruiwu Chen
@ 2025-02-21 8:52 ` Joel Granados
3 siblings, 0 replies; 7+ messages in thread
From: Joel Granados @ 2025-02-21 8:52 UTC (permalink / raw)
To: Ruiwu Chen
Cc: linux-fsdevel, linux-kernel, viro, brauner, jack, kees,
zachwade.k
On Sun, Feb 16, 2025 at 06:17:29PM +0800, Ruiwu Chen wrote:
> When 'echo 4 > /proc/sys/vm/drop_caches' the message is disabled,
> but there is no interface to enable the message, only by restarting
> the way, so I want to add the 'echo 0 > /proc/sys/vm/drop_caches'
> way to enabled the message again.
>
> Signed-off-by: Ruiwu Chen <rwchen404@gmail.com>
> ---
> fs/drop_caches.c | 7 +++++--
> kernel/sysctl.c | 2 +-
> 2 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/fs/drop_caches.c b/fs/drop_caches.c
> index d45ef541d848..c90cfaf9756d 100644
> --- a/fs/drop_caches.c
> +++ b/fs/drop_caches.c
> @@ -57,7 +57,7 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
> if (ret)
> return ret;
> if (write) {
> - static int stfu;
> + static bool stfu;
>
> if (sysctl_drop_caches & 1) {
> lru_add_drain_all();
> @@ -73,7 +73,10 @@ int drop_caches_sysctl_handler(const struct ctl_table *table, int write,
> current->comm, task_pid_nr(current),
> sysctl_drop_caches);
> }
> - stfu |= sysctl_drop_caches & 4;
> + if (sysctl_drop_caches == 0)
> + stfu = false;
> + else if (sysctl_drop_caches == 4)
> + stfu = true;
> }
> return 0;
> }
> diff --git a/kernel/sysctl.c b/kernel/sysctl.c
> index cb57da499ebb..f2e06e074724 100644
> --- a/kernel/sysctl.c
> +++ b/kernel/sysctl.c
> @@ -2088,7 +2088,7 @@ static const struct ctl_table vm_table[] = {
> .maxlen = sizeof(int),
> .mode = 0200,
> .proc_handler = drop_caches_sysctl_handler,
> - .extra1 = SYSCTL_ONE,
> + .extra1 = SYSCTL_ZERO,
> .extra2 = SYSCTL_FOUR,
note that vm_table will no longer exist in the next version. Please
rebase this on top of sysctl-next
Best
> },
> {
> --
> 2.27.0
>
--
Joel Granados
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2025-02-21 8:52 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-16 10:17 [PATCH] drop_caches: re-enable message after disabling Ruiwu Chen
2025-02-16 17:07 ` Darrick J. Wong
2025-02-17 8:28 ` Christian Brauner
2025-02-20 13:18 ` [PATCH v2] " Ruiwu Chen
2025-02-21 8:52 ` [PATCH] " Joel Granados
-- strict thread matches above, loose matches on Subject: below --
2025-02-16 10:05 Ruiwu Chen
2025-02-21 8:50 ` Joel Granados
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).