Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1501478 > unrolled thread

[PATCH 00/12] external array access helpers

Started byVegard Nossum <vegard.nossum@oracle.com>
First post2016-10-16 17:30 +0200
Last post2016-10-17 08:30 +0200
Articles 6 on this page of 26 — 6 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 00/12] external array access helpers Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-16 17:30 +0200
    [PATCH 07/12] tracing: declare __{start,stop}_ftrace_enum_maps as external array Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-16 17:30 +0200
    [PATCH 01/12] extarray: define helpers for arrays defined in linker scripts Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-16 17:30 +0200
      Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-10-17 09:10 +0200
      Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Peter Zijlstra <peterz@infradead.org> - 2016-10-17 10:40 +0200
        Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Jiri Slaby <jslaby@suse.cz> - 2016-10-17 11:10 +0200
          Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Peter Zijlstra <peterz@infradead.org> - 2016-10-17 11:10 +0200
            Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-17 13:30 +0200
              Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Peter Zijlstra <peterz@infradead.org> - 2016-10-17 13:50 +0200
                Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-18 10:10 +0200
                  Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts "Luis R. Rodriguez" <mcgrof@kernel.org> - 2016-10-18 23:20 +0200
                    Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Richard Biener <rguenther@suse.de> - 2016-10-19 16:30 +0200
                      Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Peter Zijlstra <peterz@infradead.org> - 2016-10-19 16:40 +0200
                      Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Richard Biener <rguenther@suse.de> - 2016-10-19 18:00 +0200
                      Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Peter Zijlstra <peterz@infradead.org> - 2016-10-19 18:10 +0200
                    Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Richard Biener <rguenther@suse.de> - 2016-10-19 17:10 +0200
                      Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Peter Zijlstra <peterz@infradead.org> - 2016-10-19 18:20 +0200
                Re: [PATCH 01/12] extarray: define helpers for arrays defined in  linker scripts Jiri Slaby <jslaby@suse.cz> - 2016-10-19 16:50 +0200
    [PATCH 12/12] dynamic debug: declare table as external array Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-16 17:30 +0200
    [PATCH 10/12] serial_core: declare __earlycon_table{,_end} as external array Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-16 18:00 +0200
    [PATCH 08/12] tracing: declare __trace_bprintk_fmt/__tracepoint_str as external arrays Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-16 18:00 +0200
    [PATCH 09/12] tracing: declare __{start,stop}_syscalls_metadata as external array Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-16 18:20 +0200
    Re: [PATCH 00/12] external array access helpers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-10-16 18:20 +0200
      Re: [PATCH 00/12] external array access helpers Vegard Nossum <vegard.nossum@oracle.com> - 2016-10-16 19:30 +0200
        Re: [PATCH 00/12] external array access helpers Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-10-17 09:10 +0200
      Re: [PATCH 00/12] external array access helpers Jiri Slaby <jslaby@suse.cz> - 2016-10-17 08:30 +0200

Page 2 of 2 — ← Prev page 1 [2]


#1501503 — [PATCH 08/12] tracing: declare __trace_bprintk_fmt/__tracepoint_str as external arrays

FromVegard Nossum <vegard.nossum@oracle.com>
Date2016-10-16 18:00 +0200
Subject[PATCH 08/12] tracing: declare __trace_bprintk_fmt/__tracepoint_str as external arrays
Message-ID<ssW0W-7I2-27@gated-at.bofh.it>
In reply to#1501478
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
---
 kernel/trace/trace.c        | 2 +-
 kernel/trace/trace.h        | 7 +++----
 kernel/trace/trace_printk.c | 8 ++++----
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
index d1bee81..50af466 100644
--- a/kernel/trace/trace.c
+++ b/kernel/trace/trace.c
@@ -7642,7 +7642,7 @@ __init static int tracer_alloc_buffers(void)
 		goto out_free_buffer_mask;
 
 	/* Only allocate trace_printk buffers if a trace_printk exists */
-	if (__stop___trace_bprintk_fmt != __start___trace_bprintk_fmt)
+	if (ext_size(__trace_bprintk_fmt))
 		/* Must be called before global_trace.buffer is allocated */
 		trace_printk_init_buffers();
 
diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
index fd24b1f..75d2750 100644
--- a/kernel/trace/trace.h
+++ b/kernel/trace/trace.h
@@ -2,6 +2,7 @@
 #ifndef _LINUX_KERNEL_TRACE_H
 #define _LINUX_KERNEL_TRACE_H
 
+#include <linux/extarray.h>
 #include <linux/fs.h>
 #include <linux/atomic.h>
 #include <linux/sched.h>
@@ -1605,11 +1606,9 @@ extern int trace_event_enable_disable(struct trace_event_file *file,
 				      int enable, int soft_disable);
 extern int tracing_alloc_snapshot(void);
 
-extern const char *__start___trace_bprintk_fmt[];
-extern const char *__stop___trace_bprintk_fmt[];
+DECLARE_EXTARRAY(const char *, __trace_bprintk_fmt);
 
-extern const char *__start___tracepoint_str[];
-extern const char *__stop___tracepoint_str[];
+DECLARE_EXTARRAY(const char *, __tracepoint_str);
 
 void trace_printk_control(bool enabled);
 void trace_printk_init_buffers(void);
diff --git a/kernel/trace/trace_printk.c b/kernel/trace/trace_printk.c
index ad1d6164..0d66509 100644
--- a/kernel/trace/trace_printk.c
+++ b/kernel/trace/trace_printk.c
@@ -255,10 +255,10 @@ static const char **find_next(void *v, loff_t *pos)
 	int start_index;
 	int last_index;
 
-	start_index = __stop___trace_bprintk_fmt - __start___trace_bprintk_fmt;
+	start_index = ext_size(__trace_bprintk_fmt);
 
 	if (*pos < start_index)
-		return __start___trace_bprintk_fmt + *pos;
+		return ext_start(__trace_bprintk_fmt) + *pos;
 
 	/*
 	 * The __tracepoint_str section is treated the same as the
@@ -273,10 +273,10 @@ static const char **find_next(void *v, loff_t *pos)
 	 * the ASCII text for userspace.
 	 */
 	last_index = start_index;
-	start_index = __stop___tracepoint_str - __start___tracepoint_str;
+	start_index = ext_size(__tracepoint_str);
 
 	if (*pos < last_index + start_index)
-		return __start___tracepoint_str + (*pos - last_index);
+		return ext_start(__tracepoint_str) + (*pos - last_index);
 
 	start_index += last_index;
 	return find_next_mod_format(start_index, v, fmt, pos);
-- 
2.10.0.479.g221bd91

[toc] | [prev] | [next] | [standalone]


#1501511 — [PATCH 09/12] tracing: declare __{start,stop}_syscalls_metadata as external array

FromVegard Nossum <vegard.nossum@oracle.com>
Date2016-10-16 18:20 +0200
Subject[PATCH 09/12] tracing: declare __{start,stop}_syscalls_metadata as external array
Message-ID<ssWkh-88d-3@gated-at.bofh.it>
In reply to#1501478
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
---
 kernel/trace/trace_syscalls.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
index 5e10395..2b1c1c3 100644
--- a/kernel/trace/trace_syscalls.c
+++ b/kernel/trace/trace_syscalls.c
@@ -1,5 +1,6 @@
 #include <trace/syscall.h>
 #include <trace/events/syscalls.h>
+#include <linux/extarray.h>
 #include <linux/syscalls.h>
 #include <linux/slab.h>
 #include <linux/kernel.h>
@@ -26,8 +27,7 @@ syscall_get_enter_fields(struct trace_event_call *call)
 	return &entry->enter_fields;
 }
 
-extern struct syscall_metadata *__start_syscalls_metadata[];
-extern struct syscall_metadata *__stop_syscalls_metadata[];
+DECLARE_EXTARRAY(struct syscall_metadata *, syscalls_metadata);
 
 static struct syscall_metadata **syscalls_metadata;
 
@@ -84,8 +84,8 @@ find_syscall_meta(unsigned long syscall)
 	char str[KSYM_SYMBOL_LEN];
 
 
-	start = __start_syscalls_metadata;
-	stop = __stop_syscalls_metadata;
+	start = ext_start(syscalls_metadata);
+	stop = ext_end(syscalls_metadata);
 	kallsyms_lookup(syscall, NULL, NULL, NULL, str);
 
 	if (arch_syscall_match_sym_name(str, "sys_ni_syscall"))
-- 
2.10.0.479.g221bd91

