linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] kheaders: Move from proc to sysfs
@ 2019-05-03 18:24 Joel Fernandes (Google)
  2019-05-04  0:18 ` Masahiro Yamada
  0 siblings, 1 reply; 6+ messages in thread
From: Joel Fernandes (Google) @ 2019-05-03 18:24 UTC (permalink / raw)
  To: linux-kernel
  Cc: Joel Fernandes (Google),
	Steven Rostedt, Adrian Ratiu, Alexei Starovoitov, Andrew Morton,
	atishp04, bpf, Brendan Gregg, Brendan Gregg, dancol,
	Daniel Borkmann, Dan Williams, dietmar.eggemann, duyuchao,
	gregkh, Guenter Roeck, Jonathan Corbet, Karim Yaghmour,
	Kees Cook, kernel-team, linux-doc, linux-kselftest,
	linux-trace-devel, Manjo Raja Rao, Masahiro Yamada,
	Masami Hiramatsu, Michał Gregorczyk, Michal Gregorczyk,
	Mohammad Husain, Olof Johansson, qais.yousef, rdunlap,
	Shuah Khan, Srinivas Ramana, Tamir Carmeli, yhs

The kheaders archive consisting of the kernel headers used for compiling
bpf programs is in /proc. However there is concern that moving it here
will make it permanent. Let us move it to /sys/kernel as discussed [1].

[1] https://lore.kernel.org/patchwork/patch/1067310/#1265969

Suggested-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
---
This patch applies on top of the previous patch that was applied to the
driver tree:
https://lore.kernel.org/patchwork/patch/1067310/

 kernel/kheaders.c | 40 ++++++++++++++++------------------------
 1 file changed, 16 insertions(+), 24 deletions(-)

diff --git a/kernel/kheaders.c b/kernel/kheaders.c
index 70ae6052920d..6a16f8f6898d 100644
--- a/kernel/kheaders.c
+++ b/kernel/kheaders.c
@@ -8,9 +8,8 @@
 
 #include <linux/kernel.h>
 #include <linux/module.h>
-#include <linux/proc_fs.h>
+#include <linux/kobject.h>
 #include <linux/init.h>
-#include <linux/uaccess.h>
 
 /*
  * Define kernel_headers_data and kernel_headers_data_end, within which the
@@ -31,39 +30,32 @@ extern char kernel_headers_data;
 extern char kernel_headers_data_end;
 
 static ssize_t
-ikheaders_read_current(struct file *file, char __user *buf,
-		      size_t len, loff_t *offset)
+ikheaders_read(struct file *file,  struct kobject *kobj,
+	       struct bin_attribute *bin_attr,
+	       char *buf, loff_t off, size_t len)
 {
-	return simple_read_from_buffer(buf, len, offset,
-				       &kernel_headers_data,
-				       &kernel_headers_data_end -
-				       &kernel_headers_data);
+	memcpy(buf, &kernel_headers_data + off, len);
+	return len;
 }
 
-static const struct file_operations ikheaders_file_ops = {
-	.read = ikheaders_read_current,
-	.llseek = default_llseek,
+static struct bin_attribute kheaders_attr __ro_after_init = {
+	.attr = {
+		.name = "kheaders.tar.xz",
+		.mode = S_IRUGO,
+	},
+	.read = &ikheaders_read,
 };
 
 static int __init ikheaders_init(void)
 {
-	struct proc_dir_entry *entry;
-
-	/* create the current headers file */
-	entry = proc_create("kheaders.tar.xz", S_IRUGO, NULL,
-			    &ikheaders_file_ops);
-	if (!entry)
-		return -ENOMEM;
-
-	proc_set_size(entry,
-		      &kernel_headers_data_end -
-		      &kernel_headers_data);
-	return 0;
+	kheaders_attr.size = (&kernel_headers_data_end -
+			      &kernel_headers_data);
+	return sysfs_create_bin_file(kernel_kobj, &kheaders_attr);
 }
 
 static void __exit ikheaders_cleanup(void)
 {
-	remove_proc_entry("kheaders.tar.xz", NULL);
+	sysfs_remove_bin_file(kernel_kobj, &kheaders_attr);
 }
 
 module_init(ikheaders_init);
-- 
2.21.0.1020.gf2820cf01a-goog

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] kheaders: Move from proc to sysfs
  2019-05-03 18:24 [PATCH] kheaders: Move from proc to sysfs Joel Fernandes (Google)
@ 2019-05-04  0:18 ` Masahiro Yamada
  2019-05-04  0:21   ` Masahiro Yamada
  0 siblings, 1 reply; 6+ messages in thread
From: Masahiro Yamada @ 2019-05-04  0:18 UTC (permalink / raw)
  To: Joel Fernandes (Google)
  Cc: Linux Kernel Mailing List, Steven Rostedt, Adrian Ratiu,
	Alexei Starovoitov, Andrew Morton, atish patra, bpf,
	Brendan Gregg, Brendan Gregg, Daniel Colascione, Daniel Borkmann,
	Dan Williams, Dietmar Eggemann, duyuchao, Greg Kroah-Hartman,
	Guenter Roeck, Jonathan Corbet, Karim Yaghmour, Kees Cook,
	Cc: Android Kernel, open list:DOCUMENTATION,
	open list:KERNEL SELFTEST FRAMEWORK, linux-trace-devel,
	Manjo Raja Rao, Masami Hiramatsu, Michał Gregorczyk,
	Michal Gregorczyk, Mohammad Husain, Olof Johansson, Qais Yousef,
	Randy Dunlap, Shuah Khan, Srinivas Ramana, Tamir Carmeli,
	Yonghong Song

On Sat, May 4, 2019 at 3:27 AM Joel Fernandes (Google)
<joel@joelfernandes.org> wrote:
>
> The kheaders archive consisting of the kernel headers used for compiling
> bpf programs is in /proc. However there is concern that moving it here
> will make it permanent. Let us move it to /sys/kernel as discussed [1].
>
> [1] https://lore.kernel.org/patchwork/patch/1067310/#1265969
>
> Suggested-by: Steven Rostedt <rostedt@goodmis.org>
> Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
> ---
> This patch applies on top of the previous patch that was applied to the
> driver tree:
> https://lore.kernel.org/patchwork/patch/1067310/
>
>  kernel/kheaders.c | 40 ++++++++++++++++------------------------


Please rename CONFIG_IKHEADERS_PROC.

Thanks.




>  1 file changed, 16 insertions(+), 24 deletions(-)
>
> diff --git a/kernel/kheaders.c b/kernel/kheaders.c
> index 70ae6052920d..6a16f8f6898d 100644
> --- a/kernel/kheaders.c
> +++ b/kernel/kheaders.c
> @@ -8,9 +8,8 @@
>
>  #include <linux/kernel.h>
>  #include <linux/module.h>
> -#include <linux/proc_fs.h>
> +#include <linux/kobject.h>
>  #include <linux/init.h>
> -#include <linux/uaccess.h>
>
>  /*
>   * Define kernel_headers_data and kernel_headers_data_end, within which the
> @@ -31,39 +30,32 @@ extern char kernel_headers_data;
>  extern char kernel_headers_data_end;
>
>  static ssize_t
> -ikheaders_read_current(struct file *file, char __user *buf,
> -                     size_t len, loff_t *offset)
> +ikheaders_read(struct file *file,  struct kobject *kobj,
> +              struct bin_attribute *bin_attr,
> +              char *buf, loff_t off, size_t len)
>  {
> -       return simple_read_from_buffer(buf, len, offset,
> -                                      &kernel_headers_data,
> -                                      &kernel_headers_data_end -
> -                                      &kernel_headers_data);
> +       memcpy(buf, &kernel_headers_data + off, len);
> +       return len;
>  }
>
> -static const struct file_operations ikheaders_file_ops = {
> -       .read = ikheaders_read_current,
> -       .llseek = default_llseek,
> +static struct bin_attribute kheaders_attr __ro_after_init = {
> +       .attr = {
> +               .name = "kheaders.tar.xz",
> +               .mode = S_IRUGO,
> +       },
> +       .read = &ikheaders_read,
>  };
>
>  static int __init ikheaders_init(void)
>  {
> -       struct proc_dir_entry *entry;
> -
> -       /* create the current headers file */
> -       entry = proc_create("kheaders.tar.xz", S_IRUGO, NULL,
> -                           &ikheaders_file_ops);
> -       if (!entry)
> -               return -ENOMEM;
> -
> -       proc_set_size(entry,
> -                     &kernel_headers_data_end -
> -                     &kernel_headers_data);
> -       return 0;
> +       kheaders_attr.size = (&kernel_headers_data_end -
> +                             &kernel_headers_data);
> +       return sysfs_create_bin_file(kernel_kobj, &kheaders_attr);
>  }
>
>  static void __exit ikheaders_cleanup(void)
>  {
> -       remove_proc_entry("kheaders.tar.xz", NULL);
> +       sysfs_remove_bin_file(kernel_kobj, &kheaders_attr);
>  }
>
>  module_init(ikheaders_init);
> --
> 2.21.0.1020.gf2820cf01a-goog



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kheaders: Move from proc to sysfs
  2019-05-04  0:18 ` Masahiro Yamada
@ 2019-05-04  0:21   ` Masahiro Yamada
  2019-05-04  0:59     ` Joel Fernandes
  0 siblings, 1 reply; 6+ messages in thread
From: Masahiro Yamada @ 2019-05-04  0:21 UTC (permalink / raw)
  To: Joel Fernandes (Google)
  Cc: Linux Kernel Mailing List, Steven Rostedt, Adrian Ratiu,
	Alexei Starovoitov, Andrew Morton, atish patra, bpf,
	Brendan Gregg, Brendan Gregg, Daniel Colascione, Daniel Borkmann,
	Dan Williams, Dietmar Eggemann, duyuchao, Greg Kroah-Hartman,
	Guenter Roeck, Jonathan Corbet, Karim Yaghmour, Kees Cook,
	Cc: Android Kernel, open list:DOCUMENTATION,
	open list:KERNEL SELFTEST FRAMEWORK, linux-trace-devel,
	Manjo Raja Rao, Masami Hiramatsu, Michał Gregorczyk,
	Michal Gregorczyk, Mohammad Husain, Olof Johansson, Qais Yousef,
	Randy Dunlap, Shuah Khan, Srinivas Ramana, Tamir Carmeli,
	Yonghong Song

On Sat, May 4, 2019 at 9:18 AM Masahiro Yamada
<yamada.masahiro@socionext.com> wrote:
>
> On Sat, May 4, 2019 at 3:27 AM Joel Fernandes (Google)
> <joel@joelfernandes.org> wrote:
> >
> > The kheaders archive consisting of the kernel headers used for compiling
> > bpf programs is in /proc. However there is concern that moving it here
> > will make it permanent. Let us move it to /sys/kernel as discussed [1].
> >
> > [1] https://lore.kernel.org/patchwork/patch/1067310/#1265969
> >
> > Suggested-by: Steven Rostedt <rostedt@goodmis.org>
> > Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
> > ---
> > This patch applies on top of the previous patch that was applied to the
> > driver tree:
> > https://lore.kernel.org/patchwork/patch/1067310/
> >
> >  kernel/kheaders.c | 40 ++++++++++++++++------------------------
>
>
> Please rename CONFIG_IKHEADERS_PROC.
>
> Thanks.


Please adjust Kconfig prompt.
  tristate "Enable kernel header artifacts through /proc/kheaders.tar.xz"


"depends on PROC_FS"  ->  "depends on SYSFS"






>
>
>
> >  1 file changed, 16 insertions(+), 24 deletions(-)
> >
> > diff --git a/kernel/kheaders.c b/kernel/kheaders.c
> > index 70ae6052920d..6a16f8f6898d 100644
> > --- a/kernel/kheaders.c
> > +++ b/kernel/kheaders.c
> > @@ -8,9 +8,8 @@
> >
> >  #include <linux/kernel.h>
> >  #include <linux/module.h>
> > -#include <linux/proc_fs.h>
> > +#include <linux/kobject.h>
> >  #include <linux/init.h>
> > -#include <linux/uaccess.h>
> >
> >  /*
> >   * Define kernel_headers_data and kernel_headers_data_end, within which the
> > @@ -31,39 +30,32 @@ extern char kernel_headers_data;
> >  extern char kernel_headers_data_end;
> >
> >  static ssize_t
> > -ikheaders_read_current(struct file *file, char __user *buf,
> > -                     size_t len, loff_t *offset)
> > +ikheaders_read(struct file *file,  struct kobject *kobj,
> > +              struct bin_attribute *bin_attr,
> > +              char *buf, loff_t off, size_t len)
> >  {
> > -       return simple_read_from_buffer(buf, len, offset,
> > -                                      &kernel_headers_data,
> > -                                      &kernel_headers_data_end -
> > -                                      &kernel_headers_data);
> > +       memcpy(buf, &kernel_headers_data + off, len);
> > +       return len;
> >  }
> >
> > -static const struct file_operations ikheaders_file_ops = {
> > -       .read = ikheaders_read_current,
> > -       .llseek = default_llseek,
> > +static struct bin_attribute kheaders_attr __ro_after_init = {
> > +       .attr = {
> > +               .name = "kheaders.tar.xz",
> > +               .mode = S_IRUGO,
> > +       },
> > +       .read = &ikheaders_read,
> >  };
> >
> >  static int __init ikheaders_init(void)
> >  {
> > -       struct proc_dir_entry *entry;
> > -
> > -       /* create the current headers file */
> > -       entry = proc_create("kheaders.tar.xz", S_IRUGO, NULL,
> > -                           &ikheaders_file_ops);
> > -       if (!entry)
> > -               return -ENOMEM;
> > -
> > -       proc_set_size(entry,
> > -                     &kernel_headers_data_end -
> > -                     &kernel_headers_data);
> > -       return 0;
> > +       kheaders_attr.size = (&kernel_headers_data_end -
> > +                             &kernel_headers_data);
> > +       return sysfs_create_bin_file(kernel_kobj, &kheaders_attr);
> >  }
> >
> >  static void __exit ikheaders_cleanup(void)
> >  {
> > -       remove_proc_entry("kheaders.tar.xz", NULL);
> > +       sysfs_remove_bin_file(kernel_kobj, &kheaders_attr);
> >  }
> >
> >  module_init(ikheaders_init);
> > --
> > 2.21.0.1020.gf2820cf01a-goog
>
>
>
> --
> Best Regards
> Masahiro Yamada



-- 
Best Regards
Masahiro Yamada

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kheaders: Move from proc to sysfs
  2019-05-04  0:21   ` Masahiro Yamada
@ 2019-05-04  0:59     ` Joel Fernandes
  2019-05-04  7:46       ` Alexei Starovoitov
  0 siblings, 1 reply; 6+ messages in thread
From: Joel Fernandes @ 2019-05-04  0:59 UTC (permalink / raw)
  To: Masahiro Yamada
  Cc: Linux Kernel Mailing List, Steven Rostedt, Adrian Ratiu,
	Alexei Starovoitov, Andrew Morton, atish patra, bpf,
	Brendan Gregg, Brendan Gregg, Daniel Colascione, Daniel Borkmann,
	Dan Williams, Dietmar Eggemann, duyuchao, Greg Kroah-Hartman,
	Guenter Roeck, Jonathan Corbet, Karim Yaghmour, Kees Cook,
	Cc: Android Kernel, open list:DOCUMENTATION,
	open list:KERNEL SELFTEST FRAMEWORK, linux-trace-devel,
	Manjo Raja Rao, Masami Hiramatsu, Michał Gregorczyk,
	Michal Gregorczyk, Mohammad Husain, Olof Johansson, Qais Yousef,
	Randy Dunlap, Shuah Khan, Srinivas Ramana, Tamir Carmeli,
	Yonghong Song

On Sat, May 04, 2019 at 09:21:41AM +0900, Masahiro Yamada wrote:
> On Sat, May 4, 2019 at 9:18 AM Masahiro Yamada
> <yamada.masahiro@socionext.com> wrote:
> >
> > On Sat, May 4, 2019 at 3:27 AM Joel Fernandes (Google)
> > <joel@joelfernandes.org> wrote:
> > >
> > > The kheaders archive consisting of the kernel headers used for compiling
> > > bpf programs is in /proc. However there is concern that moving it here
> > > will make it permanent. Let us move it to /sys/kernel as discussed [1].
> > >
> > > [1] https://lore.kernel.org/patchwork/patch/1067310/#1265969
> > >
> > > Suggested-by: Steven Rostedt <rostedt@goodmis.org>
> > > Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
> > > ---
> > > This patch applies on top of the previous patch that was applied to the
> > > driver tree:
> > > https://lore.kernel.org/patchwork/patch/1067310/
> > >
> > >  kernel/kheaders.c | 40 ++++++++++++++++------------------------
> >
> >
> > Please rename CONFIG_IKHEADERS_PROC.
> >
> > Thanks.
> 
> 
> Please adjust Kconfig prompt.
>   tristate "Enable kernel header artifacts through /proc/kheaders.tar.xz"
> 
> 
> "depends on PROC_FS"  ->  "depends on SYSFS"

Sorry to miss these config updates. I will update the patch and resend.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kheaders: Move from proc to sysfs
  2019-05-04  0:59     ` Joel Fernandes
