[akpm-mm:mm-unstable 36/78] test_memcontrol.c:201:6: warning: variable 'fd4_closed' is used uninitialized whenever 'if' condition is true

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable
head:   b39b3892d20a337489c55806f91af581474f3943
commit: f2db5cca8182337f4ad485ebfd532b1a2d1c223a [36/78] mm, memcg: cg2 memory{.swap,}.peak write tests
:::::: branch date: 2 days ago
:::::: commit date: 3 days ago
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240727/202407272301.bBC2CidR-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/r/202407272301.bBC2CidR-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> test_memcontrol.c:201:6: warning: variable 'fd4_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     201 |         if (peak_fd == -1)
         |             ^~~~~~~~~~~~~
   test_memcontrol.c:283:7: note: uninitialized use occurs here
     283 |         if (!fd4_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:201:2: note: remove the 'if' if its condition is always false
     201 |         if (peak_fd == -1)
         |         ^~~~~~~~~~~~~~~~~~
     202 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:191:6: warning: variable 'fd4_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     191 |         if (peak < MB(50))
         |             ^~~~~~~~~~~~~
   test_memcontrol.c:283:7: note: uninitialized use occurs here
     283 |         if (!fd4_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:191:2: note: remove the 'if' if its condition is always false
     191 |         if (peak < MB(50))
         |         ^~~~~~~~~~~~~~~~~~
     192 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:187:6: warning: variable 'fd4_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     187 |         if (cg_run(memcg, alloc_anon_50M_check, NULL))
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   test_memcontrol.c:283:7: note: uninitialized use occurs here
     283 |         if (!fd4_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:187:2: note: remove the 'if' if its condition is always false
     187 |         if (cg_run(memcg, alloc_anon_50M_check, NULL))
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     188 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:184:6: warning: variable 'fd4_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     184 |         if (peak != 0)
         |             ^~~~~~~~~
   test_memcontrol.c:283:7: note: uninitialized use occurs here
     283 |         if (!fd4_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:184:2: note: remove the 'if' if its condition is always false
     184 |         if (peak != 0)
         |         ^~~~~~~~~~~~~~
     185 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:180:6: warning: variable 'fd4_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     180 |         if (current != 0)
         |             ^~~~~~~~~~~~
   test_memcontrol.c:283:7: note: uninitialized use occurs here
     283 |         if (!fd4_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:180:2: note: remove the 'if' if its condition is always false
     180 |         if (current != 0)
         |         ^~~~~~~~~~~~~~~~~
     181 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:176:6: warning: variable 'fd4_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     176 |         if (cg_create(memcg))
         |             ^~~~~~~~~~~~~~~~
   test_memcontrol.c:283:7: note: uninitialized use occurs here
     283 |         if (!fd4_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:176:2: note: remove the 'if' if its condition is always false
     176 |         if (cg_create(memcg))
         |         ^~~~~~~~~~~~~~~~~~~~~
     177 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:173:6: warning: variable 'fd4_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     173 |         if (!memcg)
         |             ^~~~~~
   test_memcontrol.c:283:7: note: uninitialized use occurs here
     283 |         if (!fd4_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:173:2: note: remove the 'if' if its condition is always false
     173 |         if (!memcg)
         |         ^~~~~~~~~~~
     174 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:204:2: note: variable 'fd4_closed' is declared here
     204 |         bool fd2_closed = false, fd3_closed = false, fd4_closed = false;
         |         ^
   /opt/cross/clang-617a15a9ea/lib/clang/18/include/stdbool.h:20:14: note: expanded from macro 'bool'
      20 | #define bool _Bool
         |              ^
>> test_memcontrol.c:201:6: warning: variable 'fd3_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     201 |         if (peak_fd == -1)
         |             ^~~~~~~~~~~~~
   test_memcontrol.c:281:7: note: uninitialized use occurs here
     281 |         if (!fd3_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:201:2: note: remove the 'if' if its condition is always false
     201 |         if (peak_fd == -1)
         |         ^~~~~~~~~~~~~~~~~~
     202 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:191:6: warning: variable 'fd3_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     191 |         if (peak < MB(50))
         |             ^~~~~~~~~~~~~
   test_memcontrol.c:281:7: note: uninitialized use occurs here
     281 |         if (!fd3_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:191:2: note: remove the 'if' if its condition is always false
     191 |         if (peak < MB(50))
         |         ^~~~~~~~~~~~~~~~~~
     192 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:187:6: warning: variable 'fd3_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     187 |         if (cg_run(memcg, alloc_anon_50M_check, NULL))
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   test_memcontrol.c:281:7: note: uninitialized use occurs here
     281 |         if (!fd3_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:187:2: note: remove the 'if' if its condition is always false
     187 |         if (cg_run(memcg, alloc_anon_50M_check, NULL))
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     188 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:184:6: warning: variable 'fd3_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     184 |         if (peak != 0)
         |             ^~~~~~~~~
   test_memcontrol.c:281:7: note: uninitialized use occurs here
     281 |         if (!fd3_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:184:2: note: remove the 'if' if its condition is always false
     184 |         if (peak != 0)
         |         ^~~~~~~~~~~~~~
     185 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:180:6: warning: variable 'fd3_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     180 |         if (current != 0)
         |             ^~~~~~~~~~~~
   test_memcontrol.c:281:7: note: uninitialized use occurs here
     281 |         if (!fd3_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:180:2: note: remove the 'if' if its condition is always false
     180 |         if (current != 0)
         |         ^~~~~~~~~~~~~~~~~
     181 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:176:6: warning: variable 'fd3_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     176 |         if (cg_create(memcg))
         |             ^~~~~~~~~~~~~~~~
   test_memcontrol.c:281:7: note: uninitialized use occurs here
     281 |         if (!fd3_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:176:2: note: remove the 'if' if its condition is always false
     176 |         if (cg_create(memcg))
         |         ^~~~~~~~~~~~~~~~~~~~~
     177 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:173:6: warning: variable 'fd3_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     173 |         if (!memcg)
         |             ^~~~~~
   test_memcontrol.c:281:7: note: uninitialized use occurs here
     281 |         if (!fd3_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:173:2: note: remove the 'if' if its condition is always false
     173 |         if (!memcg)
         |         ^~~~~~~~~~~
     174 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:204:2: note: variable 'fd3_closed' is declared here
     204 |         bool fd2_closed = false, fd3_closed = false, fd4_closed = false;
         |         ^
   /opt/cross/clang-617a15a9ea/lib/clang/18/include/stdbool.h:20:14: note: expanded from macro 'bool'
      20 | #define bool _Bool
         |              ^
>> test_memcontrol.c:191:6: warning: variable 'peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     191 |         if (peak < MB(50))
         |             ^~~~~~~~~~~~~
   test_memcontrol.c:278:8: note: uninitialized use occurs here
     278 |         close(peak_fd);
         |               ^~~~~~~
   test_memcontrol.c:191:2: note: remove the 'if' if its condition is always false
     191 |         if (peak < MB(50))
         |         ^~~~~~~~~~~~~~~~~~
     192 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:187:6: warning: variable 'peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     187 |         if (cg_run(memcg, alloc_anon_50M_check, NULL))
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   test_memcontrol.c:278:8: note: uninitialized use occurs here
     278 |         close(peak_fd);
         |               ^~~~~~~
   test_memcontrol.c:187:2: note: remove the 'if' if its condition is always false
     187 |         if (cg_run(memcg, alloc_anon_50M_check, NULL))
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     188 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:184:6: warning: variable 'peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     184 |         if (peak != 0)
         |             ^~~~~~~~~
   test_memcontrol.c:278:8: note: uninitialized use occurs here
     278 |         close(peak_fd);
         |               ^~~~~~~
   test_memcontrol.c:184:2: note: remove the 'if' if its condition is always false
     184 |         if (peak != 0)
         |         ^~~~~~~~~~~~~~
     185 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:180:6: warning: variable 'peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     180 |         if (current != 0)
         |             ^~~~~~~~~~~~
   test_memcontrol.c:278:8: note: uninitialized use occurs here
     278 |         close(peak_fd);
         |               ^~~~~~~
   test_memcontrol.c:180:2: note: remove the 'if' if its condition is always false
     180 |         if (current != 0)
         |         ^~~~~~~~~~~~~~~~~
     181 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:176:6: warning: variable 'peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     176 |         if (cg_create(memcg))
         |             ^~~~~~~~~~~~~~~~
   test_memcontrol.c:278:8: note: uninitialized use occurs here
     278 |         close(peak_fd);
         |               ^~~~~~~
   test_memcontrol.c:176:2: note: remove the 'if' if its condition is always false
     176 |         if (cg_create(memcg))
         |         ^~~~~~~~~~~~~~~~~~~~~
     177 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:173:6: warning: variable 'peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     173 |         if (!memcg)
         |             ^~~~~~
   test_memcontrol.c:278:8: note: uninitialized use occurs here
     278 |         close(peak_fd);
         |               ^~~~~~~
   test_memcontrol.c:173:2: note: remove the 'if' if its condition is always false
     173 |         if (!memcg)
         |         ^~~~~~~~~~~
     174 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:199:2: note: variable 'peak_fd' is declared here
     199 |         int peak_fd = cg_open(memcg, "memory.peak", O_RDWR | O_APPEND | O_CLOEXEC);
         |         ^
>> test_memcontrol.c:201:6: warning: variable 'fd2_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     201 |         if (peak_fd == -1)
         |             ^~~~~~~~~~~~~
   test_memcontrol.c:279:7: note: uninitialized use occurs here
     279 |         if (!fd2_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:201:2: note: remove the 'if' if its condition is always false
     201 |         if (peak_fd == -1)
         |         ^~~~~~~~~~~~~~~~~~
     202 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:191:6: warning: variable 'fd2_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     191 |         if (peak < MB(50))
         |             ^~~~~~~~~~~~~
   test_memcontrol.c:279:7: note: uninitialized use occurs here
     279 |         if (!fd2_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:191:2: note: remove the 'if' if its condition is always false
     191 |         if (peak < MB(50))
         |         ^~~~~~~~~~~~~~~~~~
     192 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:187:6: warning: variable 'fd2_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     187 |         if (cg_run(memcg, alloc_anon_50M_check, NULL))
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   test_memcontrol.c:279:7: note: uninitialized use occurs here
     279 |         if (!fd2_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:187:2: note: remove the 'if' if its condition is always false
     187 |         if (cg_run(memcg, alloc_anon_50M_check, NULL))
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     188 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:184:6: warning: variable 'fd2_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     184 |         if (peak != 0)
         |             ^~~~~~~~~
   test_memcontrol.c:279:7: note: uninitialized use occurs here
     279 |         if (!fd2_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:184:2: note: remove the 'if' if its condition is always false
     184 |         if (peak != 0)
         |         ^~~~~~~~~~~~~~
     185 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:180:6: warning: variable 'fd2_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     180 |         if (current != 0)
         |             ^~~~~~~~~~~~
   test_memcontrol.c:279:7: note: uninitialized use occurs here
     279 |         if (!fd2_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:180:2: note: remove the 'if' if its condition is always false
     180 |         if (current != 0)
         |         ^~~~~~~~~~~~~~~~~
     181 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:176:6: warning: variable 'fd2_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     176 |         if (cg_create(memcg))
         |             ^~~~~~~~~~~~~~~~
   test_memcontrol.c:279:7: note: uninitialized use occurs here
     279 |         if (!fd2_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:176:2: note: remove the 'if' if its condition is always false
     176 |         if (cg_create(memcg))
         |         ^~~~~~~~~~~~~~~~~~~~~
     177 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:173:6: warning: variable 'fd2_closed' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     173 |         if (!memcg)
         |             ^~~~~~
   test_memcontrol.c:279:7: note: uninitialized use occurs here
     279 |         if (!fd2_closed)
         |              ^~~~~~~~~~
   test_memcontrol.c:173:2: note: remove the 'if' if its condition is always false
     173 |         if (!memcg)
         |         ^~~~~~~~~~~
     174 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:204:2: note: variable 'fd2_closed' is declared here
     204 |         bool fd2_closed = false, fd3_closed = false, fd4_closed = false;
         |         ^
   /opt/cross/clang-617a15a9ea/lib/clang/18/include/stdbool.h:20:14: note: expanded from macro 'bool'
      20 | #define bool _Bool
         |              ^
>> test_memcontrol.c:934:6: warning: variable 'swap_peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     934 |         if (cg_read_long(memcg, "memory.swap.current")) {
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   test_memcontrol.c:1083:12: note: uninitialized use occurs here
    1083 |         if (close(swap_peak_fd))
         |                   ^~~~~~~~~~~~
   test_memcontrol.c:934:2: note: remove the 'if' if its condition is always false
     934 |         if (cg_read_long(memcg, "memory.swap.current")) {
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     935 |                 ret = KSFT_SKIP;
         |                 ~~~~~~~~~~~~~~~~
     936 |                 goto cleanup;
         |                 ~~~~~~~~~~~~~
     937 |         }
         |         ~
   test_memcontrol.c:931:6: warning: variable 'swap_peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     931 |         if (cg_create(memcg))
         |             ^~~~~~~~~~~~~~~~
   test_memcontrol.c:1083:12: note: uninitialized use occurs here
    1083 |         if (close(swap_peak_fd))
         |                   ^~~~~~~~~~~~
   test_memcontrol.c:931:2: note: remove the 'if' if its condition is always false
     931 |         if (cg_create(memcg))
         |         ^~~~~~~~~~~~~~~~~~~~~
     932 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:928:6: warning: variable 'swap_peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     928 |         if (!memcg)
         |             ^~~~~~
   test_memcontrol.c:1083:12: note: uninitialized use occurs here
    1083 |         if (close(swap_peak_fd))
         |                   ^~~~~~~~~~~~
   test_memcontrol.c:928:2: note: remove the 'if' if its condition is always false
     928 |         if (!memcg)
         |         ^~~~~~~~~~~
     929 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:939:2: note: variable 'swap_peak_fd' is declared here
     939 |         int swap_peak_fd = cg_open(memcg, "memory.swap.peak",
         |         ^
>> test_memcontrol.c:942:6: warning: variable 'mem_peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     942 |         if (swap_peak_fd == -1)
         |             ^~~~~~~~~~~~~~~~~~
   test_memcontrol.c:1081:12: note: uninitialized use occurs here
    1081 |         if (close(mem_peak_fd))
         |                   ^~~~~~~~~~~
   test_memcontrol.c:942:2: note: remove the 'if' if its condition is always false
     942 |         if (swap_peak_fd == -1)
         |         ^~~~~~~~~~~~~~~~~~~~~~~
     943 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:934:6: warning: variable 'mem_peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     934 |         if (cg_read_long(memcg, "memory.swap.current")) {
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   test_memcontrol.c:1081:12: note: uninitialized use occurs here
    1081 |         if (close(mem_peak_fd))
         |                   ^~~~~~~~~~~
   test_memcontrol.c:934:2: note: remove the 'if' if its condition is always false
     934 |         if (cg_read_long(memcg, "memory.swap.current")) {
         |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
     935 |                 ret = KSFT_SKIP;
         |                 ~~~~~~~~~~~~~~~~
     936 |                 goto cleanup;
         |                 ~~~~~~~~~~~~~
     937 |         }
         |         ~
   test_memcontrol.c:931:6: warning: variable 'mem_peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     931 |         if (cg_create(memcg))
         |             ^~~~~~~~~~~~~~~~
   test_memcontrol.c:1081:12: note: uninitialized use occurs here
    1081 |         if (close(mem_peak_fd))
         |                   ^~~~~~~~~~~
   test_memcontrol.c:931:2: note: remove the 'if' if its condition is always false
     931 |         if (cg_create(memcg))
         |         ^~~~~~~~~~~~~~~~~~~~~
     932 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:928:6: warning: variable 'mem_peak_fd' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
     928 |         if (!memcg)
         |             ^~~~~~
   test_memcontrol.c:1081:12: note: uninitialized use occurs here
    1081 |         if (close(mem_peak_fd))
         |                   ^~~~~~~~~~~
   test_memcontrol.c:928:2: note: remove the 'if' if its condition is always false
     928 |         if (!memcg)
         |         ^~~~~~~~~~~
     929 |                 goto cleanup;
         |                 ~~~~~~~~~~~~
   test_memcontrol.c:945:2: note: variable 'mem_peak_fd' is declared here
     945 |         int mem_peak_fd = cg_open(memcg, "memory.peak", O_RDWR | O_APPEND | O_CLOEXEC);
         |         ^
   34 warnings generated.


vim +201 tools/testing/selftests/cgroup/test_memcontrol.c

84092dbcf90176 Roman Gushchin 2018-05-11  160  
84092dbcf90176 Roman Gushchin 2018-05-11  161  /*
84092dbcf90176 Roman Gushchin 2018-05-11  162   * This test create a memory cgroup, allocates
84092dbcf90176 Roman Gushchin 2018-05-11  163   * some anonymous memory and some pagecache
f2db5cca818233 David Finkel   2024-07-24  164   * and checks memory.current, memory.peak, and some memory.stat values.
84092dbcf90176 Roman Gushchin 2018-05-11  165   */
f2db5cca818233 David Finkel   2024-07-24  166  static int test_memcg_current_peak(const char *root)
84092dbcf90176 Roman Gushchin 2018-05-11  167  {
84092dbcf90176 Roman Gushchin 2018-05-11  168  	int ret = KSFT_FAIL;
f2db5cca818233 David Finkel   2024-07-24  169  	long current, peak, peak_reset;
84092dbcf90176 Roman Gushchin 2018-05-11  170  	char *memcg;
84092dbcf90176 Roman Gushchin 2018-05-11  171  
84092dbcf90176 Roman Gushchin 2018-05-11  172  	memcg = cg_name(root, "memcg_test");
84092dbcf90176 Roman Gushchin 2018-05-11  173  	if (!memcg)
84092dbcf90176 Roman Gushchin 2018-05-11  174  		goto cleanup;
84092dbcf90176 Roman Gushchin 2018-05-11  175  
84092dbcf90176 Roman Gushchin 2018-05-11  176  	if (cg_create(memcg))
84092dbcf90176 Roman Gushchin 2018-05-11  177  		goto cleanup;
84092dbcf90176 Roman Gushchin 2018-05-11  178  
84092dbcf90176 Roman Gushchin 2018-05-11  179  	current = cg_read_long(memcg, "memory.current");
84092dbcf90176 Roman Gushchin 2018-05-11  180  	if (current != 0)
84092dbcf90176 Roman Gushchin 2018-05-11  181  		goto cleanup;
84092dbcf90176 Roman Gushchin 2018-05-11  182  
f2db5cca818233 David Finkel   2024-07-24  183  	peak = cg_read_long(memcg, "memory.peak");
f2db5cca818233 David Finkel   2024-07-24  184  	if (peak != 0)
f2db5cca818233 David Finkel   2024-07-24  185  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  186  
84092dbcf90176 Roman Gushchin 2018-05-11  187  	if (cg_run(memcg, alloc_anon_50M_check, NULL))
84092dbcf90176 Roman Gushchin 2018-05-11  188  		goto cleanup;
84092dbcf90176 Roman Gushchin 2018-05-11  189  
f2db5cca818233 David Finkel   2024-07-24  190  	peak = cg_read_long(memcg, "memory.peak");
f2db5cca818233 David Finkel   2024-07-24  191  	if (peak < MB(50))
f2db5cca818233 David Finkel   2024-07-24  192  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  193  
f2db5cca818233 David Finkel   2024-07-24  194  	/*
f2db5cca818233 David Finkel   2024-07-24  195  	 * We'll open a few FDs for the same memory.peak file to exercise the free-path
f2db5cca818233 David Finkel   2024-07-24  196  	 * We need at least three to be closed in a different order than writes occurred to test
f2db5cca818233 David Finkel   2024-07-24  197  	 * the linked-list handling.
f2db5cca818233 David Finkel   2024-07-24  198  	 */
f2db5cca818233 David Finkel   2024-07-24  199  	int peak_fd = cg_open(memcg, "memory.peak", O_RDWR | O_APPEND | O_CLOEXEC);
f2db5cca818233 David Finkel   2024-07-24  200  
f2db5cca818233 David Finkel   2024-07-24 @201  	if (peak_fd == -1)
f2db5cca818233 David Finkel   2024-07-24  202  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  203  
f2db5cca818233 David Finkel   2024-07-24  204  	bool fd2_closed = false, fd3_closed = false, fd4_closed = false;
f2db5cca818233 David Finkel   2024-07-24  205  	int peak_fd2 = cg_open(memcg, "memory.peak", O_RDWR | O_APPEND | O_CLOEXEC);
f2db5cca818233 David Finkel   2024-07-24  206  
f2db5cca818233 David Finkel   2024-07-24  207  	if (peak_fd2 == -1)
f2db5cca818233 David Finkel   2024-07-24  208  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  209  
f2db5cca818233 David Finkel   2024-07-24  210  	int peak_fd3 = cg_open(memcg, "memory.peak", O_RDWR | O_APPEND | O_CLOEXEC);
f2db5cca818233 David Finkel   2024-07-24  211  
f2db5cca818233 David Finkel   2024-07-24  212  	if (peak_fd3 == -1)
f2db5cca818233 David Finkel   2024-07-24  213  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  214  
f2db5cca818233 David Finkel   2024-07-24  215  	static const char reset_string[] = "reset\n";
f2db5cca818233 David Finkel   2024-07-24  216  
f2db5cca818233 David Finkel   2024-07-24  217  	peak_reset = write(peak_fd, reset_string, sizeof(reset_string));
f2db5cca818233 David Finkel   2024-07-24  218  	if (peak_reset != sizeof(reset_string))
f2db5cca818233 David Finkel   2024-07-24  219  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  220  
f2db5cca818233 David Finkel   2024-07-24  221  	peak_reset = write(peak_fd2, reset_string, sizeof(reset_string));
f2db5cca818233 David Finkel   2024-07-24  222  	if (peak_reset != sizeof(reset_string))
f2db5cca818233 David Finkel   2024-07-24  223  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  224  
f2db5cca818233 David Finkel   2024-07-24  225  	peak_reset = write(peak_fd3, reset_string, sizeof(reset_string));
f2db5cca818233 David Finkel   2024-07-24  226  	if (peak_reset != sizeof(reset_string))
f2db5cca818233 David Finkel   2024-07-24  227  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  228  
f2db5cca818233 David Finkel   2024-07-24  229  	/* Make sure a completely independent read isn't affected by our  FD-local reset above*/
f2db5cca818233 David Finkel   2024-07-24  230  	peak = cg_read_long(memcg, "memory.peak");
f2db5cca818233 David Finkel   2024-07-24  231  	if (peak < MB(50))
f2db5cca818233 David Finkel   2024-07-24  232  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  233  
f2db5cca818233 David Finkel   2024-07-24  234  	fd2_closed = true;
f2db5cca818233 David Finkel   2024-07-24  235  	if (close(peak_fd2))
f2db5cca818233 David Finkel   2024-07-24  236  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  237  
f2db5cca818233 David Finkel   2024-07-24  238  	int peak_fd4 = cg_open(memcg, "memory.peak", O_RDWR | O_APPEND | O_CLOEXEC);
f2db5cca818233 David Finkel   2024-07-24  239  
f2db5cca818233 David Finkel   2024-07-24  240  	if (peak_fd4 == -1)
f2db5cca818233 David Finkel   2024-07-24  241  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  242  
f2db5cca818233 David Finkel   2024-07-24  243  	peak_reset = write(peak_fd4, reset_string, sizeof(reset_string));
f2db5cca818233 David Finkel   2024-07-24  244  	if (peak_reset != sizeof(reset_string))
f2db5cca818233 David Finkel   2024-07-24  245  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  246  
f2db5cca818233 David Finkel   2024-07-24  247  	peak = cg_read_long_fd(peak_fd);
f2db5cca818233 David Finkel   2024-07-24  248  	if (peak > MB(30) || peak < 0)
f2db5cca818233 David Finkel   2024-07-24  249  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  250  
84092dbcf90176 Roman Gushchin 2018-05-11  251  	if (cg_run(memcg, alloc_pagecache_50M_check, NULL))
84092dbcf90176 Roman Gushchin 2018-05-11  252  		goto cleanup;
84092dbcf90176 Roman Gushchin 2018-05-11  253  
f2db5cca818233 David Finkel   2024-07-24  254  	peak = cg_read_long(memcg, "memory.peak");
f2db5cca818233 David Finkel   2024-07-24  255  	if (peak < MB(50))
f2db5cca818233 David Finkel   2024-07-24  256  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  257  
f2db5cca818233 David Finkel   2024-07-24  258  	/* Make sure everything is back to normal */
f2db5cca818233 David Finkel   2024-07-24  259  	peak = cg_read_long_fd(peak_fd);
f2db5cca818233 David Finkel   2024-07-24  260  	if (peak < MB(50))
f2db5cca818233 David Finkel   2024-07-24  261  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  262  
f2db5cca818233 David Finkel   2024-07-24  263  	peak = cg_read_long_fd(peak_fd4);
f2db5cca818233 David Finkel   2024-07-24  264  	if (peak < MB(50))
f2db5cca818233 David Finkel   2024-07-24  265  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  266  
f2db5cca818233 David Finkel   2024-07-24  267  	fd3_closed = true;
f2db5cca818233 David Finkel   2024-07-24  268  	if (close(peak_fd3))
f2db5cca818233 David Finkel   2024-07-24  269  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  270  
f2db5cca818233 David Finkel   2024-07-24  271  	fd4_closed = true;
f2db5cca818233 David Finkel   2024-07-24  272  	if (close(peak_fd4))
f2db5cca818233 David Finkel   2024-07-24  273  		goto cleanup;
f2db5cca818233 David Finkel   2024-07-24  274  
84092dbcf90176 Roman Gushchin 2018-05-11  275  	ret = KSFT_PASS;
84092dbcf90176 Roman Gushchin 2018-05-11  276  
84092dbcf90176 Roman Gushchin 2018-05-11  277  cleanup:
f2db5cca818233 David Finkel   2024-07-24  278  	close(peak_fd);
f2db5cca818233 David Finkel   2024-07-24  279  	if (!fd2_closed)
f2db5cca818233 David Finkel   2024-07-24  280  		close(peak_fd2);
f2db5cca818233 David Finkel   2024-07-24  281  	if (!fd3_closed)
f2db5cca818233 David Finkel   2024-07-24  282  		close(peak_fd3);
f2db5cca818233 David Finkel   2024-07-24  283  	if (!fd4_closed)
f2db5cca818233 David Finkel   2024-07-24  284  		close(peak_fd4);
84092dbcf90176 Roman Gushchin 2018-05-11  285  	cg_destroy(memcg);
84092dbcf90176 Roman Gushchin 2018-05-11  286  	free(memcg);
84092dbcf90176 Roman Gushchin 2018-05-11  287  
84092dbcf90176 Roman Gushchin 2018-05-11  288  	return ret;
84092dbcf90176 Roman Gushchin 2018-05-11  289  }
84092dbcf90176 Roman Gushchin 2018-05-11  290  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki





[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux