* [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.