[OE-core] [PATCH v3 1/1] latencytop: fix mount error
Saul Wold
sgw at linux.intel.com
Mon Jul 14 17:49:27 UTC 2014
On 07/14/2014 03:58 AM, 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 at intel.com>
> ---
> .../latencytop-0.5/latencytop-fsync-mount.patch | 37 ++++++++++++++++++++++
> meta/recipes-kernel/latencytop/latencytop_0.5.bb | 3 +-
> 2 files changed, 39 insertions(+), 1 deletion(-)
> 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..9f2e120
> --- /dev/null
> +++ b/meta/recipes-kernel/latencytop/latencytop-0.5/latencytop-fsync-mount.patch
This patch file needs Signed-off-by and Upstream-Status tags. Also have
you submitted this change to the upstream community?
Sau!
> @@ -0,0 +1,37 @@
> +Index: latencytop-0.5/fsync.c
> +===================================================================
> +--- latencytop-0.5.orig/fsync.c 2014-07-14 13:25:27.657187985 +0300
> ++++ latencytop-0.5/fsync.c 2014-07-14 13:26:12.033187979 +0300
> +@@ -32,6 +32,7 @@
> + #include <time.h>
> + #include <wchar.h>
> + #include <ctype.h>
> ++#include <sys/stat.h>
> +
> + #include <glib.h>
> +
> +@@ -142,16 +143,23 @@
> + int enable_fsync_tracer(void)
> + {
> + int ret;
> ++ struct stat s_debug, s_mount_point;
> ++
> + /*
> + * Steps to do:
> + *
> ++ * check if /sys/kernel/debug is mounted
> + * mount -t debugfs none /sys/kernel/debug/
> + * cd /sys/kernel/debug/tracing
> + * echo fsync > current_tracer
> + * echo ftrace_printk > iter_ctrl
> + * echo 1 > tracing_on
> + */
> +- ret = system("/bin/mount -t debugfs none /sys/kernel/debug/");
> ++
> ++ stat("/sys/kernel/debug/..", &s_debug);
> ++ if (stat("/sys/kernel/debug", &s_mount_point) != 0 ||
Why do two stats here? Can't you stat an entry inside of the
/sys/kernel/debug directory?
Sau!
> ++ (s_debug.st_dev == s_mount_point.st_dev))
> ++ ret = system("/bin/mount -t debugfs none /sys/kernel/debug/");
> + 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..243f3d9 100644
> --- a/meta/recipes-kernel/latencytop/latencytop_0.5.bb
> +++ b/meta/recipes-kernel/latencytop/latencytop_0.5.bb
> @@ -10,7 +10,8 @@ PR = "r3"
>
> 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"
>
More information about the Openembedded-core
mailing list