From: kernel test robot <lkp@intel.com>
To: Justin Iurman <justin.iurman@uliege.be>, netdev@vger.kernel.org
Cc: kbuild-all@lists.01.org, davem@davemloft.net, justin.iurman@uliege.be
Subject: Re: [PATCH net-next 3/5] ipv6: ioam: Data plane support for Pre-allocated Trace
Date: Thu, 25 Jun 2020 05:37:27 +0800 [thread overview]
Message-ID: <202006250501.CZ3RyUCN%lkp@intel.com> (raw)
In-Reply-To: <20200624192310.16923-4-justin.iurman@uliege.be>
[-- Attachment #1: Type: text/plain, Size: 7932 bytes --]
Hi Justin,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
url: https://github.com/0day-ci/linux/commits/Justin-Iurman/Data-plane-support-for-IOAM-Pre-allocated-Trace-with-IPv6/20200625-033536
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 0558c396040734bc1d361919566a581fd41aa539
config: um-allmodconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce (this is a W=1 build):
# save the attached .config to linux build tree
make W=1 ARCH=um
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
cc1: warning: arch/um/include/uapi: No such file or directory [-Wmissing-include-dirs]
In file included from include/linux/uaccess.h:11,
from include/linux/sched/task.h:11,
from include/linux/sched/signal.h:9,
from include/linux/rcuwait.h:6,
from include/linux/percpu-rwsem.h:7,
from include/linux/fs.h:33,
from include/linux/net.h:23,
from net/ipv6/ioam6.c:12:
arch/um/include/asm/uaccess.h: In function '__access_ok':
arch/um/include/asm/uaccess.h:17:29: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
17 | (((unsigned long) (addr) >= FIXADDR_USER_START) && \
| ^~
arch/um/include/asm/uaccess.h:45:3: note: in expansion of macro '__access_ok_vsyscall'
45 | __access_ok_vsyscall(addr, size) ||
| ^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/kernel.h:11,
from net/ipv6/ioam6.c:11:
include/asm-generic/fixmap.h: In function 'fix_to_virt':
include/asm-generic/fixmap.h:32:19: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
32 | BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
| ^~
include/linux/compiler.h:372:9: note: in definition of macro '__compiletime_assert'
372 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler.h:392:2: note: in expansion of macro '_compiletime_assert'
392 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
include/asm-generic/fixmap.h:32:2: note: in expansion of macro 'BUILD_BUG_ON'
32 | BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
| ^~~~~~~~~~~~
net/ipv6/ioam6.c: At top level:
>> net/ipv6/ioam6.c:81:6: warning: no previous prototype for 'ioam6_fill_trace_data_node' [-Wmissing-prototypes]
81 | void ioam6_fill_trace_data_node(struct sk_buff *skb, int nodeoff,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/ioam6_fill_trace_data_node +81 net/ipv6/ioam6.c
80
> 81 void ioam6_fill_trace_data_node(struct sk_buff *skb, int nodeoff,
82 u32 trace_type, struct ioam6_namespace *ns)
83 {
84 u8 *data = skb_network_header(skb) + nodeoff;
85 struct __kernel_sock_timeval ts;
86 u64 raw_u64;
87 u32 raw_u32;
88 u16 raw_u16;
89 u8 byte;
90
91 /* hop_lim and node_id */
92 if (trace_type & IOAM6_TRACE_TYPE0) {
93 byte = ipv6_hdr(skb)->hop_limit - 1;
94 raw_u32 = dev_net(skb->dev)->ipv6.sysctl.ioam6_id;
95 if (!raw_u32)
96 raw_u32 = IOAM6_EMPTY_FIELD_u24;
97 else
98 raw_u32 &= IOAM6_EMPTY_FIELD_u24;
99 *(__be32 *)data = cpu_to_be32((byte << 24) | raw_u32);
100 data += sizeof(__be32);
101 }
102
103 /* ingress_if_id and egress_if_id */
104 if (trace_type & IOAM6_TRACE_TYPE1) {
105 raw_u16 = __in6_dev_get(skb->dev)->cnf.ioam6_id;
106 if (!raw_u16)
107 raw_u16 = IOAM6_EMPTY_FIELD_u16;
108 *(__be16 *)data = cpu_to_be16(raw_u16);
109 data += sizeof(__be16);
110
111 raw_u16 = __in6_dev_get(skb_dst(skb)->dev)->cnf.ioam6_id;
112 if (!raw_u16)
113 raw_u16 = IOAM6_EMPTY_FIELD_u16;
114 *(__be16 *)data = cpu_to_be16(raw_u16);
115 data += sizeof(__be16);
116 }
117
118 /* timestamp seconds */
119 if (trace_type & IOAM6_TRACE_TYPE2) {
120 if (!skb->tstamp) {
121 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
122 } else {
123 skb_get_new_timestamp(skb, &ts);
124 *(__be32 *)data = cpu_to_be32((u32)ts.tv_sec);
125 }
126 data += sizeof(__be32);
127 }
128
129 /* timestamp subseconds */
130 if (trace_type & IOAM6_TRACE_TYPE3) {
131 if (!skb->tstamp) {
132 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
133 } else {
134 if (!(trace_type & IOAM6_TRACE_TYPE2))
135 skb_get_new_timestamp(skb, &ts);
136 *(__be32 *)data = cpu_to_be32((u32)ts.tv_usec);
137 }
138 data += sizeof(__be32);
139 }
140
141 /* transit delay */
142 if (trace_type & IOAM6_TRACE_TYPE4) {
143 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
144 data += sizeof(__be32);
145 }
146
147 /* namespace data */
148 if (trace_type & IOAM6_TRACE_TYPE5) {
149 *(__be32 *)data = (__be32)ns->data;
150 data += sizeof(__be32);
151 }
152
153 /* queue depth */
154 if (trace_type & IOAM6_TRACE_TYPE6) {
155 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
156 data += sizeof(__be32);
157 }
158
159 /* hop_lim and node_id (wide) */
160 if (trace_type & IOAM6_TRACE_TYPE7) {
161 byte = ipv6_hdr(skb)->hop_limit - 1;
162 raw_u64 = dev_net(skb->dev)->ipv6.sysctl.ioam6_id;
163 if (!raw_u64)
164 raw_u64 = IOAM6_EMPTY_FIELD_u56;
165 else
166 raw_u64 &= IOAM6_EMPTY_FIELD_u56;
167 *(__be64 *)data = cpu_to_be64(((u64)byte << 56) | raw_u64);
168 data += sizeof(__be64);
169 }
170
171 /* ingress_if_id and egress_if_id (wide) */
172 if (trace_type & IOAM6_TRACE_TYPE8) {
173 raw_u32 = __in6_dev_get(skb->dev)->cnf.ioam6_id;
174 if (!raw_u32)
175 raw_u32 = IOAM6_EMPTY_FIELD_u32;
176 *(__be32 *)data = cpu_to_be32(raw_u32);
177 data += sizeof(__be32);
178
179 raw_u32 = __in6_dev_get(skb_dst(skb)->dev)->cnf.ioam6_id;
180 if (!raw_u32)
181 raw_u32 = IOAM6_EMPTY_FIELD_u32;
182 *(__be32 *)data = cpu_to_be32(raw_u32);
183 data += sizeof(__be32);
184 }
185
186 /* namespace data (wide) */
187 if (trace_type & IOAM6_TRACE_TYPE9) {
188 *(__be64 *)data = ns->data;
189 data += sizeof(__be64);
190 }
191
192 /* buffer occupancy */
193 if (trace_type & IOAM6_TRACE_TYPE10) {
194 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
195 data += sizeof(__be32);
196 }
197
198 /* checksum complement */
199 if (trace_type & IOAM6_TRACE_TYPE11) {
200 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
201 data += sizeof(__be32);
202 }
203
204 /* opaque state snapshot */
205 if (trace_type & IOAM6_TRACE_TYPE22) {
206 if (!ns->schema) {
207 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u24);
208 } else {
209 *(__be32 *)data = ns->schema->hdr;
210 data += sizeof(__be32);
211 memcpy(data, ns->schema->data, ns->schema->len);
212 }
213 }
214 }
215
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 22959 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH net-next 3/5] ipv6: ioam: Data plane support for Pre-allocated Trace
Date: Thu, 25 Jun 2020 05:37:27 +0800 [thread overview]
Message-ID: <202006250501.CZ3RyUCN%lkp@intel.com> (raw)
In-Reply-To: <20200624192310.16923-4-justin.iurman@uliege.be>
[-- Attachment #1: Type: text/plain, Size: 8137 bytes --]
Hi Justin,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on net-next/master]
url: https://github.com/0day-ci/linux/commits/Justin-Iurman/Data-plane-support-for-IOAM-Pre-allocated-Trace-with-IPv6/20200625-033536
base: https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 0558c396040734bc1d361919566a581fd41aa539
config: um-allmodconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce (this is a W=1 build):
# save the attached .config to linux build tree
make W=1 ARCH=um
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
cc1: warning: arch/um/include/uapi: No such file or directory [-Wmissing-include-dirs]
In file included from include/linux/uaccess.h:11,
from include/linux/sched/task.h:11,
from include/linux/sched/signal.h:9,
from include/linux/rcuwait.h:6,
from include/linux/percpu-rwsem.h:7,
from include/linux/fs.h:33,
from include/linux/net.h:23,
from net/ipv6/ioam6.c:12:
arch/um/include/asm/uaccess.h: In function '__access_ok':
arch/um/include/asm/uaccess.h:17:29: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
17 | (((unsigned long) (addr) >= FIXADDR_USER_START) && \
| ^~
arch/um/include/asm/uaccess.h:45:3: note: in expansion of macro '__access_ok_vsyscall'
45 | __access_ok_vsyscall(addr, size) ||
| ^~~~~~~~~~~~~~~~~~~~
In file included from include/linux/kernel.h:11,
from net/ipv6/ioam6.c:11:
include/asm-generic/fixmap.h: In function 'fix_to_virt':
include/asm-generic/fixmap.h:32:19: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits]
32 | BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
| ^~
include/linux/compiler.h:372:9: note: in definition of macro '__compiletime_assert'
372 | if (!(condition)) \
| ^~~~~~~~~
include/linux/compiler.h:392:2: note: in expansion of macro '_compiletime_assert'
392 | _compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
| ^~~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:39:37: note: in expansion of macro 'compiletime_assert'
39 | #define BUILD_BUG_ON_MSG(cond, msg) compiletime_assert(!(cond), msg)
| ^~~~~~~~~~~~~~~~~~
include/linux/build_bug.h:50:2: note: in expansion of macro 'BUILD_BUG_ON_MSG'
50 | BUILD_BUG_ON_MSG(condition, "BUILD_BUG_ON failed: " #condition)
| ^~~~~~~~~~~~~~~~
include/asm-generic/fixmap.h:32:2: note: in expansion of macro 'BUILD_BUG_ON'
32 | BUILD_BUG_ON(idx >= __end_of_fixed_addresses);
| ^~~~~~~~~~~~
net/ipv6/ioam6.c: At top level:
>> net/ipv6/ioam6.c:81:6: warning: no previous prototype for 'ioam6_fill_trace_data_node' [-Wmissing-prototypes]
81 | void ioam6_fill_trace_data_node(struct sk_buff *skb, int nodeoff,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +/ioam6_fill_trace_data_node +81 net/ipv6/ioam6.c
80
> 81 void ioam6_fill_trace_data_node(struct sk_buff *skb, int nodeoff,
82 u32 trace_type, struct ioam6_namespace *ns)
83 {
84 u8 *data = skb_network_header(skb) + nodeoff;
85 struct __kernel_sock_timeval ts;
86 u64 raw_u64;
87 u32 raw_u32;
88 u16 raw_u16;
89 u8 byte;
90
91 /* hop_lim and node_id */
92 if (trace_type & IOAM6_TRACE_TYPE0) {
93 byte = ipv6_hdr(skb)->hop_limit - 1;
94 raw_u32 = dev_net(skb->dev)->ipv6.sysctl.ioam6_id;
95 if (!raw_u32)
96 raw_u32 = IOAM6_EMPTY_FIELD_u24;
97 else
98 raw_u32 &= IOAM6_EMPTY_FIELD_u24;
99 *(__be32 *)data = cpu_to_be32((byte << 24) | raw_u32);
100 data += sizeof(__be32);
101 }
102
103 /* ingress_if_id and egress_if_id */
104 if (trace_type & IOAM6_TRACE_TYPE1) {
105 raw_u16 = __in6_dev_get(skb->dev)->cnf.ioam6_id;
106 if (!raw_u16)
107 raw_u16 = IOAM6_EMPTY_FIELD_u16;
108 *(__be16 *)data = cpu_to_be16(raw_u16);
109 data += sizeof(__be16);
110
111 raw_u16 = __in6_dev_get(skb_dst(skb)->dev)->cnf.ioam6_id;
112 if (!raw_u16)
113 raw_u16 = IOAM6_EMPTY_FIELD_u16;
114 *(__be16 *)data = cpu_to_be16(raw_u16);
115 data += sizeof(__be16);
116 }
117
118 /* timestamp seconds */
119 if (trace_type & IOAM6_TRACE_TYPE2) {
120 if (!skb->tstamp) {
121 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
122 } else {
123 skb_get_new_timestamp(skb, &ts);
124 *(__be32 *)data = cpu_to_be32((u32)ts.tv_sec);
125 }
126 data += sizeof(__be32);
127 }
128
129 /* timestamp subseconds */
130 if (trace_type & IOAM6_TRACE_TYPE3) {
131 if (!skb->tstamp) {
132 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
133 } else {
134 if (!(trace_type & IOAM6_TRACE_TYPE2))
135 skb_get_new_timestamp(skb, &ts);
136 *(__be32 *)data = cpu_to_be32((u32)ts.tv_usec);
137 }
138 data += sizeof(__be32);
139 }
140
141 /* transit delay */
142 if (trace_type & IOAM6_TRACE_TYPE4) {
143 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
144 data += sizeof(__be32);
145 }
146
147 /* namespace data */
148 if (trace_type & IOAM6_TRACE_TYPE5) {
149 *(__be32 *)data = (__be32)ns->data;
150 data += sizeof(__be32);
151 }
152
153 /* queue depth */
154 if (trace_type & IOAM6_TRACE_TYPE6) {
155 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
156 data += sizeof(__be32);
157 }
158
159 /* hop_lim and node_id (wide) */
160 if (trace_type & IOAM6_TRACE_TYPE7) {
161 byte = ipv6_hdr(skb)->hop_limit - 1;
162 raw_u64 = dev_net(skb->dev)->ipv6.sysctl.ioam6_id;
163 if (!raw_u64)
164 raw_u64 = IOAM6_EMPTY_FIELD_u56;
165 else
166 raw_u64 &= IOAM6_EMPTY_FIELD_u56;
167 *(__be64 *)data = cpu_to_be64(((u64)byte << 56) | raw_u64);
168 data += sizeof(__be64);
169 }
170
171 /* ingress_if_id and egress_if_id (wide) */
172 if (trace_type & IOAM6_TRACE_TYPE8) {
173 raw_u32 = __in6_dev_get(skb->dev)->cnf.ioam6_id;
174 if (!raw_u32)
175 raw_u32 = IOAM6_EMPTY_FIELD_u32;
176 *(__be32 *)data = cpu_to_be32(raw_u32);
177 data += sizeof(__be32);
178
179 raw_u32 = __in6_dev_get(skb_dst(skb)->dev)->cnf.ioam6_id;
180 if (!raw_u32)
181 raw_u32 = IOAM6_EMPTY_FIELD_u32;
182 *(__be32 *)data = cpu_to_be32(raw_u32);
183 data += sizeof(__be32);
184 }
185
186 /* namespace data (wide) */
187 if (trace_type & IOAM6_TRACE_TYPE9) {
188 *(__be64 *)data = ns->data;
189 data += sizeof(__be64);
190 }
191
192 /* buffer occupancy */
193 if (trace_type & IOAM6_TRACE_TYPE10) {
194 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
195 data += sizeof(__be32);
196 }
197
198 /* checksum complement */
199 if (trace_type & IOAM6_TRACE_TYPE11) {
200 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u32);
201 data += sizeof(__be32);
202 }
203
204 /* opaque state snapshot */
205 if (trace_type & IOAM6_TRACE_TYPE22) {
206 if (!ns->schema) {
207 *(__be32 *)data = cpu_to_be32(IOAM6_EMPTY_FIELD_u24);
208 } else {
209 *(__be32 *)data = ns->schema->hdr;
210 data += sizeof(__be32);
211 memcpy(data, ns->schema->data, ns->schema->len);
212 }
213 }
214 }
215
---
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: 22959 bytes --]
next prev parent reply other threads:[~2020-06-24 21:44 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-24 19:23 [PATCH net-next 0/5] Data plane support for IOAM Pre-allocated Trace with IPv6 Justin Iurman
2020-06-24 19:23 ` [PATCH net-next 1/5] ipv6: eh: Introduce removable TLVs Justin Iurman
2020-06-24 20:32 ` Tom Herbert
2020-06-25 17:47 ` Justin Iurman
2020-06-25 20:53 ` Tom Herbert
2020-06-26 8:22 ` Justin Iurman
2020-06-26 15:39 ` Tom Herbert
2020-06-26 17:14 ` Justin Iurman
2020-06-26 18:35 ` Tom Herbert
2020-06-24 19:23 ` [PATCH net-next 2/5] ipv6: IOAM tunnel decapsulation Justin Iurman
2020-06-25 2:32 ` Tom Herbert
2020-06-25 17:56 ` Justin Iurman
2020-06-26 0:48 ` Tom Herbert
2020-06-26 8:31 ` Justin Iurman
2020-06-26 15:52 ` Tom Herbert
2020-06-24 19:23 ` [PATCH net-next 3/5] ipv6: ioam: Data plane support for Pre-allocated Trace Justin Iurman
2020-06-24 21:37 ` kernel test robot [this message]
2020-06-24 21:37 ` kernel test robot
2020-06-24 23:11 ` kernel test robot
2020-06-24 23:11 ` kernel test robot
2020-06-24 23:11 ` [RFC PATCH] ipv6: ioam: ioam6_fill_trace_data_node() can be static kernel test robot
2020-06-24 23:11 ` kernel test robot
2020-06-25 2:42 ` [PATCH net-next 3/5] ipv6: ioam: Data plane support for Pre-allocated Trace Tom Herbert
2020-06-25 14:29 ` Tom Herbert
2020-06-25 18:23 ` Justin Iurman
2020-06-25 20:32 ` Tom Herbert
2020-06-26 8:13 ` Justin Iurman
2020-06-26 14:53 ` Tom Herbert
2020-06-24 19:23 ` [PATCH net-next 4/5] ipv6: ioam: Generic Netlink to configure IOAM Justin Iurman
2020-06-25 10:52 ` Dan Carpenter
2020-06-25 10:52 ` Dan Carpenter
2020-06-25 10:52 ` Dan Carpenter
2020-06-26 8:54 ` [PATCH net-next] Fix unchecked dereference Justin Iurman
2020-06-26 16:01 ` Jakub Kicinski
2020-06-26 16:01 ` Jakub Kicinski
2020-06-26 17:23 ` Justin Iurman
2020-06-27 4:04 ` Jakub Kicinski
2020-06-27 4:04 ` Jakub Kicinski
2020-06-24 19:23 ` [PATCH net-next 5/5] ipv6: ioam: Documentation for new IOAM sysctls Justin Iurman
2020-06-25 2:53 ` Tom Herbert
2020-06-25 18:00 ` Justin Iurman
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=202006250501.CZ3RyUCN%lkp@intel.com \
--to=lkp@intel.com \
--cc=davem@davemloft.net \
--cc=justin.iurman@uliege.be \
--cc=kbuild-all@lists.01.org \
--cc=netdev@vger.kernel.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.