All of lore.kernel.org
 help / color / mirror / Atom feed
* [bigeasy-staging:seqcount 9/10] net/sched/sch_cbq.c:71:8: warning: Excessive padding in 'struct cbq_class' (34 padding bytes, where 2 is optimal).
@ 2021-10-17  4:44 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-10-17  4:44 UTC (permalink / raw)
  To: kbuild

[-- Attachment #1: Type: text/plain, Size: 12992 bytes --]

CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: "Ahmed S. Darwish" <a.darwish@linutronix.de>
CC: Sebastian Andrzej Siewior <bigeasy@linutronix.de>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/bigeasy/staging.git seqcount
head:   fd72372e8393799668aff0ff2f14078205af6a7c
commit: 5b913e085fbd61d5717f2e3a1c0d410e9d4e02b3 [9/10] net: sched: Merge Qdisc::bstats and Qdisc::cpu_bstats data types
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: x86_64-randconfig-c007-20211016 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 8ca4b3ef19fe82d7ad6a6e1515317dcc01b41515)
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://git.kernel.org/pub/scm/linux/kernel/git/bigeasy/staging.git/commit/?id=5b913e085fbd61d5717f2e3a1c0d410e9d4e02b3
        git remote add bigeasy-staging https://git.kernel.org/pub/scm/linux/kernel/git/bigeasy/staging.git
        git fetch --no-tags bigeasy-staging seqcount
        git checkout 5b913e085fbd61d5717f2e3a1c0d410e9d4e02b3
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