[toc] | [prev] | [next] | [standalone]


#1501514

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-10-16 18:20 +0200
Message-ID<ssWki-88d-21@gated-at.bofh.it>
In reply to#1501478
On Sun, Oct 16, 2016 at 05:16:04PM +0200, Vegard Nossum wrote:
> Hi,
> 
> The first two patches in the series fix the concrete bug (a boot crash
> when using gcc 7.0+) by defining new wrappers for arrays defined in
> linker scripts. These two patches should probably go into the kernel +
> stable as soon as people are happy with the new interface. Not sure who
> would pick this up, Greg maybe?

Ugh, that's messy, but nice fixup.  I can take these in my tree.  I'd
like to get others to review them first, but I can queue them up in a
week or so if there is no objections.

Is gcc 7.0 "stable" enough that people will start to be using it soon?

thanks,

greg k-h

[toc] | [prev] | [next] | [standalone]


#1501542

FromVegard Nossum <vegard.nossum@oracle.com>
Date2016-10-16 19:30 +0200
Message-ID<ssXq2-kh-7@gated-at.bofh.it>
In reply to#1501514
On 10/16/2016 06:14 PM, Greg Kroah-Hartman wrote:
> On Sun, Oct 16, 2016 at 05:16:04PM +0200, Vegard Nossum wrote:
>> Hi,
>>
>> The first two patches in the series fix the concrete bug (a boot crash
>> when using gcc 7.0+) by defining new wrappers for arrays defined in
>> linker scripts. These two patches should probably go into the kernel +
>> stable as soon as people are happy with the new interface. Not sure who
>> would pick this up, Greg maybe?
>
> Ugh, that's messy, but nice fixup.  I can take these in my tree.  I'd
> like to get others to review them first, but I can queue them up in a
> week or so if there is no objections.

Thanks!

> Is gcc 7.0 "stable" enough that people will start to be using it soon?

Well, it seems like Jiri and I both ran into the firmware thing
independently.

gcc 7 is not actually released yet, so I guess my message above is
slightly misleading.

gcc 6 seems to have released about a year after development started
and gcc 7 development started in April, so I guess there's still quite a
lot of time before it's officially out.

Although the NetBSD people seemed to have run into the same issue using
GCC 5.4, I'm not sure what to make of that.


Vegard

[toc] | [prev] | [next] | [standalone]


#1501641

FromGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Date2016-10-17 09:10 +0200
Message-ID<stadA-j1-21@gated-at.bofh.it>
In reply to#1501542
On Sun, Oct 16, 2016 at 07:05:22PM +0200, Vegard Nossum wrote:
> On 10/16/2016 06:14 PM, Greg Kroah-Hartman wrote:
> > On Sun, Oct 16, 2016 at 05:16:04PM +0200, Vegard Nossum wrote:
> > > Hi,
> > > 
> > > The first two patches in the series fix the concrete bug (a boot crash
> > > when using gcc 7.0+) by defining new wrappers for arrays defined in
> > > linker scripts. These two patches should probably go into the kernel +
> > > stable as soon as people are happy with the new interface. Not sure who
> > > would pick this up, Greg maybe?
> > 
> > Ugh, that's messy, but nice fixup.  I can take these in my tree.  I'd
> > like to get others to review them first, but I can queue them up in a
> > week or so if there is no objections.
> 
> Thanks!

Ok, I didn't read the later patches, and as others pointed out, I can't
take patches without any changelog information, so those need to be
redone.

I'm also a bit worried about the naming of this, I'll respond to the
first patch about those issues.

thanks,

greg k-h

[toc] | [prev] | [next] | [standalone]


#1501624

FromJiri Slaby <jslaby@suse.cz>
Date2016-10-17 08:30 +0200
Message-ID<st9AR-8hu-7@gated-at.bofh.it>
In reply to#1501514
On 10/16/2016, 06:14 PM, Greg Kroah-Hartman wrote:
> Is gcc 7.0 "stable" enough that people will start to be using it soon?

Standard suse kernel builds and boots with gcc 7 just fine. But only
with 02/12 from this series. So perhaps it's not stable enough for
production use, but at least I was about to test use-after-scope gcc 7
UBSAN thingie via syzkaller soon.

thanks,
-- 
js
suse labs

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | linux.kernel


csiph-web