public inbox for ltp@lists.linux.it
 help / color / mirror / Atom feed
* [LTP] [PATCH 1/1] lib: Skip tst_{disable, enable}_oom_protection() for non-root
@ 2021-12-21 19:35 Petr Vorel
  2021-12-22  2:25 ` xuyang2018.jy
  0 siblings, 1 reply; 16+ messages in thread
From: Petr Vorel @ 2021-12-21 19:35 UTC (permalink / raw)
  To: ltp; +Cc: Richard Palethorpe

If needed to set value also for non-root, use set_oom_score_adj().

Fixes: 8a0827766d ("lib: add functions to adjust oom score")

Signed-off-by: Petr Vorel <pvorel@suse.cz>
---
 include/tst_memutils.h | 11 ++++++++++-
 lib/tst_memutils.c     |  6 ++++++
 2 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/include/tst_memutils.h b/include/tst_memutils.h
index 68a6e37714..e6f946ac0c 100644
--- a/include/tst_memutils.h
+++ b/include/tst_memutils.h
@@ -30,11 +30,15 @@ long long tst_available_mem(void);
  *   echo -1000 >/proc/$PID/oom_score_adj
  * If the pid is 0 which means it will set on current(self) process.
  *
+ * WARNING:
+ *  Do nothing for non-root, because setting value < 0 requires root.
+    If you want to set value also for non-root, use set_oom_score_adj().
+ *
  * Note:
  *  This exported tst_enable_oom_protection function can be used at anywhere
  *  you want to protect, but please remember that if you do enable protection
  *  on a process($PID) that all the children will inherit its score and be
- *  ignored by OOM Killer as well. So that's why tst_disable_oom_protection
+ *  ignored by OOM Killer as well. So that's why tst_disable_oom_protection()
  *  to be used in combination.
  */
 void tst_enable_oom_protection(pid_t pid);
@@ -42,6 +46,11 @@ void tst_enable_oom_protection(pid_t pid);
 /*
  * Disable the OOM protection for the process($PID).
  *   echo 0 >/proc/$PID/oom_score_adj
+ *
+ * WARNING:
+ *  Do nothing for non-root, because it's expected to be cleanup after
+ *  tst_enable_oom_protection(). Use set_oom_score_adj(), if you want to set
+ *  value also for non-root.
  */
 void tst_disable_oom_protection(pid_t pid);
 
diff --git a/lib/tst_memutils.c b/lib/tst_memutils.c
index 4346508d9a..f0695e026a 100644
--- a/lib/tst_memutils.c
+++ b/lib/tst_memutils.c
@@ -126,10 +126,16 @@ static void set_oom_score_adj(pid_t pid, int value)
 
 void tst_enable_oom_protection(pid_t pid)
 {
+	if (geteuid() != 0)
+		return;
+
 	set_oom_score_adj(pid, -1000);
 }
 
 void tst_disable_oom_protection(pid_t pid)
 {
+	if (geteuid() != 0)
+		return;
+
 	set_oom_score_adj(pid, 0);
 }
-- 
2.34.1


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2021-12-22 11:33 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-12-21 19:35 [LTP] [PATCH 1/1] lib: Skip tst_{disable, enable}_oom_protection() for non-root Petr Vorel
2021-12-22  2:25 ` xuyang2018.jy
2021-12-22  3:32   ` Li Wang
2021-12-22  6:05     ` xuyang2018.jy
2021-12-22  8:14       ` Petr Vorel
2021-12-22  8:37         ` xuyang2018.jy
2021-12-22  9:48           ` Li Wang
2021-12-22 10:09             ` Cyril Hrubis
2021-12-22 10:24               ` Petr Vorel
2021-12-22 10:40                 ` Cyril Hrubis
2021-12-22 10:48                   ` Petr Vorel
2021-12-22 11:29                     ` Li Wang
2021-12-22 11:32                       ` Li Wang
2021-12-22 11:25                   ` Li Wang
2021-12-22 10:38           ` Petr Vorel
2021-12-22  8:06     ` Petr Vorel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox