From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: lib/test_bpf.c:63:8: warning: Excessive padding in 'struct bpf_test' (11 padding bytes, where 3 is optimal).
Date: Tue, 14 Dec 2021 14:08:22 +0800 [thread overview]
Message-ID: <202112141457.bIIpNh08-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 15031 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Johan Almbladh <johan.almbladh@anyfinetworks.com>
CC: Daniel Borkmann <daniel@iogearbox.net>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5472f14a37421d1bca3dddf33cabd3bd6dbefbbc
commit: c2a228d69cef802cf6bfd773c84f8419d2e2acf9 bpf/tests: Allow different number of runs per test case
date: 3 months ago
:::::: branch date: 8 hours ago
:::::: commit date: 3 months ago
config: x86_64-randconfig-c007-20211202 (https://download.01.org/0day-ci/archive/20211214/202112141457.bIIpNh08-lkp(a)intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 4b553297ef3ee4dc2119d5429adf3072e90fac38)
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/torvalds/linux.git/commit/?id=c2a228d69cef802cf6bfd773c84f8419d2e2acf9
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout c2a228d69cef802cf6bfd773c84f8419d2e2acf9
# save the config file 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 >>)
^
security/keys/trusted-keys/trusted_tpm1.c:59:3: note: '?' condition is true
pr_info("can't alloc %s\n", hash_alg);
^
include/linux/printk.h:519:2: note: expanded from macro 'pr_info'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:446:26: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^
include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
__printk_index_emit(_fmt, NULL, NULL); \
^
include/linux/printk.h:379:12: note: expanded from macro '__printk_index_emit'
.fmt = __builtin_constant_p(_fmt) ? (_fmt) : NULL, \
^
security/keys/trusted-keys/trusted_tpm1.c:59:3: note: '?' condition is true
pr_info("can't alloc %s\n", hash_alg);
^
include/linux/printk.h:519:2: note: expanded from macro 'pr_info'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:446:26: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^
include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
__printk_index_emit(_fmt, NULL, NULL); \
^
include/linux/printk.h:383:14: note: expanded from macro '__printk_index_emit'
.level = __builtin_constant_p(_level) ? (_level) : NULL, \
^
security/keys/trusted-keys/trusted_tpm1.c:59:3: note: Loop condition is false. Exiting loop
pr_info("can't alloc %s\n", hash_alg);
^
include/linux/printk.h:519:2: note: expanded from macro 'pr_info'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:446:26: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^
include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
__printk_index_emit(_fmt, NULL, NULL); \
^
include/linux/printk.h:369:2: note: expanded from macro '__printk_index_emit'
do { \
^
security/keys/trusted-keys/trusted_tpm1.c:490:8: note: Returned allocated memory
ret = TSS_sha1(td->xorwork, SHA1_DIGEST_SIZE * 2, td->xorhash);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
security/keys/trusted-keys/trusted_tpm1.c:491:6: note: Assuming 'ret' is >= 0
if (ret < 0)
^~~~~~~
security/keys/trusted-keys/trusted_tpm1.c:491:2: note: Taking false branch
if (ret < 0)
^
security/keys/trusted-keys/trusted_tpm1.c:495:6: note: Assuming 'ret' is >= 0
if (ret < 0)
^~~~~~~
security/keys/trusted-keys/trusted_tpm1.c:495:2: note: Taking false branch
if (ret < 0)
^
security/keys/trusted-keys/trusted_tpm1.c:498:6: note: Potential memory leak
if (ret != TPM_NONCE_SIZE) {
^
Suppressed 5 warnings (5 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.
Suppressed 5 warnings (5 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.
11 warnings generated.
Suppressed 11 warnings (11 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.
11 warnings generated.
Suppressed 11 warnings (11 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.
Suppressed 5 warnings (5 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.
Suppressed 5 warnings (5 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.
Suppressed 5 warnings (5 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.
Suppressed 5 warnings (5 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.
Suppressed 5 warnings (5 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.
Suppressed 5 warnings (5 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.
Suppressed 5 warnings (5 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.
Suppressed 5 warnings (5 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.
12 warnings generated.
>> lib/test_bpf.c:63:8: warning: Excessive padding in 'struct bpf_test' (11 padding bytes, where 3 is optimal).
Optimal fields order:
descr,
fill_helper,
u,
expected_errcode,
stack_depth,
nr_testruns,
test,
aux,
data,
frag_data,
consider reordering the fields or adding explicit padding members [clang-analyzer-optin.performance.Padding]
struct bpf_test {
~~~~~~~^~~~~~~~~~
lib/test_bpf.c:63:8: note: Excessive padding in 'struct bpf_test' (11 padding bytes, where 3 is optimal). Optimal fields order: descr, fill_helper, u, expected_errcode, stack_depth, nr_testruns, test, aux, data, frag_data, consider reordering the fields or adding explicit padding members
struct bpf_test {
~~~~~~~^~~~~~~~~~
lib/test_bpf.c:8593:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
return fp;
^
lib/test_bpf.c:9242:6: note: Assuming 'ret' is >= 0
if (ret < 0)
^~~~~~~
lib/test_bpf.c:9242:2: note: Taking false branch
if (ret < 0)
^
lib/test_bpf.c:9245:8: note: Calling 'test_bpf'
ret = test_bpf();
^~~~~~~~~~
lib/test_bpf.c:8953:2: note: Loop condition is true. Entering loop body
for (i = 0; i < ARRAY_SIZE(tests); i++) {
^
lib/test_bpf.c:8958:3: note: Taking false branch
if (exclude_test(i))
^
lib/test_bpf.c:8961:3: note: Left side of '&&' is true
pr_info("#%d %s ", i, tests[i].descr);
^
include/linux/printk.h:519:2: note: expanded from macro 'pr_info'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:446:26: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^
include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
__printk_index_emit(_fmt, NULL, NULL); \
^
include/linux/printk.h:370:7: note: expanded from macro '__printk_index_emit'
if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \
^
lib/test_bpf.c:8961:3: note: Taking true branch
pr_info("#%d %s ", i, tests[i].descr);
^
include/linux/printk.h:519:2: note: expanded from macro 'pr_info'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:446:26: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^
include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
__printk_index_emit(_fmt, NULL, NULL); \
^
include/linux/printk.h:370:3: note: expanded from macro '__printk_index_emit'
if (__builtin_constant_p(_fmt) && __builtin_constant_p(_level)) { \
^
lib/test_bpf.c:8961:3: note: '?' condition is true
pr_info("#%d %s ", i, tests[i].descr);
^
include/linux/printk.h:519:2: note: expanded from macro 'pr_info'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:446:26: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^
include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
__printk_index_emit(_fmt, NULL, NULL); \
^
include/linux/printk.h:379:12: note: expanded from macro '__printk_index_emit'
.fmt = __builtin_constant_p(_fmt) ? (_fmt) : NULL, \
^
lib/test_bpf.c:8961:3: note: '?' condition is true
pr_info("#%d %s ", i, tests[i].descr);
^
include/linux/printk.h:519:2: note: expanded from macro 'pr_info'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
^
include/linux/printk.h:446:26: note: expanded from macro 'printk'
#define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
^
include/linux/printk.h:417:3: note: expanded from macro 'printk_index_wrap'
__printk_index_emit(_fmt, NULL, NULL); \
^
include/linux/printk.h:383:14: note: expanded from macro '__printk_index_emit'
.level = __builtin_constant_p(_level) ? (_level) : NULL, \
^
lib/test_bpf.c:8961:3: note: Loop condition is false. Exiting loop
pr_info("#%d %s ", i, tests[i].descr);
^
include/linux/printk.h:519:2: note: expanded from macro 'pr_info'
printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
vim +63 lib/test_bpf.c
10f18e0ba1ea7e Daniel Borkmann 2014-05-23 62
64a8946b447e41 Alexei Starovoitov 2014-05-08 @63 struct bpf_test {
64a8946b447e41 Alexei Starovoitov 2014-05-08 64 const char *descr;
64a8946b447e41 Alexei Starovoitov 2014-05-08 65 union {
64a8946b447e41 Alexei Starovoitov 2014-05-08 66 struct sock_filter insns[MAX_INSNS];
2695fb552cbef1 Alexei Starovoitov 2014-07-24 67 struct bpf_insn insns_int[MAX_INSNS];
a4afd37b26f4b9 Daniel Borkmann 2015-05-13 68 struct {
a4afd37b26f4b9 Daniel Borkmann 2015-05-13 69 void *insns;
a4afd37b26f4b9 Daniel Borkmann 2015-05-13 70 unsigned int len;
a4afd37b26f4b9 Daniel Borkmann 2015-05-13 71 } ptr;
ece80490e2c1ce Andrew Morton 2014-05-22 72 } u;
10f18e0ba1ea7e Daniel Borkmann 2014-05-23 73 __u8 aux;
64a8946b447e41 Alexei Starovoitov 2014-05-08 74 __u8 data[MAX_DATA];
64a8946b447e41 Alexei Starovoitov 2014-05-08 75 struct {
64a8946b447e41 Alexei Starovoitov 2014-05-08 76 int data_size;
64a8946b447e41 Alexei Starovoitov 2014-05-08 77 __u32 result;
64a8946b447e41 Alexei Starovoitov 2014-05-08 78 } test[MAX_SUBTESTS];
a4afd37b26f4b9 Daniel Borkmann 2015-05-13 79 int (*fill_helper)(struct bpf_test *self);
09584b40674241 Yonghong Song 2018-02-02 80 int expected_errcode; /* used when FLAG_EXPECTED_FAIL is set in the aux */
bac142acb90e95 Nicolas Schichan 2015-08-04 81 __u8 frag_data[MAX_DATA];
105c03614bff2d Alexei Starovoitov 2017-05-30 82 int stack_depth; /* for eBPF only, since tests don't call verifier */
c2a228d69cef80 Johan Almbladh 2021-09-14 83 int nr_testruns; /* Custom run count, defaults to MAX_TESTRUNS if 0 */
64a8946b447e41 Alexei Starovoitov 2014-05-08 84 };
64a8946b447e41 Alexei Starovoitov 2014-05-08 85
:::::: The code@line 63 was first introduced by commit
:::::: 64a8946b447e418b4283c3573ef397980cca0cd8 net: filter: BPF testsuite
:::::: TO: Alexei Starovoitov <ast@plumgrid.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
next reply other threads:[~2021-12-14 6:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-14 6:08 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-12-19 7:06 lib/test_bpf.c:63:8: warning: Excessive padding in 'struct bpf_test' (11 padding bytes, where 3 is optimal) kernel test robot
2022-03-14 11:29 kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202112141457.bIIpNh08-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.