@ 2019-05-04  7:46       ` Alexei Starovoitov
  2019-05-04  8:11         ` Greg Kroah-Hartman
  0 siblings, 1 reply; 6+ messages in thread
From: Alexei Starovoitov @ 2019-05-04  7:46 UTC (permalink / raw)
  To: Joel Fernandes
  Cc: Masahiro Yamada, Linux Kernel Mailing List, Steven Rostedt,
	Adrian Ratiu, Alexei Starovoitov, Andrew Morton, atish patra,
	bpf, Brendan Gregg, Brendan Gregg, Daniel Colascione,
	Daniel Borkmann, Dan Williams, Dietmar Eggemann, duyuchao,
	Greg Kroah-Hartman, Guenter Roeck, Jonathan Corbet,
	Karim Yaghmour, Kees Cook, Cc: Android Kernel,
	open list:DOCUMENTATION, open list:KERNEL SELFTEST FRAMEWORK,
	linux-trace-devel, Manjo Raja Rao, Masami Hiramatsu,
	Michał Gregorczyk, Michal Gregorczyk, Mohammad Husain,
	Olof Johansson, Qais Yousef, Randy Dunlap, Shuah Khan,
	Srinivas Ramana, Tamir Carmeli, Yonghong Song

On Fri, May 3, 2019 at 5:59 PM Joel Fernandes <joel@joelfernandes.org> wrote:
>
> On Sat, May 04, 2019 at 09:21:41AM +0900, Masahiro Yamada wrote:
> > On Sat, May 4, 2019 at 9:18 AM Masahiro Yamada
> > <yamada.masahiro@socionext.com> wrote:
> > >
> > > On Sat, May 4, 2019 at 3:27 AM Joel Fernandes (Google)
> > > <joel@joelfernandes.org> wrote:
> > > >
> > > > The kheaders archive consisting of the kernel headers used for compiling
> > > > bpf programs is in /proc. However there is concern that moving it here
> > > > will make it permanent. Let us move it to /sys/kernel as discussed [1].
> > > >
> > > > [1] https://lore.kernel.org/patchwork/patch/1067310/#1265969
> > > >
> > > > Suggested-by: Steven Rostedt <rostedt@goodmis.org>
> > > > Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
> > > > ---
> > > > This patch applies on top of the previous patch that was applied to the
> > > > driver tree:
> > > > https://lore.kernel.org/patchwork/patch/1067310/

