[PATCH v2.1 1/1] kernel/cgroup: Add "dmem" memory accounting cgroup

kernel test robot lkp at intel.com
Wed Dec 4 21:00:57 UTC 2024


Hi Maarten,

kernel test robot noticed the following build warnings:

[auto build test WARNING on tj-cgroup/for-next]
[also build test WARNING on akpm-mm/mm-everything linus/master v6.13-rc1 next-20241204]
[cannot apply to drm-misc/drm-misc-next drm-tip/drm-tip]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Maarten-Lankhorst/kernel-cgroup-Add-dmem-memory-accounting-cgroup/20241204-233207
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next
patch link:    https://lore.kernel.org/r/20241204143112.1250983-1-dev%40lankhorst.se
patch subject: [PATCH v2.1 1/1] kernel/cgroup: Add "dmem" memory accounting cgroup
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20241205/202412050415.jf4sa0gH-lkp@intel.com/config)
compiler: sh4-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241205/202412050415.jf4sa0gH-lkp@intel.com/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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412050415.jf4sa0gH-lkp@intel.com/

All warnings (new ones prefixed by >>):

   kernel/cgroup/dmem.c: In function 'dmem_cgroup_state_evict_valuable':
>> kernel/cgroup/dmem.c:302:30: warning: variable 'climit' set but not used [-Wunused-but-set-variable]
     302 |         struct page_counter *climit, *ctest;
         |                              ^~~~~~
--
>> kernel/cgroup/dmem.c:300: warning: Excess function parameter 'dev' description in 'dmem_cgroup_state_evict_valuable'
>> kernel/cgroup/dmem.c:300: warning: Excess function parameter 'index' description in 'dmem_cgroup_state_evict_valuable'
>> kernel/cgroup/dmem.c:635: warning: Function parameter or struct member 'region' not described in 'dmem_cgroup_try_charge'
>> kernel/cgroup/dmem.c:635: warning: Excess function parameter 'dev' description in 'dmem_cgroup_try_charge'


vim +/climit +302 kernel/cgroup/dmem.c

   280	
   281	/**
   282	 * dmem_cgroup_state_evict_valuable() - Check if we should evict from test_pool
   283	 * @dev: &dmem_cgroup_region
   284	 * @index: The index number of the region being tested.
   285	 * @limit_pool: The pool for which we hit limits
   286	 * @test_pool: The pool for which to test
   287	 * @ignore_low: Whether we have to respect low watermarks.
   288	 * @ret_hit_low: Pointer to whether it makes sense to consider low watermark.
   289	 *
   290	 * This function returns true if we can evict from @test_pool, false if not.
   291	 * When returning false and @ignore_low is false, @ret_hit_low may
   292	 * be set to true to indicate this function can be retried with @ignore_low
   293	 * set to true.
   294	 *
   295	 * Return: bool
   296	 */
   297	bool dmem_cgroup_state_evict_valuable(struct dmem_cgroup_pool_state *limit_pool,
   298					      struct dmem_cgroup_pool_state *test_pool,
   299					      bool ignore_low, bool *ret_hit_low)
 > 300	{
   301		struct dmem_cgroup_pool_state *pool = test_pool;
 > 302		struct page_counter *climit, *ctest;
   303		u64 used, min, low;
   304	
   305		/* Can always evict from current pool, despite limits */
   306		if (limit_pool == test_pool)
   307			return true;
   308	
   309		if (limit_pool) {
   310			if (!parent_dmemcs(limit_pool->cs))
   311				return true;
   312	
   313			for (pool = test_pool; pool && limit_pool != pool; pool = pool_parent(pool))
   314				{}
   315	
   316			if (!pool)
   317				return false;
   318		} else {
   319			/*
   320			 * If there is no cgroup limiting memory usage, use the root
   321			 * cgroup instead for limit calculations.
   322			 */
   323			for (limit_pool = test_pool; pool_parent(limit_pool); limit_pool = pool_parent(limit_pool))
   324				{}
   325		}
   326	
   327		climit = &limit_pool->cnt;
   328		ctest = &test_pool->cnt;
   329	
   330		dmem_cgroup_calculate_protection(limit_pool, test_pool);
   331	
   332		used = page_counter_read(ctest);
   333		min = READ_ONCE(ctest->emin);
   334	
   335		if (used <= min)
   336			return false;
   337	
   338		if (!ignore_low) {
   339			low = READ_ONCE(ctest->elow);
   340			if (used > low)
   341				return true;
   342	
   343			*ret_hit_low = true;
   344			return false;
   345		}
   346		return true;
   347	}
   348	EXPORT_SYMBOL_GPL(dmem_cgroup_state_evict_valuable);
   349	

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


More information about the Intel-xe mailing list