From: Saul Wold <sgw@linux.intel.com>
To: rongqing.li@windriver.com, openembedded-core@lists.openembedded.org
Subject: Re: [PATCH] lttng: fix alignment issue
Date: Wed, 21 May 2014 08:16:31 -0700 [thread overview]
Message-ID: <537CC34F.50609@linux.intel.com> (raw)
In-Reply-To: <1400555278-19708-1-git-send-email-rongqing.li@windriver.com>
On 05/19/2014 08:07 PM, rongqing.li@windriver.com wrote:
> From: Roy Li <rongqing.li@windriver.com>
>
> Fix alignment issue in lttng-tools and babeltrace
>
> Signed-off-by: Roy Li <rongqing.li@windriver.com>
> ---
> ...uffers-from-objstack_alloc-on-sizeof-void.patch | 54 ++++++++++++++++++++
> meta/recipes-kernel/lttng/babeltrace_1.2.1.bb | 4 +-
This should really be split into it's own patch, typically one patch for
each recipe, so one for babeltrace and one for lttng-tools, I know they
share the same directory.
Thanks
Sau!
> ...nt-problems-on-targets-not-supporting-una.patch | 47 +++++++++++++++++
> meta/recipes-kernel/lttng/lttng-tools_2.3.1.bb | 1 +
> meta/recipes-kernel/lttng/lttng-tools_2.4.0.bb | 1 +
> 5 files changed, 106 insertions(+), 1 deletion(-)
> create mode 100644 meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch
> create mode 100644 meta/recipes-kernel/lttng/lttng-tools/Fix-alignment-problems-on-targets-not-supporting-una.patch
>
> diff --git a/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch b/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch
> new file mode 100644
> index 0000000..8e81d2d
> --- /dev/null
> +++ b/meta/recipes-kernel/lttng/babeltrace/Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch
> @@ -0,0 +1,54 @@
> +From cae67efbd9ddf2cee6bbefec076dc8933ababc43 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Fredrik=20Markstr=C3=B6m?= <fredrik.markstrom@gmail.com>
> +Date: Fri, 16 May 2014 10:10:38 +0800
> +Subject: [PATCH] Fix: Align buffers from objstack_alloc on sizeof(void *)
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Upstream-Status: Backport
> +
> +The buffers from objstack_alloc will store pointers, so they must
> +be aligned on a pointer's size, or else it will cause issues on the
> +CPUs which do not support unaligned addresses access.
> +
> +Signed-off-by: Fredrik Markstrom <fredrik.markstrom@gmail.com>
> +Signed-off-by: Roy Li <rongqing.li@windriver.com>
> +Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
> +---
> + formats/ctf/metadata/objstack.c | 5 ++++-
> + 1 file changed, 4 insertions(+), 1 deletion(-)
> +
> +diff --git a/formats/ctf/metadata/objstack.c b/formats/ctf/metadata/objstack.c
> +index 9e264a4..14d9252 100644
> +--- a/formats/ctf/metadata/objstack.c
> ++++ b/formats/ctf/metadata/objstack.c
> +@@ -27,6 +27,7 @@
> + #include <stdlib.h>
> + #include <babeltrace/list.h>
> + #include <babeltrace/babeltrace-internal.h>
> ++#include <babeltrace/align.h>
> +
> + #define OBJSTACK_INIT_LEN 128
> + #define OBJSTACK_POISON 0xcc
> +@@ -39,7 +40,7 @@ struct objstack_node {
> + struct bt_list_head node;
> + size_t len;
> + size_t used_len;
> +- char data[];
> ++ char __attribute__ ((aligned (sizeof(void *)))) data[];
> + };
> +
> + BT_HIDDEN
> +@@ -118,6 +119,8 @@ void *objstack_alloc(struct objstack *objstack, size_t len)
> + struct objstack_node *last_node;
> + void *p;
> +
> ++ len = ALIGN(len, sizeof(void *));
> ++
> + /* Get last node */
> + last_node = bt_list_entry(objstack->head.prev,
> + struct objstack_node, node);
> +--
> +1.7.10.4
> +
> diff --git a/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb b/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb
> index 5c105d8..542491b 100644
> --- a/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb
> +++ b/meta/recipes-kernel/lttng/babeltrace_1.2.1.bb
> @@ -14,7 +14,9 @@ SRCREV = "66c2a20b4391fb5c7f870aeb0dde854f0ae1fc79"
> PV = "1.2.1+git${SRCPV}"
>
> SRC_URI = "git://git.efficios.com/babeltrace.git;branch=stable-1.2 \
> - file://0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch"
> + file://0001-Fix-Support-out-of-tree-builds-in-babeltrace.patch \
> + file://Fix-Align-buffers-from-objstack_alloc-on-sizeof-void.patch \
> +"
>
> S = "${WORKDIR}/git"
>
> diff --git a/meta/recipes-kernel/lttng/lttng-tools/Fix-alignment-problems-on-targets-not-supporting-una.patch b/meta/recipes-kernel/lttng/lttng-tools/Fix-alignment-problems-on-targets-not-supporting-una.patch
> new file mode 100644
> index 0000000..2c1756e
> --- /dev/null
> +++ b/meta/recipes-kernel/lttng/lttng-tools/Fix-alignment-problems-on-targets-not-supporting-una.patch
> @@ -0,0 +1,47 @@
> +From 9dc4d3a8dcc7cfb6991e760e78f614afd593bf66 Mon Sep 17 00:00:00 2001
> +From: =?UTF-8?q?Fredrik=20Markstr=C3=B6m?= <fredrik.markstrom@gmail.com>
> +Date: Tue, 1 Apr 2014 17:46:23 +0200
> +Subject: [PATCH v2] Fix: alignment problems on targets not supporting unaligned
> + access.
> +MIME-Version: 1.0
> +Content-Type: text/plain; charset=UTF-8
> +Content-Transfer-Encoding: 8bit
> +
> +Upstream-Status: Submitted (https://www.mail-archive.com/lttng-dev@lists.lttng.org/msg06012.html)
> +
> +Accessing floats, doubles and 64 bit int at unaligned addresses is not
> +supported on all configurations of arm processors and if it is it's
> +emulated and slow. This patch replaces direct assignments with memcpy.
> +
> +Signed-off-by: Fredrik Markström <fredrik.markstrom@gmail.com>
> +Signed-off-by: Roy Li <rongqing.li@windriver.com>
> +Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> +---
> + src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c | 4 ++--
> + 1 file changed, 2 insertions(+), 2 deletions(-)
> +
> +diff --git a/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c b/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c
> +index 762d604..8c6dc96 100644
> +--- a/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c
> ++++ b/src/lib/lttng-ctl/filter/filter-visitor-generate-bytecode.c
> +@@ -222,7 +222,7 @@ int visit_node_load(struct filter_parser_ctx *ctx, struct ir_op *node)
> + if (!insn)
> + return -ENOMEM;
> + insn->op = FILTER_OP_LOAD_S64;
> +- *(int64_t *) insn->data = node->u.load.u.num;
> ++ memcpy(insn->data, &node->u.load.u.num, sizeof(int64_t));
> + ret = bytecode_push(&ctx->bytecode, insn, 1, insn_len);
> + free(insn);
> + return ret;
> +@@ -237,7 +237,7 @@ int visit_node_load(struct filter_parser_ctx *ctx, struct ir_op *node)
> + if (!insn)
> + return -ENOMEM;
> + insn->op = FILTER_OP_LOAD_DOUBLE;
> +- *(double *) insn->data = node->u.load.u.flt;
> ++ memcpy(insn->data, &node->u.load.u.flt, sizeof(double));
> + ret = bytecode_push(&ctx->bytecode, insn, 1, insn_len);
> + free(insn);
> + return ret;
> +--
> +1.7.10.4
> +
> diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.3.1.bb b/meta/recipes-kernel/lttng/lttng-tools_2.3.1.bb
> index ee59a46..db8b65b 100644
> --- a/meta/recipes-kernel/lttng/lttng-tools_2.3.1.bb
> +++ b/meta/recipes-kernel/lttng/lttng-tools_2.3.1.bb
> @@ -18,6 +18,7 @@ PV = "v2.3.1"
> SRC_URI = "git://git.lttng.org/lttng-tools.git;branch=stable-2.3 \
> file://runtest.patch \
> file://run-ptest \
> + file://Fix-alignment-problems-on-targets-not-supporting-una.patch \
> "
>
> S = "${WORKDIR}/git"
> diff --git a/meta/recipes-kernel/lttng/lttng-tools_2.4.0.bb b/meta/recipes-kernel/lttng/lttng-tools_2.4.0.bb
> index 223b52e..aab9bf6 100644
> --- a/meta/recipes-kernel/lttng/lttng-tools_2.4.0.bb
> +++ b/meta/recipes-kernel/lttng/lttng-tools_2.4.0.bb
> @@ -18,6 +18,7 @@ PV = "v2.4.0"
> SRC_URI = "git://git.lttng.org/lttng-tools.git;branch=stable-2.4 \
> file://runtest-2.4.0.patch \
> file://run-ptest \
> + file://Fix-alignment-problems-on-targets-not-supporting-una.patch \
> "
>
> S = "${WORKDIR}/git"
>
prev parent reply other threads:[~2014-05-21 15:16 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-20 3:07 [PATCH] lttng: fix alignment issue rongqing.li
2014-05-21 15:16 ` Saul Wold [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=537CC34F.50609@linux.intel.com \
--to=sgw@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
--cc=rongqing.li@windriver.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.