Patchwork [v2,1/1] latencytop: fix mount error

login
register
mail settings
Submitter Roxana
Date July 10, 2014, 1:13 p.m.
Message ID <56d5da369a640da16ac88ce325b12636d17e0400.1404997871.git.roxana.ciobanu@intel.com>
Download mbox | patch
Permalink /patch/75319/
State New
Headers show

Comments

Roxana - July 10, 2014, 1:13 p.m.
Bug was fixed by redirecting stderr to /dev/null. The error was
caused because /sys/kernel/debug was already mounted by sysfs.sh.

[ YOCTO #6498 ]

Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com>
---
 .../latencytop/latencytop-0.5/latencytop-fsync-mount.patch  | 13 +++++++++++++
 meta/recipes-kernel/latencytop/latencytop_0.5.bb            |  5 +++--
 2 files changed, 16 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch
Saul Wold - July 10, 2014, 1:50 p.m.
On 07/10/2014 06:13 AM, Roxana Ciobanu wrote:
> Bug was fixed by redirecting stderr to /dev/null. The error was
> caused because /sys/kernel/debug was already mounted by sysfs.sh.
>
> [ YOCTO #6498 ]
>
> Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com>
> ---
>   .../latencytop/latencytop-0.5/latencytop-fsync-mount.patch  | 13 +++++++++++++
>   meta/recipes-kernel/latencytop/latencytop_0.5.bb            |  5 +++--
>   2 files changed, 16 insertions(+), 2 deletions(-)
>   create mode 100644 meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch
>
> diff --git a/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch b/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch
> new file mode 100644
> index 0000000..043be75
> --- /dev/null
> +++ b/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch

This patch is missing a Signed-off-by: and an Upstream-Status.

Have you sent email to the latencytop list?
> @@ -0,0 +1,13 @@
> +Index: latencytop-0.5/fsync.c
> +===================================================================
> +--- latencytop-0.5.orig/fsync.c
> ++++ latencytop-0.5/fsync.c
> +@@ -151,7 +151,7 @@ int enable_fsync_tracer(void)
> +  * echo ftrace_printk > iter_ctrl
> +  * echo 1 > tracing_on
> +  */
> +-	ret = system("/bin/mount -t debugfs none /sys/kernel/debug/");
> ++	ret = system("/bin/mount -t debugfs none /sys/kernel/debug/ 2>/dev/null");

So this is masking the issue, not addressing it, but this will cause 
other true errors to be masked.  I think Ross's suggestion of using 
stat() to check for the existance of a file in debugfs would be better.

> + 	if (!ret)
> + 		return -1;
> + 	write_to_file("/sys/kernel/debug/tracing/current_tracer", "fsync");	
> diff --git a/meta/recipes-kernel/latencytop/latencytop_0.5.bb b/meta/recipes-kernel/latencytop/latencytop_0.5.bb
> index 516e2c5..9a95b92 100644
> --- a/meta/recipes-kernel/latencytop/latencytop_0.5.bb
> +++ b/meta/recipes-kernel/latencytop/latencytop_0.5.bb
> @@ -6,11 +6,12 @@ LIC_FILES_CHKSUM = "file://latencytop.c;endline=23;md5=ee9ea9b1415356e5734adad4a
>
>   DEPENDS = "virtual/libintl ncurses glib-2.0  ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+', '', d)}"
>
> -PR = "r3"
> +PR = "r4"
>
PR Bumps are not needed any more

Sau!


>   SRC_URI = "http://www.latencytop.org/download/latencytop-${PV}.tar.gz \
>               file://latencytop-makefile.patch \
> -            file://latencytop-fsync.patch"
> +            file://latencytop-fsync.patch \
> +            file://latencytop-fsync-mount.patch"
>
>   SRC_URI[md5sum] = "73bb3371c6ee0b0e68e25289027e865c"
>   SRC_URI[sha256sum] = "9e7f72fbea7bd918e71212a1eabaad8488d2c602205d2e3c95d62cd57e9203ef"
>
Ross Burton - July 10, 2014, 2:46 p.m.
On 10 July 2014 14:50, Saul Wold <sgw@linux.intel.com> wrote:
> I think Ross's suggestion of using stat() to check for the existance of a
> file in debugfs would be better.

At least one good way of checking if a directory is a mount point is
to compare the device of / and /debug using stat().  For example:

$ stat -c %d /
2049
$ stat -c %d /sys
13

Different devices, so /sys is a mount.

Ross
Paul Eggleton - July 12, 2014, 8:41 a.m.
On Thursday 10 July 2014 15:46:21 Burton, Ross wrote:
> On 10 July 2014 14:50, Saul Wold <sgw@linux.intel.com> wrote:
> > I think Ross's suggestion of using stat() to check for the existance of a
> > file in debugfs would be better.
> 
> At least one good way of checking if a directory is a mount point is
> to compare the device of / and /debug using stat().  For example:
> 
> $ stat -c %d /
> 2049
> $ stat -c %d /sys
> 13
> 
> Different devices, so /sys is a mount.

This came up a while back in another context, and someone (Phil?) pointed out 
the "mountpoint" standard Unix command which does exactly this.

Cheers,
Paul

Patch

diff --git a/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch b/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch
new file mode 100644
index 0000000..043be75
--- /dev/null
+++ b/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch
@@ -0,0 +1,13 @@ 
+Index: latencytop-0.5/fsync.c
+===================================================================
+--- latencytop-0.5.orig/fsync.c
++++ latencytop-0.5/fsync.c
+@@ -151,7 +151,7 @@ int enable_fsync_tracer(void)
+  * echo ftrace_printk > iter_ctrl 
+  * echo 1 > tracing_on
+  */
+-	ret = system("/bin/mount -t debugfs none /sys/kernel/debug/");
++	ret = system("/bin/mount -t debugfs none /sys/kernel/debug/ 2>/dev/null");
+ 	if (!ret) 
+ 		return -1;
+ 	write_to_file("/sys/kernel/debug/tracing/current_tracer", "fsync");	
diff --git a/meta/recipes-kernel/latencytop/latencytop_0.5.bb b/meta/recipes-kernel/latencytop/latencytop_0.5.bb
index 516e2c5..9a95b92 100644
--- a/meta/recipes-kernel/latencytop/latencytop_0.5.bb
+++ b/meta/recipes-kernel/latencytop/latencytop_0.5.bb
@@ -6,11 +6,12 @@  LIC_FILES_CHKSUM = "file://latencytop.c;endline=23;md5=ee9ea9b1415356e5734adad4a
 
 DEPENDS = "virtual/libintl ncurses glib-2.0  ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+', '', d)}"
 
-PR = "r3"
+PR = "r4"
 
 SRC_URI = "http://www.latencytop.org/download/latencytop-${PV}.tar.gz \
             file://latencytop-makefile.patch \
-            file://latencytop-fsync.patch"
+            file://latencytop-fsync.patch \
+            file://latencytop-fsync-mount.patch"
 
 SRC_URI[md5sum] = "73bb3371c6ee0b0e68e25289027e865c"
 SRC_URI[sha256sum] = "9e7f72fbea7bd918e71212a1eabaad8488d2c602205d2e3c95d62cd57e9203ef"