[1/1] latencytop: fix mount error

Submitted by Roxana on July 9, 2014, 6:52 p.m.

Details

Message ID 478fc5d6fb31718ce9531eca7b6f626a1412c0c3.1404930808.git.roxana.ciobanu@intel.com
State New
Headers show

Commit Message

Roxana July 9, 2014, 6:52 p.m.
Added a check to ensure debugfs is not mounted before trying
to mount it, because sysfs.sh already mounts it.

[ YOCTO #6498 ]

Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com>
---
 .../latencytop-0.5/latencytop-fsync-mount.patch         | 17 +++++++++++++++++
 meta/recipes-kernel/latencytop/latencytop_0.5.bb        |  5 +++--
 2 files changed, 20 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch

Patch hide | download patch | download mbox

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..6de27d0
--- /dev/null
+++ b/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch
@@ -0,0 +1,17 @@ 
+Index: latencytop-0.5/fsync.c
+===================================================================
+--- latencytop-0.5.orig/fsync.c	2014-07-09 16:56:32.565238023 +0300
++++ latencytop-0.5/fsync.c	2014-07-09 17:12:00.553237913 +0300
+@@ -151,8 +151,10 @@
+  * echo ftrace_printk > iter_ctrl 
+  * echo 1 > tracing_on
+  */
+-	ret = system("/bin/mount -t debugfs none /sys/kernel/debug/");
+-	if (!ret) 
++    ret = system("if ! grep -q debugfs /proc/filesystems; then"
++                 " /bin/mount -t debugfs none /sys/kernel/debug/"
++                 " else false; fi");
++    if (!ret)
+ 		return -1;
+ 	write_to_file("/sys/kernel/debug/tracing/current_tracer", "fsync");	
+ 	write_to_file("/sys/kernel/debug/tracing/iter_ctrl", "ftrace_printk");	
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"

Comments

Richard Purdie July 9, 2014, 8:50 p.m.
On Wed, 2014-07-09 at 21:52 +0300, Roxana Ciobanu wrote:
> Added a check to ensure debugfs is not mounted before trying
> to mount it, because sysfs.sh already mounts it.
> 
> [ YOCTO #6498 ]
> 
> Signed-off-by: Roxana Ciobanu <roxana.ciobanu@intel.com>
> ---
>  .../latencytop-0.5/latencytop-fsync-mount.patch         | 17 +++++++++++++++++
>  meta/recipes-kernel/latencytop/latencytop_0.5.bb        |  5 +++--
>  2 files changed, 20 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..6de27d0
> --- /dev/null
> +++ b/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch
> @@ -0,0 +1,17 @@
> +Index: latencytop-0.5/fsync.c
> +===================================================================
> +--- latencytop-0.5.orig/fsync.c	2014-07-09 16:56:32.565238023 +0300
> ++++ latencytop-0.5/fsync.c	2014-07-09 17:12:00.553237913 +0300
> +@@ -151,8 +151,10 @@
> +  * echo ftrace_printk > iter_ctrl 
> +  * echo 1 > tracing_on
> +  */
> +-	ret = system("/bin/mount -t debugfs none /sys/kernel/debug/");
> +-	if (!ret) 
> ++    ret = system("if ! grep -q debugfs /proc/filesystems; then"
> ++                 " /bin/mount -t debugfs none /sys/kernel/debug/"
> ++                 " else false; fi");
> ++    if (!ret)
> + 		return -1;
> + 	write_to_file("/sys/kernel/debug/tracing/current_tracer", "fsync");	
> + 	write_to_file("/sys/kernel/debug/tracing/iter_ctrl", "ftrace_printk");	

I'm not sure an upstream would accept what amounts to shell in the
system() call. Could we try listing that directories contents and then
only call the mount if the directory is empty/does not exist?

That patch should then be able to be sent upstream...

Cheers,

Richard


> 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"
> -- 
> 1.9.1
>
Ross Burton July 10, 2014, 8:59 a.m.
On 9 July 2014 21:50, Richard Purdie <richard.purdie@linuxfoundation.org> wrote:
> On Wed, 2014-07-09 at 21:52 +0300, Roxana Ciobanu wrote:
>> Added a check to ensure debugfs is not mounted before trying
>> to mount it, because sysfs.sh already mounts it.

Using stat() you should be able to identify if /debug is a mount
point, which will avoid the shell tests.

Ross