clang-analyzer warnings: (new ones prefixed by >>)
   28 warnings generated.
   32 warnings generated.
   Suppressed 32 warnings (32 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   4 warnings generated.
   8 warnings generated.
   12 warnings generated.
   16 warnings generated.
   20 warnings generated.
   24 warnings generated.
   28 warnings generated.
   32 warnings generated.
   Suppressed 32 warnings (32 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.
   5 warnings generated.
   drivers/mtd/tests/subpagetest.c:130:4: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
                           err = 0;
                           ^     ~
   drivers/mtd/tests/subpagetest.c:130:4: note: Value stored to 'err' is never read
                           err = 0;
                           ^     ~
   Suppressed 4 warnings (4 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.
   4 warnings generated.
   8 warnings generated.
   12 warnings generated.
   16 warnings generated.
   20 warnings generated.
   24 warnings generated.
   28 warnings generated.
   32 warnings generated.
   Suppressed 32 warnings (32 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.
   4 warnings generated.
   Suppressed 4 warnings (4 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.
   5 warnings generated.
   drivers/mtd/nand/onenand/onenand_base.c:884:21: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
           blockpage = (block << 7) | page;
                              ^
   drivers/mtd/nand/onenand/onenand_base.c:2787:9: note: Assuming 'written' is < 'len'
           while (written < len) {
                  ^~~~~~~~~~~~~
   drivers/mtd/nand/onenand/onenand_base.c:2787:2: note: Loop condition is true.  Entering loop body
           while (written < len) {
           ^
   drivers/mtd/nand/onenand/onenand_base.c:2788:17: note: Assuming '__UNIQUE_ID___x235' is >= '__UNIQUE_ID___y236'
                   int thislen = min_t(int, oobsize, len - written);
                                 ^
   include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
   #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^~~~~~~~~~
   drivers/mtd/nand/onenand/onenand_base.c:2788:17: note: '?' condition is false
                   int thislen = min_t(int, oobsize, len - written);
                                 ^
   include/linux/minmax.h:104:27: note: expanded from macro 'min_t'
   #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
                                   ^
   include/linux/minmax.h:38:3: note: expanded from macro '__careful_cmp'
                   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
                   ^
   include/linux/minmax.h:33:3: note: expanded from macro '__cmp_once'
                   __cmp(unique_x, unique_y, op); })
                   ^
   include/linux/minmax.h:28:26: note: expanded from macro '__cmp'
   #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
                            ^
   drivers/mtd/nand/onenand/onenand_base.c:2832:3: note: Calling 'onenand_update_bufferram'
                   onenand_update_bufferram(mtd, to, 0);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mtd/nand/onenand/onenand_base.c:946:2: note: Taking true branch
           if (ONENAND_IS_2PLANE(this))
           ^
   drivers/mtd/nand/onenand/onenand_base.c:947:15: note: Calling 'onenand_get_2x_blockpage'
                   blockpage = onenand_get_2x_blockpage(mtd, addr);
                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mtd/nand/onenand/onenand_base.c:879:2: note: Value assigned to 'block'
           block = (int) (addr >> this->erase_shift) & ~1;
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/mtd/nand/onenand/onenand_base.c:881:2: note: Taking false branch
           if (addr & this->writesize)
           ^
   drivers/mtd/nand/onenand/onenand_base.c:884:21: note: The result of the left shift is undefined because the left operand is negative
           blockpage = (block << 7) | page;
                        ~~~~~ ^
   Suppressed 4 warnings (4 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.
   4 warnings generated.
>> net/sched/sch_cbq.c:71:8: warning: Excessive padding in 'struct cbq_class' (34 padding bytes, where 2 is optimal). 
   Optimal fields order: 
   bstats, 
   next_alive, 
   maxidle, 
   offtime, 
   minidle, 
   R_tab, 
   allot, 
   quantum, 
   weight, 
   qdisc, 
   split, 
   share, 
   tparent, 
   borrow, 
   sibling, 
   children, 
   q, 
   last, 
   undertime, 
   avgidle, 
   deficit, 
   penalized, 
   rate_est, 
   filter_list, 
   block, 
   common, 
   defaults, 
   defmap, 
   avpkt, 
   filters, 
   xstats, 
   qstats, 
   priority, 
   priority2, 
   ewma_log, 
   cpriority, 
   delayed, 
   level, 
   consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
   struct cbq_class {
   ~~~~~~~^~~~~~~~~~~
   net/sched/sch_cbq.c:71:8: note: Excessive padding in 'struct cbq_class' (34 padding bytes, where 2 is optimal). Optimal fields order: bstats, next_alive, maxidle, offtime, minidle, R_tab, allot, quantum, weight, qdisc, split, share, tparent, borrow, sibling, children, q, last, undertime, avgidle, deficit, penalized, rate_est, filter_list, block, common, defaults, defmap, avpkt, filters, xstats, qstats, priority, priority2, ewma_log, cpriority, delayed, level, consider reordering the fields or adding explicit padding members
   struct cbq_class {
   ~~~~~~~^~~~~~~~~~~
   Suppressed 3 warnings (3 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.
   5 warnings generated.
   include/linux/skbuff.h:2048:2: warning: 2nd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
           __skb_insert(newsk, next->prev, next, list);
           ^
   net/sched/sch_sfq.c:607:29: note: Left side of '&&' is false
           struct sfq_sched_data *q = from_timer(q, t, perturb_timer);
                                      ^
   include/linux/timer.h:154:2: note: expanded from macro 'from_timer'
           container_of(callback_timer, typeof(*var), timer_fieldname)
           ^
   include/linux/kernel.h:495:61: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
                                                                      ^
   net/sched/sch_sfq.c:607:29: note: Taking false branch
           struct sfq_sched_data *q = from_timer(q, t, perturb_timer);
                                      ^
   include/linux/timer.h:154:2: note: expanded from macro 'from_timer'
           container_of(callback_timer, typeof(*var), timer_fieldname)
           ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
                   if (!(condition))                                       \
                   ^
   net/sched/sch_sfq.c:607:29: note: Loop condition is false.  Exiting loop
           struct sfq_sched_data *q = from_timer(q, t, perturb_timer);
                                      ^
   include/linux/timer.h:154:2: note: expanded from macro 'from_timer'
           container_of(callback_timer, typeof(*var), timer_fieldname)
           ^
   include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
           BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) &&   \
           ^
   include/linux/build_bug.h:39:37: note: expanded from macro 'BUILD_BUG_ON_MSG'
   #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
                                       ^
   include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
           _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
           ^
   include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
           __compiletime_assert(condition, msg, prefix, suffix)
           ^
   include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'

vim +71 net/sched/sch_cbq.c

^1da177e4c3f41 Linus Torvalds  2005-04-16  69  
^1da177e4c3f41 Linus Torvalds  2005-04-16  70  
cc7ec456f82da7 Eric Dumazet    2011-01-19 @71  struct cbq_class {
d77fea2eb92068 Patrick McHardy 2008-07-05  72  	struct Qdisc_class_common common;
^1da177e4c3f41 Linus Torvalds  2005-04-16  73  	struct cbq_class	*next_alive;	/* next class with backlog in this priority band */
^1da177e4c3f41 Linus Torvalds  2005-04-16  74  

:::::: The code at line 71 was first introduced by commit
:::::: cc7ec456f82da7f89a5b376e613b3ac4311b3e9a net_sched: cleanups

:::::: TO: Eric Dumazet <eric.dumazet@gmail.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 32686 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-10-17  4:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-17  4:44 [bigeasy-staging:seqcount 9/10] net/sched/sch_cbq.c:71:8: warning: Excessive padding in 'struct cbq_class' (34 padding bytes, where 2 is optimal) kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.