I think it would be cleaner to take it out, squash and reapply.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] kheaders: Move from proc to sysfs
  2019-05-04  7:46       ` Alexei Starovoitov
@ 2019-05-04  8:11         ` Greg Kroah-Hartman
  0 siblings, 0 replies; 6+ messages in thread
From: Greg Kroah-Hartman @ 2019-05-04  8:11 UTC (permalink / raw)
  To: Alexei Starovoitov
  Cc: Joel Fernandes, Masahiro Yamada, Linux Kernel Mailing List,
	Steven Rostedt, Adrian Ratiu, Alexei Starovoitov, Andrew Morton,
	atish patra, bpf, Brendan Gregg, Brendan Gregg,
	Daniel Colascione, Daniel Borkmann, Dan Williams,
	Dietmar Eggemann, duyuchao, Guenter Roeck, Jonathan Corbet,
	Karim Yaghmour, Kees Cook, Cc: Android Kernel,
	open list:DOCUMENTATION, open list:KERNEL SELFTEST FRAMEWORK,
	linux-trace-devel, Manjo Raja Rao, Masami Hiramatsu,
	Michał Gregorczyk, Michal Gregorczyk, Mohammad Husain,
	Olof Johansson, Qais Yousef, Randy Dunlap, Shuah Khan,
	Srinivas Ramana, Tamir Carmeli, Yonghong Song

On Sat, May 04, 2019 at 12:46:21AM -0700, Alexei Starovoitov wrote:
> On Fri, May 3, 2019 at 5:59 PM Joel Fernandes <joel@joelfernandes.org> wrote:
> >
> > On Sat, May 04, 2019 at 09:21:41AM +0900, Masahiro Yamada wrote:
> > > On Sat, May 4, 2019 at 9:18 AM Masahiro Yamada
> > > <yamada.masahiro@socionext.com> wrote:
> > > >
> > > > On Sat, May 4, 2019 at 3:27 AM Joel Fernandes (Google)
> > > > <joel@joelfernandes.org> wrote:
> > > > >
> > > > > The kheaders archive consisting of the kernel headers used for compiling
> > > > > bpf programs is in /proc. However there is concern that moving it here
> > > > > will make it permanent. Let us move it to /sys/kernel as discussed [1].
> > > > >
> > > > > [1] https://lore.kernel.org/patchwork/patch/1067310/#1265969
> > > > >
> > > > > Suggested-by: Steven Rostedt <rostedt@goodmis.org>
> > > > > Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org>
> > > > > ---
> > > > > This patch applies on top of the previous patch that was applied to the
> > > > > driver tree:
> > > > > https://lore.kernel.org/patchwork/patch/1067310/
> 
> I think it would be cleaner to take it out, squash and reapply.

It is in a un-rebasable-tree already, sorry.  A patch on top is fine.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2019-05-04  8:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-03 18:24 [PATCH] kheaders: Move from proc to sysfs Joel Fernandes (Google)
2019-05-04  0:18 ` Masahiro Yamada
2019-05-04  0:21   ` Masahiro Yamada
2019-05-04  0:59     ` Joel Fernandes
2019-05-04  7:46       ` Alexei Starovoitov
2019-05-04  8:11         ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).