CC: l...@lists.linux.dev
CC: kbuild-...@lists.01.org
BCC: l...@intel.com
In-Reply-To: <20220520235138.3140590-1-josh...@google.com>
References: <20220520235138.3140590-1-josh...@google.com>
TO: Josh Don <josh...@google.com>
TO: Ingo Molnar <mi...@redhat.com>
TO: Peter Zijlstra <pet...@infradead.org>
TO: Juri Lelli <juri.le...@redhat.com>
TO: Vincent Guittot <vincent.guit...@linaro.org>
TO: Tejun Heo <t...@kernel.org>
CC: Dietmar Eggemann <dietmar.eggem...@arm.com>
CC: Steven Rostedt <rost...@goodmis.org>
CC: Ben Segall <bseg...@google.com>
CC: Mel Gorman <mgor...@suse.de>
CC: Daniel Bristot de Oliveira <bris...@redhat.com>
CC: Valentin Schneider <vschn...@redhat.com>
CC: linux-ker...@vger.kernel.org
CC: Cruz Zhao <cruzz...@linux.alibaba.com>
CC: Josh Don <josh...@google.com>

Hi Josh,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on tj-cgroup/for-next]
[also build test WARNING on tip/sched/core tip/master v5.18-rc7 next-20220520]
[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]

url:    
https://github.com/intel-lab-lkp/linux/commits/Josh-Don/sched-core-add-forced-idle-accounting-for-cgroups/20220521-075311
base:   https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-next
:::::: branch date: 31 hours ago
:::::: commit date: 31 hours ago
config: x86_64-randconfig-c007 
(https://download.01.org/0day-ci/archive/20220522/202205221414.pmwthuwy-...@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
b369762beb70dfef22c7e793aed79b94d7dc0757)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # 
https://github.com/intel-lab-lkp/linux/commit/0575a42c9f10cda618b09b949cc42fe97abea479
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review 
Josh-Don/sched-core-add-forced-idle-accounting-for-cgroups/20220521-075311
        git checkout 0575a42c9f10cda618b09b949cc42fe97abea479
        # save the config file
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 
clang-analyzer 

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <l...@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
           __underlying_##op(p, q, __fortify_size);                        \
           ^~~~~~~~~~~~~~~~~
   note: expanded from here
   include/linux/fortify-string.h:45:29: note: expanded from macro 
'__underlying_memcpy'
   #define __underlying_memcpy     __builtin_memcpy
                                   ^~~~~~~~~~~~~~~~
   fs/ntfs3/inode.c:1394:3: note: Call to function 'memcpy' is insecure as it 
does not provide security checks introduced in the C11 standard. Replace with 
analogous functions that support length arguments or provides boundary checks 
such as 'memcpy_s' in case of C11
                   memcpy(Add2Ptr(attr, SIZEOF_RESIDENT), I30_NAME,
                   ^
   include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy'
   #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:362:2: note: expanded from macro 
'__fortify_memcpy_chk'
           __underlying_##op(p, q, __fortify_size);                        \
           ^~~~~~~~~~~~~~~~~
   note: expanded from here
   include/linux/fortify-string.h:45:29: note: expanded from macro 
'__underlying_memcpy'
   #define __underlying_memcpy     __builtin_memcpy
                                   ^~~~~~~~~~~~~~~~
   fs/ntfs3/inode.c:1398:3: warning: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   memcpy(root, dir_root, offsetof(struct INDEX_ROOT, ihdr));
                   ^
   include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy'
   #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:362:2: note: expanded from macro 
'__fortify_memcpy_chk'
           __underlying_##op(p, q, __fortify_size);                        \
           ^~~~~~~~~~~~~~~~~
   note: expanded from here
   include/linux/fortify-string.h:45:29: note: expanded from macro 
'__underlying_memcpy'
   #define __underlying_memcpy     __builtin_memcpy
                                   ^~~~~~~~~~~~~~~~
   fs/ntfs3/inode.c:1398:3: note: Call to function 'memcpy' is insecure as it 
does not provide security checks introduced in the C11 standard. Replace with 
analogous functions that support length arguments or provides boundary checks 
such as 'memcpy_s' in case of C11
                   memcpy(root, dir_root, offsetof(struct INDEX_ROOT, ihdr));
                   ^
   include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy'
   #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:362:2: note: expanded from macro 
'__fortify_memcpy_chk'
           __underlying_##op(p, q, __fortify_size);                        \
           ^~~~~~~~~~~~~~~~~
   note: expanded from here
   include/linux/fortify-string.h:45:29: note: expanded from macro 
'__underlying_memcpy'
   #define __underlying_memcpy     __builtin_memcpy
                                   ^~~~~~~~~~~~~~~~
   fs/ntfs3/inode.c:1526:4: warning: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                           memcpy(Add2Ptr(attr, SIZEOF_RESIDENT), rp, nsize);
                           ^
   include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy'
   #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:362:2: note: expanded from macro 
'__fortify_memcpy_chk'
           __underlying_##op(p, q, __fortify_size);                        \
           ^~~~~~~~~~~~~~~~~
   note: expanded from here
   include/linux/fortify-string.h:45:29: note: expanded from macro 
'__underlying_memcpy'
   #define __underlying_memcpy     __builtin_memcpy
                                   ^~~~~~~~~~~~~~~~
   fs/ntfs3/inode.c:1526:4: note: Call to function 'memcpy' is insecure as it 
does not provide security checks introduced in the C11 standard. Replace with 
analogous functions that support length arguments or provides boundary checks 
such as 'memcpy_s' in case of C11
                           memcpy(Add2Ptr(attr, SIZEOF_RESIDENT), rp, nsize);
                           ^
   include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy'
   #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:362:2: note: expanded from macro 
'__fortify_memcpy_chk'
           __underlying_##op(p, q, __fortify_size);                        \
           ^~~~~~~~~~~~~~~~~
   note: expanded from here
   include/linux/fortify-string.h:45:29: note: expanded from macro 
'__underlying_memcpy'
   #define __underlying_memcpy     __builtin_memcpy
                                   ^~~~~~~~~~~~~~~~
   fs/ntfs3/inode.c:1862:3: warning: Call to function 'memcpy' is insecure as 
it does not provide security checks introduced in the C11 standard. Replace 
with analogous functions that support length arguments or provides boundary 
checks such as 'memcpy_s' in case of C11 
[clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling]
                   memcpy(buffer, "OneDrive", err);
                   ^
   include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy'
   #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:362:2: note: expanded from macro 
'__fortify_memcpy_chk'
           __underlying_##op(p, q, __fortify_size);                        \
           ^~~~~~~~~~~~~~~~~
   note: expanded from here
   include/linux/fortify-string.h:45:29: note: expanded from macro 
'__underlying_memcpy'
   #define __underlying_memcpy     __builtin_memcpy
                                   ^~~~~~~~~~~~~~~~
   fs/ntfs3/inode.c:1862:3: note: Call to function 'memcpy' is insecure as it 
does not provide security checks introduced in the C11 standard. Replace with 
analogous functions that support length arguments or provides boundary checks 
such as 'memcpy_s' in case of C11
                   memcpy(buffer, "OneDrive", err);
                   ^
   include/linux/fortify-string.h:369:26: note: expanded from macro 'memcpy'
   #define memcpy(p, q, s)  __fortify_memcpy_chk(p, q, s,                  \
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/fortify-string.h:362:2: note: expanded from macro 
'__fortify_memcpy_chk'
           __underlying_##op(p, q, __fortify_size);                        \
           ^~~~~~~~~~~~~~~~~
   note: expanded from here
   include/linux/fortify-string.h:45:29: note: expanded from macro 
'__underlying_memcpy'
   #define __underlying_memcpy     __builtin_memcpy
                                   ^~~~~~~~~~~~~~~~
   Suppressed 47 warnings (47 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   38 warnings generated.
>> kernel/cgroup/rstat.c:455:24: warning: The left expression of the compound 
>> assignment is an uninitialized value. The computed value will also be 
>> garbage [clang-analyzer-core.uninitialized.Assign]
                   bstat->forceidle_sum += cpustat[CPUTIME_FORCEIDLE];
                                        ^
   kernel/cgroup/rstat.c:467:2: note: Taking false branch
           if (cgroup_parent(cgrp)) {
           ^
   kernel/cgroup/rstat.c:477:3: note: Calling 'root_cgroup_cputime'
                   root_cgroup_cputime(&bstat);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/cgroup/rstat.c:433:2: note: Assuming 'i' is < 'nr_cpu_ids'
           for_each_possible_cpu(i) {
           ^
   include/linux/cpumask.h:814:36: note: expanded from macro 
'for_each_possible_cpu'
   #define for_each_possible_cpu(cpu) for_each_cpu((cpu), cpu_possible_mask)
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/cpumask.h:278:3: note: expanded from macro 'for_each_cpu'
                   (cpu) < nr_cpu_ids;)
                   ^~~~~~~~~~~~~~~~~~
   kernel/cgroup/rstat.c:433:2: note: Loop condition is true.  Entering loop 
body
           for_each_possible_cpu(i) {
           ^
   include/linux/cpumask.h:814:36: note: expanded from macro 
'for_each_possible_cpu'
   #define for_each_possible_cpu(cpu) for_each_cpu((cpu), cpu_possible_mask)
                                      ^
   include/linux/cpumask.h:276:2: note: expanded from macro 'for_each_cpu'
           for ((cpu) = -1;                                \
           ^
   kernel/cgroup/rstat.c:455:24: note: The left expression of the compound 
assignment is an uninitialized value. The computed value will also be garbage
                   bstat->forceidle_sum += cpustat[CPUTIME_FORCEIDLE];
                   ~~~~~~~~~~~~~~~~~~~~ ^
>> kernel/cgroup/rstat.c:482:18: warning: Assigned value is garbage or 
>> undefined [clang-analyzer-core.uninitialized.Assign]
                   forceidle_time = bstat.forceidle_sum;
                                  ^ ~~~~~~~~~~~~~~~~~~~
   kernel/cgroup/rstat.c:467:2: note: Taking false branch
           if (cgroup_parent(cgrp)) {
           ^
   kernel/cgroup/rstat.c:477:3: note: Calling 'root_cgroup_cputime'
                   root_cgroup_cputime(&bstat);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/cgroup/rstat.c:433:2: note: Assuming 'i' is >= 'nr_cpu_ids'
           for_each_possible_cpu(i) {
           ^
   include/linux/cpumask.h:814:36: note: expanded from macro 
'for_each_possible_cpu'
   #define for_each_possible_cpu(cpu) for_each_cpu((cpu), cpu_possible_mask)
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/cpumask.h:278:3: note: expanded from macro 'for_each_cpu'
                   (cpu) < nr_cpu_ids;)
                   ^~~~~~~~~~~~~~~~~~
   kernel/cgroup/rstat.c:433:2: note: Loop condition is false. Execution 
continues on line 433
           for_each_possible_cpu(i) {
           ^
   include/linux/cpumask.h:814:36: note: expanded from macro 
'for_each_possible_cpu'
   #define for_each_possible_cpu(cpu) for_each_cpu((cpu), cpu_possible_mask)
                                      ^
   include/linux/cpumask.h:276:2: note: expanded from macro 'for_each_cpu'
           for ((cpu) = -1;                                \
           ^
   kernel/cgroup/rstat.c:458:1: note: Returning without writing to 
'bstat->forceidle_sum'
   }
   ^
   kernel/cgroup/rstat.c:477:3: note: Returning from 'root_cgroup_cputime'
                   root_cgroup_cputime(&bstat);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/cgroup/rstat.c:482:18: note: Assigned value is garbage or undefined
                   forceidle_time = bstat.forceidle_sum;
                                  ^ ~~~~~~~~~~~~~~~~~~~
   Suppressed 36 warnings (36 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   25 warnings generated.
   Suppressed 25 warnings (25 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   25 warnings generated.
   Suppressed 25 warnings (25 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   25 warnings generated.
   Suppressed 25 warnings (25 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   26 warnings generated.
   Suppressed 26 warnings (26 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   47 warnings generated.
   drivers/iio/adc/ad7606.c:660:9: warning: Called function pointer is null 
(null dereference) [clang-analyzer-core.CallAndMessage]
                   ret = st->bops->sw_mode_config(indio_dev);
                         ^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/adc/ad7606.c:575:6: note: Assuming 'indio_dev' is non-null
           if (!indio_dev)
               ^~~~~~~~~~
   drivers/iio/adc/ad7606.c:575:2: note: Taking false branch
           if (!indio_dev)
           ^
   drivers/iio/adc/ad7606.c:582:2: note: Loop condition is false.  Exiting loop
           mutex_init(&st->lock);
           ^
   include/linux/mutex.h:101:32: note: expanded from macro 'mutex_init'
   #define mutex_init(mutex)                                               \
                                                                           ^
   drivers/iio/adc/ad7606.c:592:2: note: Taking false branch
           if (IS_ERR(st->reg))
           ^
   drivers/iio/adc/ad7606.c:596:6: note: Assuming 'ret' is 0
           if (ret) {
               ^~~
   drivers/iio/adc/ad7606.c:596:2: note: Taking false branch
           if (ret) {
           ^
   drivers/iio/adc/ad7606.c:601:8: note: Calling 'devm_add_action_or_reset'
           ret = devm_add_action_or_reset(dev, ad7606_regulator_disable, st);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/device.h:255:6: note: Assuming 'ret' is 0, which participates 
in a condition later
           if (ret)
               ^~~
   include/linux/device.h:255:2: note: Taking false branch
           if (ret)
           ^
   include/linux/device.h:258:2: note: Returning zero (loaded from 'ret'), 
which participates in a condition later
           return ret;
           ^~~~~~~~~~
   drivers/iio/adc/ad7606.c:601:8: note: Returning from 
'devm_add_action_or_reset'
           ret = devm_add_action_or_reset(dev, ad7606_regulator_disable, st);
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/adc/ad7606.c:602:6: note: 'ret' is 0
           if (ret)
               ^~~
   drivers/iio/adc/ad7606.c:602:2: note: Taking false branch
           if (ret)
           ^
   drivers/iio/adc/ad7606.c:607:6: note: Assuming field 'oversampling_num' is 0
           if (st->chip_info->oversampling_num) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/iio/adc/ad7606.c:607:2: note: Taking false branch
           if (st->chip_info->oversampling_num) {

vim +455 kernel/cgroup/rstat.c

041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  418  
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  419  /*
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  420   * compute 
the cputime for the root cgroup by getting the per cpu data
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  421   * at a 
global level, then categorizing the fields in a manner consistent
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  422   * with how 
it is done by __cgroup_account_cputime_field for each bit of
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  423   * cpu time 
attributed to a cgroup.
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  424   */
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  425  static void 
root_cgroup_cputime(struct cgroup_base_stat *bstat)
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  426  {
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  427       struct 
task_cputime *cputime = &bstat->cputime;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  428       int i;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  429  
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  430       
cputime->stime = 0;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  431       
cputime->utime = 0;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  432       
cputime->sum_exec_runtime = 0;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  433       
for_each_possible_cpu(i) {
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  434               
struct kernel_cpustat kcpustat;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  435               
u64 *cpustat = kcpustat.cpustat;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  436               
u64 user = 0;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  437               
u64 sys = 0;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  438  
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  439               
kcpustat_cpu_fetch(&kcpustat, i);
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  440  
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  441               
user += cpustat[CPUTIME_USER];
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  442               
user += cpustat[CPUTIME_NICE];
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  443               
cputime->utime += user;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  444  
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  445               
sys += cpustat[CPUTIME_SYSTEM];
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  446               
sys += cpustat[CPUTIME_IRQ];
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  447               
sys += cpustat[CPUTIME_SOFTIRQ];
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  448               
cputime->stime += sys;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  449  
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  450               
cputime->sum_exec_runtime += user;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  451               
cputime->sum_exec_runtime += sys;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  452               
cputime->sum_exec_runtime += cpustat[CPUTIME_STEAL];
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  453  
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  454  #ifdef 
CONFIG_SCHED_CORE
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20 @455               
bstat->forceidle_sum += cpustat[CPUTIME_FORCEIDLE];
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  456  #endif
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  457       }
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  458  }
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  459  
d4ff749b5e0f1e kernel/cgroup/rstat.c Tejun Heo    2018-04-26  460  void 
cgroup_base_stat_cputime_show(struct seq_file *seq)
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  461  {
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  462       struct 
cgroup *cgrp = seq_css(seq)->cgroup;
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  463       u64 
usage, utime, stime;
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  464       struct 
cgroup_base_stat bstat;
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  465       u64 
__maybe_unused forceidle_time;
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  466  
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  467       if 
(cgroup_parent(cgrp)) {
6162cef0f741c7 kernel/cgroup/rstat.c Tejun Heo    2018-04-26  468               
cgroup_rstat_flush_hold(cgrp);
d4ff749b5e0f1e kernel/cgroup/rstat.c Tejun Heo    2018-04-26  469               
usage = cgrp->bstat.cputime.sum_exec_runtime;
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  470               
cputime_adjust(&cgrp->bstat.cputime, &cgrp->prev_cputime,
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  471               
               &utime, &stime);
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  472  #ifdef 
CONFIG_SCHED_CORE
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  473               
forceidle_time = cgrp->bstat.forceidle_sum;
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  474  #endif
6162cef0f741c7 kernel/cgroup/rstat.c Tejun Heo    2018-04-26  475               
cgroup_rstat_flush_release();
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  476       } else {
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  477               
root_cgroup_cputime(&bstat);
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  478               
usage = bstat.cputime.sum_exec_runtime;
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  479               
utime = bstat.cputime.utime;
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  480               
stime = bstat.cputime.stime;
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  481  #ifdef 
CONFIG_SCHED_CORE
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20 @482               
forceidle_time = bstat.forceidle_sum;
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  483  #endif
936f2a70f2077f kernel/cgroup/rstat.c Boris Burkov 2020-05-27  484       }
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  485  
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  486       
do_div(usage, NSEC_PER_USEC);
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  487       
do_div(utime, NSEC_PER_USEC);
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  488       
do_div(stime, NSEC_PER_USEC);
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  489       
do_div(forceidle_time, NSEC_PER_USEC);
041cd640b2f3c5 kernel/cgroup/stat.c  Tejun Heo    2017-09-25  490  
d41bf8c9deaed1 kernel/cgroup/stat.c  Tejun Heo    2017-10-23  491       
seq_printf(seq, "usage_usec %llu\n"
d41bf8c9deaed1 kernel/cgroup/stat.c  Tejun Heo    2017-10-23  492               
   "user_usec %llu\n"
d41bf8c9deaed1 kernel/cgroup/stat.c  Tejun Heo    2017-10-23  493               
   "system_usec %llu\n",
d41bf8c9deaed1 kernel/cgroup/stat.c  Tejun Heo    2017-10-23  494               
   usage, utime, stime);
0575a42c9f10cd kernel/cgroup/rstat.c Josh Don     2022-05-20  495  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to