All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro)
@ 2019-03-06 16:37 bruce.ashfield
  2019-03-06 16:37 ` [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched bruce.ashfield
                   ` (6 more replies)
  0 siblings, 7 replies; 24+ messages in thread
From: bruce.ashfield @ 2019-03-06 16:37 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Bruce Ashfield <bruce.ashfield@gmail.com>

Hi all,

The -rc8 of the kernel pushed this out a week longer than I would
have liked, but luckily the -dev kernel has been running 5.0 for
quite a while, so most of the issues had been worked out already.

In this series we have the bump of the libc-headers to 5.0, I've
built all arches for both musl and glibc, with no issues popping
up due to the headers bump. A few patches were dropped, since they
are now upstream.

I've also introduce the 5.0 versioned recipe in this series and
adjusted the two machines that still have a preferred version to
use it. Again, this was built and booted on all arches and over
several image types (minimal, sato, kernel-dev).

As usual lttng was tweaked to work with 5.0, but I was able to
keep it on the same 2.10 stable branch and only pull in a few
pending patches that haven't been formally released yet.

Once we get the h/w reference boards, and reference distros moved
to 4.19 and 5.0, I'll send a follow up patch to remove 4.18
from master.

I'll send follow up patches to the yocto-bsps and poky as
appropriate, but until the last few issues are resolved, they can
stay out of tree.

I captured as many details as possible in the commit messages of
the individual patches.

Cheers,

Bruce


The following changes since commit 44b28954997f62733c09c0f3261d29fe8049916c:

  linux-yocto: update genericx86* SRCREV for 4.18 (2019-03-04 22:57:32 +0000)

are available in the Git repository at:

  git://git.pokylinux.org/poky-contrib zedd/kernel
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=zedd/kernel

Bruce Ashfield (6):
  kernel-yocto: allow kernel-meta repositories to be patched
  linux-libc-headers: update to 5.x headers
  linux-yocto: introduce 5.0 versioned recipe
  lttng: add 5.x fixup patches to 2.10.8 release
  linux-yocto/5.0: update configs for h/w reference boards
  machine: bump preferred version to 5.0

 meta/classes/kernel-yocto.bbclass             |  29 +-
 meta/conf/distro/include/tcmode-default.inc   |   2 +-
 meta/conf/machine/include/x86-base.inc        |   2 +-
 meta/conf/machine/qemuarm.conf                |   2 +-
 .../linux-libc-headers/linux-libc-headers.inc |   2 +
 ...kernel_clockid_t-in-uapi-net_stamp.h.patch |  49 ---
 ...d-input-and-output-files-instead-of-.patch |  11 +-
 ...ce-Fix-SVE_PT_REGS_OFFSET-definition.patch |  43 ---
 ...angle-uapi-asm-ptrace.h-from-uapi-as.patch | 289 ---------------
 ...ders_4.19.bb => linux-libc-headers_5.0.bb} |   7 +-
 .../linux/linux-yocto-rt_5.0.bb               |  43 +++
 .../linux/linux-yocto-tiny_5.0.bb             |  32 ++
 meta/recipes-kernel/linux/linux-yocto_5.0.bb  |  51 +++
 ...nguish-between-kernel_siginfo-and-si.patch | 133 +++++++
 ...-signal-Remove-SEND_SIG_FORCED-v4.20.patch |  67 ++++
 ...reserved-cluster-count-when-removing.patch | 149 ++++++++
 ...x-timer-instrumentation-for-RHEL-7.6.patch |  32 ++
 ...argument-from-access_ok-function-v5..patch | 204 +++++++++++
 ...ter-values-with-task-tk_pid-and-rpc_.patch | 186 ++++++++++
 ...ify-defining-common-RPC-trace-events.patch | 183 ++++++++++
 ...-fsid-metadata_fsid-fields-from-btrf.patch | 341 ++++++++++++++++++
 ...p-mempool-Remove-logically-dead-code.patch |  46 +++
 .../lttng/lttng-modules_2.10.8.bb             |   9 +
 23 files changed, 1513 insertions(+), 399 deletions(-)
 delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
 delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
 delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
 rename meta/recipes-kernel/linux-libc-headers/{linux-libc-headers_4.19.bb => linux-libc-headers_5.0.bb} (65%)
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
 create mode 100644 meta/recipes-kernel/linux/linux-yocto_5.0.bb
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch

-- 
2.19.1



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

* [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched
  2019-03-06 16:37 [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) bruce.ashfield
@ 2019-03-06 16:37 ` bruce.ashfield
  2019-03-09 22:09   ` Paul Barker
  2019-03-06 16:37 ` [PATCH 2/6] linux-libc-headers: update to 5.x headers bruce.ashfield
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 24+ messages in thread
From: bruce.ashfield @ 2019-03-06 16:37 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Bruce Ashfield <bruce.ashfield@gmail.com>

For testing purposes, it is often easier to patch a fragment
in a kernel-meta repository versus needing to make a copy or
modify the source repository.

We can allow this sort of patching when a patchdir of kernel-meta
is passed (to indicate the nested kernel-meta repository).

Also note that we must patch the meta data before they are
processed/gathered, since migrated copies to the kernel source
directory will be used later.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
 meta/classes/kernel-yocto.bbclass | 29 +++++++++++++++++++++++++----
 1 file changed, 25 insertions(+), 4 deletions(-)

diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
index 496c8a7f68..d2b194dd55 100644
--- a/meta/classes/kernel-yocto.bbclass
+++ b/meta/classes/kernel-yocto.bbclass
@@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
 
 # returns local (absolute) path names for all valid patches in the
 # src_uri
-def find_patches(d):
+def find_patches(d,subdir):
     patches = src_patches(d)
     patch_list=[]
     for p in patches:
-        _, _, local, _, _, _ = bb.fetch.decodeurl(p)
-        patch_list.append(local)
+        _, _, local, _, _, parm = bb.fetch.decodeurl(p)
+        # if patchdir has been passed, we won't be able to apply it so skip
+        # the patch for now, and special processing happens later
+        patchdir = ''
+        if "patchdir" in parm:
+            patchdir = parm["patchdir"]
+        if patchdir:
+            if subdir == patchdir:
+                patch_list.append(local)
+        else:
+            patch_list.append(local)
 
     return patch_list
 
@@ -119,8 +128,20 @@ do_kernel_metadata() {
 		fi
 	fi
 
+	# was anyone trying to patch the kernel meta data ?, we need to do
+	# this here, since the scc commands migrate the .cfg fragments to the
+	# kernel source tree, where they'll be used later.
+	check_git_config
+	patches="${@" ".join(find_patches(d,'kernel-meta'))}"
+	for p in $patches; do
+	    (
+		cd ${WORKDIR}/kernel-meta
+		git am -s $p
+	    )
+	done
+
 	sccs_from_src_uri="${@" ".join(find_sccs(d))}"
-	patches="${@" ".join(find_patches(d))}"
+	patches="${@" ".join(find_patches(d,''))}"
 	feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
 
 	# a quick check to make sure we don't have duplicate defconfigs
-- 
2.19.1



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

* [PATCH 2/6] linux-libc-headers: update to 5.x headers
  2019-03-06 16:37 [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) bruce.ashfield
  2019-03-06 16:37 ` [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched bruce.ashfield
@ 2019-03-06 16:37 ` bruce.ashfield
  2019-03-07 15:19   ` Khem Raj
  2019-03-06 16:37 ` [PATCH 3/6] linux-yocto: introduce 5.0 versioned recipe bruce.ashfield
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 24+ messages in thread
From: bruce.ashfield @ 2019-03-06 16:37 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Bruce Ashfield <bruce.ashfield@gmail.com>

Updating the linux-libc-headers to the 5.x kernel variant to match
the latest reference kernel in the 2.7 release.

We have two patches refreshed for context changes, and three patches
dropped since they have been merged to the mainline kernel and are
no longer necessary.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
 meta/conf/distro/include/tcmode-default.inc   |   2 +-
 .../linux-libc-headers/linux-libc-headers.inc |   2 +
 ...kernel_clockid_t-in-uapi-net_stamp.h.patch |  49 ---
 ...d-input-and-output-files-instead-of-.patch |  11 +-
 ...ce-Fix-SVE_PT_REGS_OFFSET-definition.patch |  43 ---
 ...angle-uapi-asm-ptrace.h-from-uapi-as.patch | 289 ------------------
 ...ders_4.19.bb => linux-libc-headers_5.0.bb} |   7 +-
 7 files changed, 10 insertions(+), 393 deletions(-)
 delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
 delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
 delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
 rename meta/recipes-kernel/linux-libc-headers/{linux-libc-headers_4.19.bb => linux-libc-headers_5.0.bb} (65%)

diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
index 5d71825889..12d3901ee1 100644
--- a/meta/conf/distro/include/tcmode-default.inc
+++ b/meta/conf/distro/include/tcmode-default.inc
@@ -23,7 +23,7 @@ SDKGCCVERSION ?= "${GCCVERSION}"
 BINUVERSION ?= "2.32%"
 GDBVERSION ?= "8.2%"
 GLIBCVERSION ?= "2.29%"
-LINUXLIBCVERSION ?= "4.19%"
+LINUXLIBCVERSION ?= "5.0%"
 QEMUVERSION ?= "3.1%"
 GOVERSION ?= "1.11%"
 
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
index be215af9b9..7f838f623e 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
@@ -38,6 +38,8 @@ python __anonymous () {
         d.setVar("HEADER_FETCH_VER", "3.0")
     elif major == "4":
         d.setVar("HEADER_FETCH_VER", "4.x")
+    elif major == "5":
+        d.setVar("HEADER_FETCH_VER", "5.x")
     else:
         d.setVar("HEADER_FETCH_VER", "2.6")
 }
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
deleted file mode 100644
index 3684cc21bf..0000000000
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5 Mon Sep 17 00:00:00 2001
-From: Davide Caratti <dcaratti@redhat.com>
-Date: Mon, 17 Dec 2018 11:26:38 +0100
-Subject: [PATCH] net: Use __kernel_clockid_t in uapi net_stamp.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Herton reports the following error when building a userspace program that
-includes net_stamp.h:
-
- In file included from foo.c:2:
- /usr/include/linux/net_tstamp.h:158:2: error: unknown type name
- ‘clockid_t’
-   clockid_t clockid; /* reference clockid */
-   ^~~~~~~~~
-
-Fix it by using __kernel_clockid_t in place of clockid_t.
-
-Fixes: 80b14dee2bea ("net: Add a new socket option for a future transmit time.")
-Cc: Timothy Redaelli <tredaelli@redhat.com>
-Reported-by: Herton R. Krzesinski <herton@redhat.com>
-Signed-off-by: Davide Caratti <dcaratti@redhat.com>
-Tested-by: Paolo Abeni <pabeni@redhat.com>
-Signed-off-by: David S. Miller <davem@davemloft.net>
----
-Upstream-Status: Backport [https://github.com/torvalds/linux/commit/e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5]
-
- include/uapi/linux/net_tstamp.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
-index 97ff3c17ec4d..e5b39721c6e4 100644
---- a/include/uapi/linux/net_tstamp.h
-+++ b/include/uapi/linux/net_tstamp.h
-@@ -155,8 +155,8 @@ enum txtime_flags {
- };
- 
- struct sock_txtime {
--	clockid_t	clockid;	/* reference clockid */
--	__u32		flags;		/* as defined by enum txtime_flags */
-+	__kernel_clockid_t	clockid;/* reference clockid */
-+	__u32			flags;	/* as defined by enum txtime_flags */
- };
- 
- #endif /* _NET_TIMESTAMPING_H */
--- 
-2.20.1
-
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
index 9ba1c076e8..a5ded602e5 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
@@ -1,8 +1,7 @@
 From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001
 From: He Zhe <zhe.he@windriver.com>
 Date: Wed, 21 Nov 2018 15:12:43 +0800
-Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for
- here-doc
+Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc
 
 There was a bug of "as" in binutils that when it checks if the input file and
 output file are the same one, it would not check if they are on the same block
@@ -44,14 +43,14 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
-index 083c526..8dfac55 100755
+index 8b980fb22..d256a9438 100755
 --- a/scripts/gcc-goto.sh
 +++ b/scripts/gcc-goto.sh
 @@ -3,7 +3,7 @@
  # Test for gcc 'asm goto' support
  # Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
  
--cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
+-cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null
 +cat << "END" > ./input
  int main(void)
  {
@@ -61,8 +60,8 @@ index 083c526..8dfac55 100755
  }
  END
 +
-+$@ -x c ./input -c -o ./output && echo "y"
++$@ -x c ./input -fno-PIE -c -o ./output
 +rm ./input ./output
 -- 
-2.7.4
+2.19.1
 
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
deleted file mode 100644
index 462fdba2ed..0000000000
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 0dede80d25ae2005f8af7235809fc09a7c47c62e Mon Sep 17 00:00:00 2001
-From: Dave Martin <Dave.Martin@arm.com>
-Date: Tue, 11 Dec 2018 19:26:46 +0000
-Subject: [PATCH 2/3] arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition
-
-SVE_PT_REGS_OFFSET is supposed to indicate the offset for skipping
-over the ptrace NT_ARM_SVE header (struct user_sve_header) to the
-start of the SVE register data proper.
-
-However, currently SVE_PT_REGS_OFFSET is defined in terms of struct
-sve_context, which is wrong: that structure describes the SVE
-header in the signal frame, not in the ptrace regset.
-
-This patch fixes the definition to use the ptrace header structure
-struct user_sve_header instead.
-
-By good fortune, the to structures are the same size anyway, so
-there is no functional or ABI change.
-
-Signed-off-by: Dave Martin <Dave.Martin@arm.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
-
-Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
----
- arch/arm64/include/uapi/asm/ptrace.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
-index 98c4ce55d9c3..ad64d2c92ef5 100644
---- a/arch/arm64/include/uapi/asm/ptrace.h
-+++ b/arch/arm64/include/uapi/asm/ptrace.h
-@@ -130,7 +130,7 @@ struct user_sve_header {
- 
- /* Offset from the start of struct user_sve_header to the register data */
- #define SVE_PT_REGS_OFFSET					\
--	((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))	\
-+	((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))	\
- 		/ SVE_VQ_BYTES * SVE_VQ_BYTES)
- 
- /*
--- 
-2.5.0
-
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
deleted file mode 100644
index 0423f0f2cc..0000000000
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
+++ /dev/null
@@ -1,289 +0,0 @@
-From 1114697c04b9699112e78dd8fc6ec849609ca1cb Mon Sep 17 00:00:00 2001
-From: Dave Martin <Dave.Martin@arm.com>
-Date: Tue, 11 Dec 2018 19:26:47 +0000
-Subject: [PATCH 3/3] arm64/sve: Disentangle <uapi/asm/ptrace.h> from
- <uapi/asm/sigcontext.h>
-
-Currently, <uapi/asm/sigcontext.h> provides common definitions for
-describing SVE context structures that are also used by the ptrace
-definitions in <uapi/asm/ptrace.h>.
-
-For this reason, a #include of <asm/sigcontext.h> was added in
-ptrace.h, but it this turns out that this can interact badly with
-userspace code that tries to include ptrace.h on top of the libc
-headers (which may provide their own shadow definitions for
-sigcontext.h).
-
-To make the headers easier for userspace to consume, this patch
-bounces the common definitions into an __SVE_* namespace and moves
-them to a backend header <uapi/asm/sve_context.h> that can be
-included by the other headers as appropriate.  This should allow
-ptrace.h to be used alongside libc's sigcontext.h (if any) without
-ill effects.
-
-This should make the situation unambiguous: <asm/sigcontext.h> is
-the header to include for the sigframe-specific definitions, while
-<asm/ptrace.h> is the header to include for ptrace-specific
-definitions.
-
-To avoid conflicting with existing usage, <asm/sigcontext.h>
-remains the canonical way to get the common definitions for
-SVE_VQ_MIN, sve_vq_from_vl() etc., both in userspace and in the
-kernel: relying on these being defined as a side effect of
-including just <asm/ptrace.h> was never intended to be safe.
-
-Signed-off-by: Dave Martin <Dave.Martin@arm.com>
-Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
-
-Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
----
- arch/arm64/include/uapi/asm/ptrace.h      | 39 ++++++++++-----------
- arch/arm64/include/uapi/asm/sigcontext.h  | 56 +++++++++++++++----------------
- arch/arm64/include/uapi/asm/sve_context.h | 50 +++++++++++++++++++++++++++
- 3 files changed, 96 insertions(+), 49 deletions(-)
- create mode 100644 arch/arm64/include/uapi/asm/sve_context.h
-
-diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
-index ad64d2c92ef5..81547c3a95a3 100644
---- a/arch/arm64/include/uapi/asm/ptrace.h
-+++ b/arch/arm64/include/uapi/asm/ptrace.h
-@@ -23,7 +23,7 @@
- #include <linux/types.h>
- 
- #include <asm/hwcap.h>
--#include <asm/sigcontext.h>
-+#include <asm/sve_context.h>
- 
- 
- /*
-@@ -129,9 +129,9 @@ struct user_sve_header {
-  */
- 
- /* Offset from the start of struct user_sve_header to the register data */
--#define SVE_PT_REGS_OFFSET					\
--	((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))	\
--		/ SVE_VQ_BYTES * SVE_VQ_BYTES)
-+#define SVE_PT_REGS_OFFSET						\
-+	((sizeof(struct user_sve_header) + (__SVE_VQ_BYTES - 1))	\
-+		/ __SVE_VQ_BYTES * __SVE_VQ_BYTES)
- 
- /*
-  * The register data content and layout depends on the value of the
-@@ -177,39 +177,36 @@ struct user_sve_header {
-  * Additional data might be appended in the future.
-  */
- 
--#define SVE_PT_SVE_ZREG_SIZE(vq)	SVE_SIG_ZREG_SIZE(vq)
--#define SVE_PT_SVE_PREG_SIZE(vq)	SVE_SIG_PREG_SIZE(vq)
--#define SVE_PT_SVE_FFR_SIZE(vq)		SVE_SIG_FFR_SIZE(vq)
-+#define SVE_PT_SVE_ZREG_SIZE(vq)	__SVE_ZREG_SIZE(vq)
-+#define SVE_PT_SVE_PREG_SIZE(vq)	__SVE_PREG_SIZE(vq)
-+#define SVE_PT_SVE_FFR_SIZE(vq)		__SVE_FFR_SIZE(vq)
- #define SVE_PT_SVE_FPSR_SIZE		sizeof(__u32)
- #define SVE_PT_SVE_FPCR_SIZE		sizeof(__u32)
- 
--#define __SVE_SIG_TO_PT(offset) \
--	((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET)
--
- #define SVE_PT_SVE_OFFSET		SVE_PT_REGS_OFFSET
- 
- #define SVE_PT_SVE_ZREGS_OFFSET \
--	__SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET)
-+	(SVE_PT_REGS_OFFSET + __SVE_ZREGS_OFFSET)
- #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \
--	__SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n))
-+	(SVE_PT_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
- #define SVE_PT_SVE_ZREGS_SIZE(vq) \
--	(SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
-+	(SVE_PT_SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
- 
- #define SVE_PT_SVE_PREGS_OFFSET(vq) \
--	__SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq))
-+	(SVE_PT_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
- #define SVE_PT_SVE_PREG_OFFSET(vq, n) \
--	__SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n))
-+	(SVE_PT_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
- #define SVE_PT_SVE_PREGS_SIZE(vq) \
--	(SVE_PT_SVE_PREG_OFFSET(vq, SVE_NUM_PREGS) - \
-+	(SVE_PT_SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - \
- 		SVE_PT_SVE_PREGS_OFFSET(vq))
- 
- #define SVE_PT_SVE_FFR_OFFSET(vq) \
--	__SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq))
-+	(SVE_PT_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
- 
- #define SVE_PT_SVE_FPSR_OFFSET(vq)				\
- 	((SVE_PT_SVE_FFR_OFFSET(vq) + SVE_PT_SVE_FFR_SIZE(vq) +	\
--			(SVE_VQ_BYTES - 1))			\
--		/ SVE_VQ_BYTES * SVE_VQ_BYTES)
-+			(__SVE_VQ_BYTES - 1))			\
-+		/ __SVE_VQ_BYTES * __SVE_VQ_BYTES)
- #define SVE_PT_SVE_FPCR_OFFSET(vq) \
- 	(SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE)
- 
-@@ -220,8 +217,8 @@ struct user_sve_header {
- 
- #define SVE_PT_SVE_SIZE(vq, flags)					\
- 	((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE		\
--			- SVE_PT_SVE_OFFSET + (SVE_VQ_BYTES - 1))	\
--		/ SVE_VQ_BYTES * SVE_VQ_BYTES)
-+			- SVE_PT_SVE_OFFSET + (__SVE_VQ_BYTES - 1))	\
-+		/ __SVE_VQ_BYTES * __SVE_VQ_BYTES)
- 
- #define SVE_PT_SIZE(vq, flags)						\
- 	 (((flags) & SVE_PT_REGS_MASK) == SVE_PT_REGS_SVE ?		\
-diff --git a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h
-index dca8f8b5168b..5f3c0cec5af9 100644
---- a/arch/arm64/include/uapi/asm/sigcontext.h
-+++ b/arch/arm64/include/uapi/asm/sigcontext.h
-@@ -130,6 +130,8 @@ struct sve_context {
- 
- #endif /* !__ASSEMBLY__ */
- 
-+#include <asm/sve_context.h>
-+
- /*
-  * The SVE architecture leaves space for future expansion of the
-  * vector length beyond its initial architectural limit of 2048 bits
-@@ -138,21 +140,20 @@ struct sve_context {
-  * See linux/Documentation/arm64/sve.txt for a description of the VL/VQ
-  * terminology.
-  */
--#define SVE_VQ_BYTES		16	/* number of bytes per quadword */
-+#define SVE_VQ_BYTES		__SVE_VQ_BYTES	/* bytes per quadword */
- 
--#define SVE_VQ_MIN		1
--#define SVE_VQ_MAX		512
-+#define SVE_VQ_MIN		__SVE_VQ_MIN
-+#define SVE_VQ_MAX		__SVE_VQ_MAX
- 
--#define SVE_VL_MIN		(SVE_VQ_MIN * SVE_VQ_BYTES)
--#define SVE_VL_MAX		(SVE_VQ_MAX * SVE_VQ_BYTES)
-+#define SVE_VL_MIN		__SVE_VL_MIN
-+#define SVE_VL_MAX		__SVE_VL_MAX
- 
--#define SVE_NUM_ZREGS		32
--#define SVE_NUM_PREGS		16
-+#define SVE_NUM_ZREGS		__SVE_NUM_ZREGS
-+#define SVE_NUM_PREGS		__SVE_NUM_PREGS
- 
--#define sve_vl_valid(vl) \
--	((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX)
--#define sve_vq_from_vl(vl)	((vl) / SVE_VQ_BYTES)
--#define sve_vl_from_vq(vq)	((vq) * SVE_VQ_BYTES)
-+#define sve_vl_valid(vl)	__sve_vl_valid(vl)
-+#define sve_vq_from_vl(vl)	__sve_vq_from_vl(vl)
-+#define sve_vl_from_vq(vq)	__sve_vl_from_vq(vq)
- 
- /*
-  * If the SVE registers are currently live for the thread at signal delivery,
-@@ -205,34 +206,33 @@ struct sve_context {
-  * Additional data might be appended in the future.
-  */
- 
--#define SVE_SIG_ZREG_SIZE(vq)	((__u32)(vq) * SVE_VQ_BYTES)
--#define SVE_SIG_PREG_SIZE(vq)	((__u32)(vq) * (SVE_VQ_BYTES / 8))
--#define SVE_SIG_FFR_SIZE(vq)	SVE_SIG_PREG_SIZE(vq)
-+#define SVE_SIG_ZREG_SIZE(vq)	__SVE_ZREG_SIZE(vq)
-+#define SVE_SIG_PREG_SIZE(vq)	__SVE_PREG_SIZE(vq)
-+#define SVE_SIG_FFR_SIZE(vq)	__SVE_FFR_SIZE(vq)
- 
- #define SVE_SIG_REGS_OFFSET					\
--	((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))	\
--		/ SVE_VQ_BYTES * SVE_VQ_BYTES)
-+	((sizeof(struct sve_context) + (__SVE_VQ_BYTES - 1))	\
-+		/ __SVE_VQ_BYTES * __SVE_VQ_BYTES)
- 
--#define SVE_SIG_ZREGS_OFFSET	SVE_SIG_REGS_OFFSET
-+#define SVE_SIG_ZREGS_OFFSET \
-+		(SVE_SIG_REGS_OFFSET + __SVE_ZREGS_OFFSET)
- #define SVE_SIG_ZREG_OFFSET(vq, n) \
--	(SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n))
--#define SVE_SIG_ZREGS_SIZE(vq) \
--	(SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET)
-+		(SVE_SIG_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
-+#define SVE_SIG_ZREGS_SIZE(vq) __SVE_ZREGS_SIZE(vq)
- 
- #define SVE_SIG_PREGS_OFFSET(vq) \
--	(SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq))
-+		(SVE_SIG_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
- #define SVE_SIG_PREG_OFFSET(vq, n) \
--	(SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n))
--#define SVE_SIG_PREGS_SIZE(vq) \
--	(SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq))
-+		(SVE_SIG_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
-+#define SVE_SIG_PREGS_SIZE(vq) __SVE_PREGS_SIZE(vq)
- 
- #define SVE_SIG_FFR_OFFSET(vq) \
--	(SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq))
-+		(SVE_SIG_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
- 
- #define SVE_SIG_REGS_SIZE(vq) \
--	(SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)
--
--#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
-+		(__SVE_FFR_OFFSET(vq) + __SVE_FFR_SIZE(vq))
- 
-+#define SVE_SIG_CONTEXT_SIZE(vq) \
-+		(SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
- 
- #endif /* _UAPI__ASM_SIGCONTEXT_H */
-diff --git a/arch/arm64/include/uapi/asm/sve_context.h b/arch/arm64/include/uapi/asm/sve_context.h
-new file mode 100644
-index 000000000000..140f14c318a5
---- /dev/null
-+++ b/arch/arm64/include/uapi/asm/sve_context.h
-@@ -0,0 +1,50 @@
-+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
-+/* Copyright (C) 2017-2018 ARM Limited */
-+
-+#if !defined(_UAPI__ASM_PTRACE_H) && !defined(_UAPI__ASM_SIGCONTEXT_H)
-+#error "Do not include this header or use its definitions directly."
-+#endif
-+
-+#ifndef _UAPI__ASM_SVE_CONTEXT_H
-+#define _UAPI__ASM_SVE_CONTEXT_H
-+
-+#define __SVE_VQ_BYTES		16	/* number of bytes per quadword */
-+
-+#define __SVE_VQ_MIN		1
-+#define __SVE_VQ_MAX		512
-+
-+#define __SVE_VL_MIN		(__SVE_VQ_MIN * __SVE_VQ_BYTES)
-+#define __SVE_VL_MAX		(__SVE_VQ_MAX * __SVE_VQ_BYTES)
-+
-+#define __SVE_NUM_ZREGS		32
-+#define __SVE_NUM_PREGS		16
-+
-+#define __sve_vl_valid(vl)			\
-+	((vl) % __SVE_VQ_BYTES == 0 &&		\
-+	 (vl) >= __SVE_VL_MIN &&		\
-+	 (vl) <= __SVE_VL_MAX)
-+
-+#define __sve_vq_from_vl(vl)	((vl) / __SVE_VQ_BYTES)
-+#define __sve_vl_from_vq(vq)	((vq) * __SVE_VQ_BYTES)
-+
-+#define __SVE_ZREG_SIZE(vq)	((__u32)(vq) * __SVE_VQ_BYTES)
-+#define __SVE_PREG_SIZE(vq)	((__u32)(vq) * (__SVE_VQ_BYTES / 8))
-+#define __SVE_FFR_SIZE(vq)	__SVE_PREG_SIZE(vq)
-+
-+#define __SVE_ZREGS_OFFSET	0
-+#define __SVE_ZREG_OFFSET(vq, n) \
-+	(__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n))
-+#define __SVE_ZREGS_SIZE(vq) \
-+	(__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET)
-+
-+#define __SVE_PREGS_OFFSET(vq) \
-+	(__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq))
-+#define __SVE_PREG_OFFSET(vq, n) \
-+	(__SVE_PREGS_OFFSET(vq) + __SVE_PREG_SIZE(vq) * (n))
-+#define __SVE_PREGS_SIZE(vq) \
-+	(__SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - __SVE_PREGS_OFFSET(vq))
-+
-+#define __SVE_FFR_OFFSET(vq) \
-+	(__SVE_PREGS_OFFSET(vq) + __SVE_PREGS_SIZE(vq))
-+
-+#endif /* ! _UAPI__ASM_SVE_CONTEXT_H */
--- 
-2.5.0
-
diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
similarity index 65%
rename from meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
rename to meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
index 48f25ebc1a..e76120c5b8 100644
--- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
+++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
@@ -10,12 +10,9 @@ SRC_URI_append_libc-musl = "\
    "
 
 SRC_URI_append = "\
-    file://0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch \
     file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \
     file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
-    file://0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch \
-    file://0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch \
 "
 
-SRC_URI[md5sum] = "740a90cf810c2105df8ee12e5d0bb900"
-SRC_URI[sha256sum] = "0c68f5655528aed4f99dae71a5b259edc93239fa899e2df79c055275c21749a1"
+SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0"
+SRC_URI[sha256sum] = "437b141a6499159f5a7282d5eb4b2be055f8e862ccce44d7464e8759c31a2e43"
-- 
2.19.1



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

* [PATCH 3/6] linux-yocto: introduce 5.0 versioned recipe
  2019-03-06 16:37 [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) bruce.ashfield
  2019-03-06 16:37 ` [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched bruce.ashfield
  2019-03-06 16:37 ` [PATCH 2/6] linux-libc-headers: update to 5.x headers bruce.ashfield
@ 2019-03-06 16:37 ` bruce.ashfield
  2019-03-06 16:37 ` [PATCH 4/6] lttng: add 5.x fixup patches to 2.10.8 release bruce.ashfield
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 24+ messages in thread
From: bruce.ashfield @ 2019-03-06 16:37 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Bruce Ashfield <bruce.ashfield@gmail.com>

Introducing the 5.0 linux-yocto reference kernel, which will become
the "latest" kernel as part of the spring yocto release.

qemu* has been built and sanity tested against this kernel, and it
is suitable to become the default build for the emulated references.

Some minor configuration cleanup was performed, but otherwise, things
are very similar to the 4.19 kernel config:

  7fdb966db86 (HEAD -> yocto-5.0) aufs4: kbuild patch
  c76b027a8b2 iosched: remove configs for removed legacy io schedules
  5d1f8102244 netfilter: drop removed config options
  8ff16f508f5 kernel-yocto: 5.0 kernel prep

Feature wise, this is a match for 4.19, with yaffs2 and aufs4 being
kept around for another release. Aufs is scheduled for removal in
the fall release.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
 .../linux/linux-yocto-rt_5.0.bb               | 43 ++++++++++++++++
 .../linux/linux-yocto-tiny_5.0.bb             | 32 ++++++++++++
 meta/recipes-kernel/linux/linux-yocto_5.0.bb  | 51 +++++++++++++++++++
 3 files changed, 126 insertions(+)
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
 create mode 100644 meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
 create mode 100644 meta/recipes-kernel/linux/linux-yocto_5.0.bb

diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
new file mode 100644
index 0000000000..b7e0e5da23
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
@@ -0,0 +1,43 @@
+KBRANCH ?= "v5.0/standard/preempt-rt/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# Skip processing of this recipe if it is not explicitly specified as the
+# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
+# to build multiple virtual/kernel providers, e.g. as dependency of
+# core-image-rt-sdk, core-image-rt.
+python () {
+    if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
+        raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
+}
+
+SRCREV_machine ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
+SRCREV_meta ?= "8ae7073a934d80c4f4b808bc01884777454aae8f"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
+           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.0;destsuffix=${KMETA}"
+
+LINUX_VERSION ?= "5.0"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+LINUX_KERNEL_TYPE = "preempt-rt"
+
+COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarm64|qemuppc|qemumips)"
+
+KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
+KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
new file mode 100644
index 0000000000..b95efa9306
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
@@ -0,0 +1,32 @@
+KBRANCH ?= "v5.0/standard/tiny/base"
+KBRANCH_qemuarm  ?= "v5.0/standard/tiny/arm-versatile-926ejs"
+
+LINUX_KERNEL_TYPE = "tiny"
+KCONFIG_MODE = "--allnoconfig"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+LINUX_VERSION ?= "5.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+SRCREV_machine_qemuarm ?= "6da91ac9afd3b8c144760e3ceacc6a812ddfa3f6"
+SRCREV_machine ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
+SRCREV_meta ?= "8ae7073a934d80c4f4b808bc01884777454aae8f"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
+           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.0;destsuffix=${KMETA}"
+
+COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm"
+
+# Functionality flags
+KERNEL_FEATURES = ""
+
+KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.0.bb b/meta/recipes-kernel/linux/linux-yocto_5.0.bb
new file mode 100644
index 0000000000..768036e298
--- /dev/null
+++ b/meta/recipes-kernel/linux/linux-yocto_5.0.bb
@@ -0,0 +1,51 @@
+KBRANCH ?= "v5.0/standard/base"
+
+require recipes-kernel/linux/linux-yocto.inc
+
+# board specific branches
+KBRANCH_qemuarm  ?= "v5.0/standard/arm-versatile-926ejs"
+KBRANCH_qemuarm64 ?= "v5.0/standard/qemuarm64"
+KBRANCH_qemumips ?= "v5.0/standard/mti-malta32"
+KBRANCH_qemuppc  ?= "v5.0/standard/qemuppc"
+KBRANCH_qemux86  ?= "v5.0/standard/base"
+KBRANCH_qemux86-64 ?= "v5.0/standard/base"
+KBRANCH_qemumips64 ?= "v5.0/standard/mti-malta64"
+
+SRCREV_machine_qemuarm ?= "1fbecad0e6a68b6c57b4f6ef8207e7e90ea764a3"
+SRCREV_machine_qemuarm64 ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
+SRCREV_machine_qemumips ?= "d9dd6d4cfe689efd5cb7bbacd118a3888ac7c517"
+SRCREV_machine_qemuppc ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
+SRCREV_machine_qemux86 ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
+SRCREV_machine_qemux86-64 ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
+SRCREV_machine_qemumips64 ?= "5f072445126e6a9e44f9435a552f4fcf6fc15499"
+SRCREV_machine ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
+SRCREV_meta ?= "8ae7073a934d80c4f4b808bc01884777454aae8f"
+
+# remap qemuarm to qemuarma15 for the 5.0 kernel
+# KMACHINE_qemuarm ?= "qemuarma15"
+
+SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
+           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.0;destsuffix=${KMETA}"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+LINUX_VERSION ?= "5.0"
+
+DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
+DEPENDS += "openssl-native util-linux-native"
+
+PV = "${LINUX_VERSION}+git${SRCPV}"
+
+KMETA = "kernel-meta"
+KCONF_BSP_AUDIT_LEVEL = "2"
+
+KERNEL_DEVICETREE_qemuarm = "versatile-pb.dtb"
+
+COMPATIBLE_MACHINE = "qemuarm|qemuarm64|qemux86|qemuppc|qemumips|qemumips64|qemux86-64"
+
+# Functionality flags
+KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
+KERNEL_FEATURES_append = " ${KERNEL_EXTRA_FEATURES}"
+KERNEL_FEATURES_append_qemuall=" cfg/virtio.scc"
+KERNEL_FEATURES_append_qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES_append_qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
+KERNEL_FEATURES_append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "" ,d)}"
-- 
2.19.1



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

* [PATCH 4/6] lttng: add 5.x fixup patches to 2.10.8 release
  2019-03-06 16:37 [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) bruce.ashfield
                   ` (2 preceding siblings ...)
  2019-03-06 16:37 ` [PATCH 3/6] linux-yocto: introduce 5.0 versioned recipe bruce.ashfield
@ 2019-03-06 16:37 ` bruce.ashfield
  2019-03-06 16:37 ` [PATCH 5/6] linux-yocto/5.0: update configs for h/w reference boards bruce.ashfield
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 24+ messages in thread
From: bruce.ashfield @ 2019-03-06 16:37 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Bruce Ashfield <bruce.ashfield@gmail.com>

lttng hasn't released 2.10.9, but the stable/2.10 branch
contains changes that we need to build against the 5.0
kernel.

We add them here as patches, and we can drop them in the
future when lttng is updated.

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
 ...nguish-between-kernel_siginfo-and-si.patch | 133 +++++++
 ...-signal-Remove-SEND_SIG_FORCED-v4.20.patch |  67 ++++
 ...reserved-cluster-count-when-removing.patch | 149 ++++++++
 ...x-timer-instrumentation-for-RHEL-7.6.patch |  32 ++
 ...argument-from-access_ok-function-v5..patch | 204 +++++++++++
 ...ter-values-with-task-tk_pid-and-rpc_.patch | 186 ++++++++++
 ...ify-defining-common-RPC-trace-events.patch | 183 ++++++++++
 ...-fsid-metadata_fsid-fields-from-btrf.patch | 341 ++++++++++++++++++
 ...p-mempool-Remove-logically-dead-code.patch |  46 +++
 .../lttng/lttng-modules_2.10.8.bb             |   9 +
 10 files changed, 1350 insertions(+)
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch
 create mode 100644 meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch

diff --git a/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch
new file mode 100644
index 0000000000..351184dabb
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch
@@ -0,0 +1,133 @@
+From 0a0d736ec89dffdbc83e7181166a99d5563acfe8 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 5 Nov 2018 11:35:52 -0500
+Subject: [PATCH 1/9] Fix: signal: Distinguish between kernel_siginfo and
+ siginfo (v4.20)
+
+See upstream commit :
+
+  commit ae7795bc6187a15ec51cf258abae656a625f9980
+  Author: Eric W. Biederman <ebiederm@xmission.com>
+  Date:   Tue Sep 25 11:27:20 2018 +0200
+
+    signal: Distinguish between kernel_siginfo and siginfo
+
+    Linus recently observed that if we did not worry about the padding
+    member in struct siginfo it is only about 48 bytes, and 48 bytes is
+    much nicer than 128 bytes for allocating on the stack and copying
+    around in the kernel.
+
+    The obvious thing of only adding the padding when userspace is
+    including siginfo.h won't work as there are sigframe definitions in
+    the kernel that embed struct siginfo.
+
+    So split siginfo in two; kernel_siginfo and siginfo.  Keeping the
+    traditional name for the userspace definition.  While the version that
+    is used internally to the kernel and ultimately will not be padded to
+    128 bytes is called kernel_siginfo.
+
+    The definition of struct kernel_siginfo I have put in include/signal_types.h
+
+    A set of buildtime checks has been added to verify the two structures have
+    the same field offsets.
+
+    To make it easy to verify the change kernel_siginfo retains the same
+    size as siginfo.  The reduction in size comes in a following change.
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/0a0d736ec89dffdbc83e7181166a99d5563acfe8
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ instrumentation/events/lttng-module/signal.h | 41 ++++++++++++++++++--
+ 1 file changed, 37 insertions(+), 4 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/signal.h b/instrumentation/events/lttng-module/signal.h
+index b3c9126..8783b52 100644
+--- a/instrumentation/events/lttng-module/signal.h
++++ b/instrumentation/events/lttng-module/signal.h
+@@ -35,21 +35,24 @@
+  * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV
+  * means that si_code is SI_KERNEL.
+  */
+-#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
+ LTTNG_TRACEPOINT_EVENT(signal_generate,
+ 
+-	TP_PROTO(int sig, struct siginfo *info, struct task_struct *task),
++	TP_PROTO(int sig, struct kernel_siginfo *info, struct task_struct *task,
++			int group, int result),
+ 
+-	TP_ARGS(sig, info, task),
++	TP_ARGS(sig, info, task, group, result),
+ 
+ 	TP_FIELDS(
+ 		ctf_integer(int, sig, sig)
+ 		LTTNG_FIELDS_SIGINFO(info)
+ 		ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
+ 		ctf_integer(pid_t, pid, task->pid)
++		ctf_integer(int, group, group)
++		ctf_integer(int, result, result)
+ 	)
+ )
+-#else
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0))
+ LTTNG_TRACEPOINT_EVENT(signal_generate,
+ 
+ 	TP_PROTO(int sig, struct siginfo *info, struct task_struct *task,
+@@ -66,6 +69,20 @@ LTTNG_TRACEPOINT_EVENT(signal_generate,
+ 		ctf_integer(int, result, result)
+ 	)
+ )
++#else
++LTTNG_TRACEPOINT_EVENT(signal_generate,
++
++	TP_PROTO(int sig, struct siginfo *info, struct task_struct *task),
++
++	TP_ARGS(sig, info, task),
++
++	TP_FIELDS(
++		ctf_integer(int, sig, sig)
++		LTTNG_FIELDS_SIGINFO(info)
++		ctf_array_text(char, comm, task->comm, TASK_COMM_LEN)
++		ctf_integer(pid_t, pid, task->pid)
++	)
++)
+ #endif
+ 
+ /**
+@@ -82,6 +99,21 @@ LTTNG_TRACEPOINT_EVENT(signal_generate,
+  * This means, this can show which signals are actually delivered, but
+  * matching generated signals and delivered signals may not be correct.
+  */
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
++LTTNG_TRACEPOINT_EVENT(signal_deliver,
++
++	TP_PROTO(int sig, struct kernel_siginfo *info, struct k_sigaction *ka),
++
++	TP_ARGS(sig, info, ka),
++
++	TP_FIELDS(
++		ctf_integer(int, sig, sig)
++		LTTNG_FIELDS_SIGINFO(info)
++		ctf_integer(unsigned long, sa_handler, (unsigned long) ka->sa.sa_handler)
++		ctf_integer(unsigned long, sa_flags, ka->sa.sa_flags)
++	)
++)
++#else
+ LTTNG_TRACEPOINT_EVENT(signal_deliver,
+ 
+ 	TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka),
+@@ -95,6 +127,7 @@ LTTNG_TRACEPOINT_EVENT(signal_deliver,
+ 		ctf_integer(unsigned long, sa_flags, ka->sa.sa_flags)
+ 	)
+ )
++#endif
+ 
+ #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0))
+ LTTNG_TRACEPOINT_EVENT_CLASS(signal_queue_overflow,
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch
new file mode 100644
index 0000000000..905b68165b
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch
@@ -0,0 +1,67 @@
+From 26bc064a4d4c85e6000393aadb38659f99b59162 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 5 Nov 2018 11:35:53 -0500
+Subject: [PATCH 2/9] Fix: signal: Remove SEND_SIG_FORCED (v4.20)
+
+See upstream commit :
+
+  commit 4ff4c31a6e85f4c49fbeebeaa28018d002884b5a
+  Author: Eric W. Biederman <ebiederm@xmission.com>
+  Date:   Mon Sep 3 10:39:04 2018 +0200
+
+    signal: Remove SEND_SIG_FORCED
+
+    There are no more users of SEND_SIG_FORCED so it may be safely removed.
+
+    Remove the definition of SEND_SIG_FORCED, it's use in is_si_special,
+    it's use in TP_STORE_SIGINFO, and it's use in __send_signal as without
+    any users the uses of SEND_SIG_FORCED are now unncessary.
+
+    This makes the code simpler, easier to understand and use.  Users of
+    signal sending functions now no longer need to ask themselves do I
+    need to use SEND_SIG_FORCED.
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/26bc064a4d4c85e6000393aadb38659f99b59162
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com> 
+
+---
+ instrumentation/events/lttng-module/signal.h | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/instrumentation/events/lttng-module/signal.h b/instrumentation/events/lttng-module/signal.h
+index 8783b52..ad8fe69 100644
+--- a/instrumentation/events/lttng-module/signal.h
++++ b/instrumentation/events/lttng-module/signal.h
+@@ -12,6 +12,17 @@
+ #include <linux/signal.h>
+ #include <linux/sched.h>
+ #undef LTTNG_FIELDS_SIGINFO
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
++#define LTTNG_FIELDS_SIGINFO(info)				\
++		ctf_integer(int, errno,				\
++			(info == SEND_SIG_NOINFO || info == SEND_SIG_PRIV) ? \
++			0 :					\
++			info->si_errno)				\
++		ctf_integer(int, code,				\
++			(info == SEND_SIG_NOINFO) ? 		\
++			SI_USER : 				\
++			((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) */
+ #define LTTNG_FIELDS_SIGINFO(info)				\
+ 		ctf_integer(int, errno,				\
+ 			(info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED || info == SEND_SIG_PRIV) ? \
+@@ -21,6 +32,7 @@
+ 			(info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED) ? \
+ 			SI_USER : 				\
+ 			((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code))
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0) */
+ #endif /* _TRACE_SIGNAL_DEF */
+ 
+ /**
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch
new file mode 100644
index 0000000000..7edffee542
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch
@@ -0,0 +1,149 @@
+From cb9f1a821bcf55cecf3813195fd6d4eff8070927 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 5 Nov 2018 11:35:54 -0500
+Subject: [PATCH 3/9] Fix: ext4: adjust reserved cluster count when removing
+ extents (v4.20)
+
+See upstream commit :
+
+  commit 9fe671496b6c286f9033aedfc1718d67721da0ae
+  Author: Eric Whitney <enwlinux@gmail.com>
+  Date:   Mon Oct 1 14:25:08 2018 -0400
+
+    ext4: adjust reserved cluster count when removing extents
+
+    Modify ext4_ext_remove_space() and the code it calls to correct the
+    reserved cluster count for pending reservations (delayed allocated
+    clusters shared with allocated blocks) when a block range is removed
+    from the extent tree.  Pending reservations may be found for the clusters
+    at the ends of written or unwritten extents when a block range is removed.
+    If a physical cluster at the end of an extent is freed, it's necessary
+    to increment the reserved cluster count to maintain correct accounting
+    if the corresponding logical cluster is shared with at least one
+    delayed and unwritten extent as found in the extents status tree.
+
+    Add a new function, ext4_rereserve_cluster(), to reapply a reservation
+    on a delayed allocated cluster sharing blocks with a freed allocated
+    cluster.  To avoid ENOSPC on reservation, a flag is applied to
+    ext4_free_blocks() to briefly defer updating the freeclusters counter
+    when an allocated cluster is freed.  This prevents another thread
+    from allocating the freed block before the reservation can be reapplied.
+
+    Redefine the partial cluster object as a struct to carry more state
+    information and to clarify the code using it.
+
+    Adjust the conditional code structure in ext4_ext_remove_space to
+    reduce the indentation level in the main body of the code to improve
+    readability.
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/cb9f1a821bcf55cecf3813195fd6d4eff8070927
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+
+---
+ instrumentation/events/lttng-module/ext4.h | 72 +++++++++++++++++++++-
+ 1 file changed, 69 insertions(+), 3 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/ext4.h b/instrumentation/events/lttng-module/ext4.h
+index fe6f802..83a80ba 100644
+--- a/instrumentation/events/lttng-module/ext4.h
++++ b/instrumentation/events/lttng-module/ext4.h
+@@ -1602,7 +1602,30 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_show_extent,
+ 	)
+ )
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
++
++LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
++	TP_PROTO(struct inode *inode, struct ext4_extent *ex,
++		 ext4_lblk_t from, ext4_fsblk_t to,
++		 struct partial_cluster *pc),
++
++	TP_ARGS(inode, ex, from, to, pc),
++
++	TP_FIELDS(
++		ctf_integer(dev_t, dev, inode->i_sb->s_dev)
++		ctf_integer(ino_t, ino, inode->i_ino)
++		ctf_integer(ext4_lblk_t, from, from)
++		ctf_integer(ext4_lblk_t, to, to)
++		ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
++		ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
++		ctf_integer(unsigned short, ee_len, ext4_ext_get_actual_len(ex))
++		ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
++		ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
++		ctf_integer(int, pc_state, pc->state)
++	)
++)
++
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+ 
+ LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
+ 	    TP_PROTO(struct inode *inode, struct ext4_extent *ex,
+@@ -1646,7 +1669,29 @@ LTTNG_TRACEPOINT_EVENT(ext4_remove_blocks,
+ 
+ #endif
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
++
++LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
++	TP_PROTO(struct inode *inode, ext4_lblk_t start,
++		 struct ext4_extent *ex,
++		 struct partial_cluster *pc),
++
++	TP_ARGS(inode, start, ex, pc),
++
++	TP_FIELDS(
++		ctf_integer(dev_t, dev, inode->i_sb->s_dev)
++		ctf_integer(ino_t, ino, inode->i_ino)
++		ctf_integer(ext4_lblk_t, start, start)
++		ctf_integer(ext4_lblk_t, ee_lblk, le32_to_cpu(ex->ee_block))
++		ctf_integer(ext4_fsblk_t, ee_pblk, ext4_ext_pblock(ex))
++		ctf_integer(short, ee_len, ext4_ext_get_actual_len(ex))
++		ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
++		ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
++		ctf_integer(int, pc_state, pc->state)
++	)
++)
++
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+ 
+ LTTNG_TRACEPOINT_EVENT(ext4_ext_rm_leaf,
+ 	TP_PROTO(struct inode *inode, ext4_lblk_t start,
+@@ -1733,7 +1778,28 @@ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space,
+ 
+ #endif
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
++
++LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
++	TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
++		 int depth, struct partial_cluster *pc, __le16 eh_entries),
++
++	TP_ARGS(inode, start, end, depth, pc, eh_entries),
++
++	TP_FIELDS(
++		ctf_integer(dev_t, dev, inode->i_sb->s_dev)
++		ctf_integer(ino_t, ino, inode->i_ino)
++		ctf_integer(ext4_lblk_t, start, start)
++		ctf_integer(ext4_lblk_t, end, end)
++		ctf_integer(int, depth, depth)
++		ctf_integer(unsigned short, eh_entries, le16_to_cpu(eh_entries))
++		ctf_integer(ext4_fsblk_t, pc_pclu, pc->pclu)
++		ctf_integer(ext4_lblk_t, pc_lblk, pc->lblk)
++		ctf_integer(int, pc_state, pc->state)
++	)
++)
++
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0))
+ 
+ LTTNG_TRACEPOINT_EVENT(ext4_ext_remove_space_done,
+ 	TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end,
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch b/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch
new file mode 100644
index 0000000000..b5d50dba1c
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0004-Fix-timer-instrumentation-for-RHEL-7.6.patch
@@ -0,0 +1,32 @@
+From 4eaeb54a27fbf701c2a4908a6e90a978b93deb06 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Thu, 6 Dec 2018 11:31:51 -0500
+Subject: [PATCH 4/9] Fix: timer instrumentation for RHEL 7.6
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/4eaeb54a27fbf701c2a4908a6e90a978b93deb06
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ instrumentation/events/lttng-module/timer.h | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/instrumentation/events/lttng-module/timer.h b/instrumentation/events/lttng-module/timer.h
+index 6f0cb7f..8807ad5 100644
+--- a/instrumentation/events/lttng-module/timer.h
++++ b/instrumentation/events/lttng-module/timer.h
+@@ -44,7 +44,8 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(timer_class, timer_init,
+ 	TP_ARGS(timer)
+ )
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,2,0) || \
++	LTTNG_RHEL_KERNEL_RANGE(3,10,0,957,0,0, 3,11,0,0,0,0))
+ /**
+  * timer_start - called when the timer is started
+  * @timer:	pointer to struct timer_list
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch b/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch
new file mode 100644
index 0000000000..2266bbd9e0
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch
@@ -0,0 +1,204 @@
+From 0039dbe9891cfdf2c0d04691f83c2f342993dfd7 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Wed, 9 Jan 2019 14:59:15 -0500
+Subject: [PATCH 5/9] Fix: Remove 'type' argument from access_ok() function
+ (v5.0)
+
+See upstream commit :
+
+  commit 96d4f267e40f9509e8a66e2b39e8b95655617693
+  Author: Linus Torvalds <torvalds@linux-foundation.org>
+  Date:   Thu Jan 3 18:57:57 2019 -0800
+
+    Remove 'type' argument from access_ok() function
+
+    Nobody has actually used the type (VERIFY_READ vs VERIFY_WRITE) argument
+    of the user address range verification function since we got rid of the
+    old racy i386-only code to walk page tables by hand.
+
+    It existed because the original 80386 would not honor the write protect
+    bit when in kernel mode, so you had to do COW by hand before doing any
+    user access.  But we haven't supported that in a long time, and these
+    days the 'type' argument is a purely historical artifact.
+
+    A discussion about extending 'user_access_begin()' to do the range
+    checking resulted this patch, because there is no way we're going to
+    move the old VERIFY_xyz interface to that model.  And it's best done at
+    the end of the merge window when I've done most of my merges, so let's
+    just get this done once and for all.
+
+    This patch was mostly done with a sed-script, with manual fix-ups for
+    the cases that weren't of the trivial 'access_ok(VERIFY_xyz' form.
+
+    There were a couple of notable cases:
+
+     - csky still had the old "verify_area()" name as an alias.
+
+     - the iter_iov code had magical hardcoded knowledge of the actual
+       values of VERIFY_{READ,WRITE} (not that they mattered, since nothing
+       really used it)
+
+     - microblaze used the type argument for a debug printout
+
+    but other than those oddities this should be a total no-op patch.
+
+    I tried to fix up all architectures, did fairly extensive grepping for
+    access_ok() uses, and the changes are trivial, but I may have missed
+    something.  Any missed conversion should be trivially fixable, though.
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/0039dbe9891cfdf2c0d04691f83c2f342993dfd7
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ lib/ringbuffer/backend.h              |  8 ++++----
+ lib/ringbuffer/ring_buffer_iterator.c |  3 ++-
+ lttng-filter-interpreter.c            |  4 ++--
+ probes/lttng-probe-user.c             |  3 ++-
+ wrapper/uaccess.h                     | 28 +++++++++++++++++++++++++++
+ 5 files changed, 38 insertions(+), 8 deletions(-)
+ create mode 100644 wrapper/uaccess.h
+
+diff --git a/lib/ringbuffer/backend.h b/lib/ringbuffer/backend.h
+index 0b75de8..3f8c108 100644
+--- a/lib/ringbuffer/backend.h
++++ b/lib/ringbuffer/backend.h
+@@ -34,7 +34,7 @@
+ #include <linux/list.h>
+ #include <linux/fs.h>
+ #include <linux/mm.h>
+-#include <linux/uaccess.h>
++#include <wrapper/uaccess.h>
+ 
+ /* Internal helpers */
+ #include <wrapper/ringbuffer/backend_internal.h>
+@@ -302,7 +302,7 @@ void lib_ring_buffer_copy_from_user_inatomic(const struct lib_ring_buffer_config
+ 
+ 	set_fs(KERNEL_DS);
+ 	pagefault_disable();
+-	if (unlikely(!access_ok(VERIFY_READ, src, len)))
++	if (unlikely(!lttng_access_ok(VERIFY_READ, src, len)))
+ 		goto fill_buffer;
+ 
+ 	if (likely(pagecpy == len)) {
+@@ -372,7 +372,7 @@ void lib_ring_buffer_strcpy_from_user_inatomic(const struct lib_ring_buffer_conf
+ 
+ 	set_fs(KERNEL_DS);
+ 	pagefault_disable();
+-	if (unlikely(!access_ok(VERIFY_READ, src, len)))
++	if (unlikely(!lttng_access_ok(VERIFY_READ, src, len)))
+ 		goto fill_buffer;
+ 
+ 	if (likely(pagecpy == len)) {
+@@ -462,7 +462,7 @@ unsigned long lib_ring_buffer_copy_from_user_check_nofault(void *dest,
+ 	unsigned long ret;
+ 	mm_segment_t old_fs;
+ 
+-	if (!access_ok(VERIFY_READ, src, len))
++	if (!lttng_access_ok(VERIFY_READ, src, len))
+ 		return 1;
+ 	old_fs = get_fs();
+ 	set_fs(KERNEL_DS);
+diff --git a/lib/ringbuffer/ring_buffer_iterator.c b/lib/ringbuffer/ring_buffer_iterator.c
+index 61eaa5b..9645946 100644
+--- a/lib/ringbuffer/ring_buffer_iterator.c
++++ b/lib/ringbuffer/ring_buffer_iterator.c
+@@ -27,6 +27,7 @@
+ 
+ #include <wrapper/ringbuffer/iterator.h>
+ #include <wrapper/file.h>
++#include <wrapper/uaccess.h>
+ #include <linux/jiffies.h>
+ #include <linux/delay.h>
+ #include <linux/module.h>
+@@ -621,7 +622,7 @@ ssize_t channel_ring_buffer_file_read(struct file *filp,
+ 	ssize_t len;
+ 
+ 	might_sleep();
+-	if (!access_ok(VERIFY_WRITE, user_buf, count))
++	if (!lttng_access_ok(VERIFY_WRITE, user_buf, count))
+ 		return -EFAULT;
+ 
+ 	/* Finish copy of previous record */
+diff --git a/lttng-filter-interpreter.c b/lttng-filter-interpreter.c
+index e131462..bee2918 100644
+--- a/lttng-filter-interpreter.c
++++ b/lttng-filter-interpreter.c
+@@ -24,7 +24,7 @@
+  * SOFTWARE.
+  */
+ 
+-#include <linux/uaccess.h>
++#include <wrapper/uaccess.h>
+ #include <wrapper/frame.h>
+ #include <wrapper/types.h>
+ 
+@@ -46,7 +46,7 @@ char get_char(struct estack_entry *reg, size_t offset)
+ 		char c;
+ 
+ 		/* Handle invalid access as end of string. */
+-		if (unlikely(!access_ok(VERIFY_READ,
++		if (unlikely(!lttng_access_ok(VERIFY_READ,
+ 				reg->u.s.user_str + offset,
+ 				sizeof(c))))
+ 			return '\0';
+diff --git a/probes/lttng-probe-user.c b/probes/lttng-probe-user.c
+index 099a66b..ed566dd 100644
+--- a/probes/lttng-probe-user.c
++++ b/probes/lttng-probe-user.c
+@@ -20,6 +20,7 @@
+ 
+ #include <linux/uaccess.h>
+ #include <linux/module.h>
++#include <wrapper/uaccess.h>
+ #include <probes/lttng-probe-user.h>
+ 
+ /*
+@@ -43,7 +44,7 @@ long lttng_strlen_user_inatomic(const char *addr)
+ 		char v;
+ 		unsigned long ret;
+ 
+-		if (unlikely(!access_ok(VERIFY_READ,
++		if (unlikely(!lttng_access_ok(VERIFY_READ,
+ 				(__force const char __user *) addr,
+ 				sizeof(v))))
+ 			break;
+diff --git a/wrapper/uaccess.h b/wrapper/uaccess.h
+new file mode 100644
+index 0000000..c56427c
+--- /dev/null
++++ b/wrapper/uaccess.h
+@@ -0,0 +1,28 @@
++/* SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1)
++ *
++ * wrapper/uaccess.h
++ *
++ * wrapper around linux/uaccess.h.
++ *
++ * Copyright (C) 2019 Michael Jeanson <mjeanson@efficios.com>
++ */
++
++#ifndef _LTTNG_WRAPPER_UACCESS_H
++#define _LTTNG_WRAPPER_UACCESS_H
++
++#include <linux/uaccess.h>
++#include <lttng-kernel-version.h>
++
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
++
++#define VERIFY_READ	0
++#define VERIFY_WRITE	1
++#define lttng_access_ok(type, addr, size) access_ok(addr, size)
++
++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0) */
++
++#define lttng_access_ok(type, addr, size) access_ok(type, addr, size)
++
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0) */
++
++#endif /* _LTTNG_WRAPPER_UACCESS_H */
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch b/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch
new file mode 100644
index 0000000000..089486f51b
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch
@@ -0,0 +1,186 @@
+From 89f0be35e1baf411df6852014013ac64ad1bbcf8 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Wed, 9 Jan 2019 14:59:16 -0500
+Subject: [PATCH 6/9] Fix: Replace pointer values with task->tk_pid and
+ rpc_clnt->cl_clid
+
+Introduced in v3.12.
+
+See upstream commit :
+
+  commit 92cb6c5be8134db6f7c38f25f6afd13e444cebaf
+  Author: Trond Myklebust <Trond.Myklebust@netapp.com>
+  Date:   Wed Sep 4 22:09:50 2013 -0400
+
+    SUNRPC: Replace pointer values with task->tk_pid and rpc_clnt->cl_clid
+
+    Instead of the pointer values, use the task and client identifier values
+    for tracing purposes.
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/89f0be35e1baf411df6852014013ac64ad1bbcf8
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ instrumentation/events/lttng-module/rpc.h | 108 ++++++++++++++++++++--
+ 1 file changed, 102 insertions(+), 6 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/rpc.h b/instrumentation/events/lttng-module/rpc.h
+index b9e45fe..a4ac557 100644
+--- a/instrumentation/events/lttng-module/rpc.h
++++ b/instrumentation/events/lttng-module/rpc.h
+@@ -8,6 +8,20 @@
+ #include <linux/sunrpc/sched.h>
+ #include <linux/sunrpc/clnt.h>
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
++LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
++
++	TP_PROTO(struct rpc_task *task),
++
++	TP_ARGS(task),
++
++	TP_FIELDS(
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
++		ctf_integer(int, status, task->tk_status)
++	)
++)
++#else
+ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
+ 
+ 	TP_PROTO(struct rpc_task *task),
+@@ -20,6 +34,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
+ 		ctf_integer(int, status, task->tk_status)
+ 	)
+ )
++#endif
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
+ 	TP_PROTO(struct rpc_task *task),
+@@ -40,8 +55,8 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
+ 	TP_ARGS(task),
+ 
+ 	TP_FIELDS(
+-		ctf_integer_hex(const struct rpc_task *, task, task)
+-		ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
+ 		ctf_integer(int, status, task->tk_status)
+ 	)
+ )
+@@ -53,8 +68,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
+ 	TP_ARGS(task, action),
+ 
+ 	TP_FIELDS(
+-		ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
+-		ctf_integer_hex(const struct rpc_task *, task, task)
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
+ 		ctf_integer_hex(const void *, action, action)
+ 		ctf_integer(unsigned long, runstate, task->tk_runstate)
+ 		ctf_integer(int, status, task->tk_status)
+@@ -90,8 +105,8 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
+ 	TP_ARGS(task, q),
+ 
+ 	TP_FIELDS(
+-		ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
+-		ctf_integer_hex(const struct rpc_task *, task, task)
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
+ 		ctf_integer(unsigned long, timeout, task->tk_timeout)
+ 		ctf_integer(unsigned long, runstate, task->tk_runstate)
+ 		ctf_integer(int, status, task->tk_status)
+@@ -114,6 +129,87 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
+ 	TP_ARGS(task, q)
+ )
+ 
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
++LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
++	TP_PROTO(struct rpc_task *task, int status),
++
++	TP_ARGS(task, status),
++
++	TP_FIELDS(
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
++		ctf_integer(int, status, status)
++	)
++)
++
++LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
++
++	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
++
++	TP_ARGS(clnt, task, action),
++
++	TP_FIELDS(
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
++		ctf_integer_hex(const void *, action, action)
++		ctf_integer(unsigned long, runstate, task->tk_runstate)
++		ctf_integer(int, status, task->tk_status)
++		ctf_integer(unsigned short, flags, task->tk_flags)
++	)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_begin,
++
++	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
++
++	TP_ARGS(clnt, task, action)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_run_action,
++
++	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
++
++	TP_ARGS(clnt, task, action)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_running, rpc_task_complete,
++
++	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
++
++	TP_ARGS(clnt, task, action)
++)
++
++LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_queued,
++
++	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
++
++	TP_ARGS(clnt, task, q),
++
++	TP_FIELDS(
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
++		ctf_integer(unsigned long, timeout, task->tk_timeout)
++		ctf_integer(unsigned long, runstate, task->tk_runstate)
++		ctf_integer(int, status, task->tk_status)
++		ctf_integer(unsigned short, flags, task->tk_flags)
++		ctf_string(q_name, rpc_qname(q))
++	)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_sleep,
++
++	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
++
++	TP_ARGS(clnt, task, q)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
++
++	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q),
++
++	TP_ARGS(clnt, task, q)
++)
++
+ #else
+ LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
+ 	TP_PROTO(struct rpc_task *task, int status),
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch b/meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch
new file mode 100644
index 0000000000..f3673301de
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch
@@ -0,0 +1,183 @@
+From d11b568681f87c2df6ecb0516d3f16d153f24bd2 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Wed, 9 Jan 2019 14:59:17 -0500
+Subject: [PATCH 7/9] Fix: SUNRPC: Simplify defining common RPC trace events
+ (v5.0)
+
+See upstream commit :
+
+  commit dc5820bd21d84ee34770b0a1e2fca9378f8f7456
+  Author: Chuck Lever <chuck.lever@oracle.com>
+  Date:   Wed Dec 19 11:00:16 2018 -0500
+
+    SUNRPC: Simplify defining common RPC trace events
+
+    Clean up, no functional change is expected.
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/d11b568681f87c2df6ecb0516d3f16d153f24bd2
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ instrumentation/events/lttng-module/rpc.h | 99 ++++++++++++++++-------
+ 1 file changed, 72 insertions(+), 27 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/rpc.h b/instrumentation/events/lttng-module/rpc.h
+index a4ac557..4239280 100644
+--- a/instrumentation/events/lttng-module/rpc.h
++++ b/instrumentation/events/lttng-module/rpc.h
+@@ -8,7 +8,32 @@
+ #include <linux/sunrpc/sched.h>
+ #include <linux/sunrpc/clnt.h>
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
++LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
++
++	TP_PROTO(const struct rpc_task *task),
++
++	TP_ARGS(task),
++
++	TP_FIELDS(
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
++		ctf_integer(int, status, task->tk_status)
++	)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
++	TP_PROTO(const struct rpc_task *task),
++
++	TP_ARGS(task)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
++	TP_PROTO(const struct rpc_task *task),
++
++	TP_ARGS(task)
++)
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
+ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
+ 
+ 	TP_PROTO(struct rpc_task *task),
+@@ -21,6 +46,18 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
+ 		ctf_integer(int, status, task->tk_status)
+ 	)
+ )
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
++	TP_PROTO(struct rpc_task *task),
++
++	TP_ARGS(task)
++)
++
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
++	TP_PROTO(struct rpc_task *task),
++
++	TP_ARGS(task)
++)
+ #else
+ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
+ 
+@@ -34,7 +71,6 @@ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_status,
+ 		ctf_integer(int, status, task->tk_status)
+ 	)
+ )
+-#endif
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_call_status,
+ 	TP_PROTO(struct rpc_task *task),
+@@ -47,8 +83,15 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_bind_status,
+ 
+ 	TP_ARGS(task)
+ )
++#endif
+ 
+-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
++LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_status, rpc_connect_status,
++	TP_PROTO(const struct rpc_task *task),
++
++	TP_ARGS(task)
++)
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
+ LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
+ 	TP_PROTO(const struct rpc_task *task),
+ 
+@@ -60,7 +103,33 @@ LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
+ 		ctf_integer(int, status, task->tk_status)
+ 	)
+ )
++#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
++LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
++	TP_PROTO(struct rpc_task *task, int status),
++
++	TP_ARGS(task, status),
++
++	TP_FIELDS(
++		ctf_integer(unsigned int, task_id, task->tk_pid)
++		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
++		ctf_integer(int, status, status)
++	)
++)
++#else
++LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
++	TP_PROTO(struct rpc_task *task, int status),
++
++	TP_ARGS(task, status),
++
++	TP_FIELDS(
++		ctf_integer_hex(const struct rpc_task *, task, task)
++		ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
++		ctf_integer(int, status, status)
++	)
++)
++#endif
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,17,0))
+ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
+ 
+ 	TP_PROTO(const struct rpc_task *task, const void *action),
+@@ -130,18 +199,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
+ )
+ 
+ #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,12,0))
+-LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
+-	TP_PROTO(struct rpc_task *task, int status),
+-
+-	TP_ARGS(task, status),
+-
+-	TP_FIELDS(
+-		ctf_integer(unsigned int, task_id, task->tk_pid)
+-		ctf_integer(unsigned int, client_id, task->tk_client->cl_clid)
+-		ctf_integer(int, status, status)
+-	)
+-)
+-
+ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
+ 
+ 	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
+@@ -211,18 +268,6 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE(rpc_task_queued, rpc_task_wakeup,
+ )
+ 
+ #else
+-LTTNG_TRACEPOINT_EVENT(rpc_connect_status,
+-	TP_PROTO(struct rpc_task *task, int status),
+-
+-	TP_ARGS(task, status),
+-
+-	TP_FIELDS(
+-		ctf_integer_hex(const struct rpc_task *, task, task)
+-		ctf_integer_hex(const struct rpc_clnt *, clnt, task->tk_client)
+-		ctf_integer(int, status, status)
+-	)
+-)
+-
+ LTTNG_TRACEPOINT_EVENT_CLASS(rpc_task_running,
+ 
+ 	TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action),
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch b/meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch
new file mode 100644
index 0000000000..5f12989956
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch
@@ -0,0 +1,341 @@
+From 8af8245f6f86370d01cc4acaabafb90de45e143f Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Thu, 10 Jan 2019 14:56:15 -0500
+Subject: [PATCH 8/9] Fix: btrfs: Remove fsid/metadata_fsid fields from
+ btrfs_info
+
+Introduced in v5.0.
+
+See upstream commit :
+
+  commit de37aa513105f864d3c21105bf5542d498f21ca2
+  Author: Nikolay Borisov <nborisov@suse.com>
+  Date:   Tue Oct 30 16:43:24 2018 +0200
+
+    btrfs: Remove fsid/metadata_fsid fields from btrfs_info
+
+    Currently btrfs_fs_info structure contains a copy of the
+    fsid/metadata_uuid fields. Same values are also contained in the
+    btrfs_fs_devices structure which fs_info has a reference to. Let's
+    reduce duplication by removing the fields from fs_info and always refer
+    to the ones in fs_devices. No functional changes.
+
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/8af8245f6f86370d01cc4acaabafb90de45e143f
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ instrumentation/events/lttng-module/btrfs.h | 100 +++++++++++---------
+ 1 file changed, 53 insertions(+), 47 deletions(-)
+
+diff --git a/instrumentation/events/lttng-module/btrfs.h b/instrumentation/events/lttng-module/btrfs.h
+index 4dfbf5b..ec45a1e 100644
+--- a/instrumentation/events/lttng-module/btrfs.h
++++ b/instrumentation/events/lttng-module/btrfs.h
+@@ -32,6 +32,12 @@ struct extent_state;
+ 
+ #define BTRFS_UUID_SIZE 16
+ 
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,0,0))
++#define lttng_fs_info_fsid fs_info->fs_devices->fsid
++#else
++#define lttng_fs_info_fsid fs_info->fsid
++#endif
++
+ #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,14,0) || \
+ 	LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
+ 	LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
+@@ -629,7 +635,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_add_block_group,
+ 	TP_ARGS(fs_info, block_group, create),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_integer(u64, offset, block_group->key.objectid)
+ 		ctf_integer(u64, size, block_group->key.offset)
+ 		ctf_integer(u64, flags, block_group->flags)
+@@ -647,7 +653,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_add_block_group,
+ 	TP_ARGS(fs_info, block_group, create),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_integer(u64, offset, block_group->key.objectid)
+ 		ctf_integer(u64, size, block_group->key.offset)
+ 		ctf_integer(u64, flags, block_group->flags)
+@@ -1015,18 +1021,18 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_alloc,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info, const struct map_lookup *map,
++	TP_PROTO(const struct btrfs_fs_info *fs_info, const struct map_lookup *map,
+ 		 u64 offset, u64 size),
+ 
+-	TP_ARGS(info, map, offset, size)
++	TP_ARGS(fs_info, map, offset, size)
+ )
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_free,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info, const struct map_lookup *map,
++	TP_PROTO(const struct btrfs_fs_info *fs_info, const struct map_lookup *map,
+ 		 u64 offset, u64 size),
+ 
+-	TP_ARGS(info, map, offset, size)
++	TP_ARGS(fs_info, map, offset, size)
+ )
+ 
+ #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
+@@ -1050,18 +1056,18 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__chunk,
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_alloc,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info, struct map_lookup *map,
++	TP_PROTO(struct btrfs_fs_info *fs_info, struct map_lookup *map,
+ 		 u64 offset, u64 size),
+ 
+-	TP_ARGS(info, map, offset, size)
++	TP_ARGS(fs_info, map, offset, size)
+ )
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__chunk,  btrfs_chunk_free,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info, struct map_lookup *map,
++	TP_PROTO(struct btrfs_fs_info *fs_info, struct map_lookup *map,
+ 		 u64 offset, u64 size),
+ 
+-	TP_ARGS(info, map, offset, size)
++	TP_ARGS(fs_info, map, offset, size)
+ )
+ 
+ #elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
+@@ -1192,7 +1198,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
+ 	TP_ARGS(fs_info, type, val, bytes, reserve),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_string(type, type)
+ 		ctf_integer(u64, val, val)
+ 		ctf_integer(u64, bytes, bytes)
+@@ -1208,7 +1214,7 @@ LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
+ 	TP_ARGS(fs_info, type, val, bytes, reserve),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, fs_info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_string(type, type)
+ 		ctf_integer(u64, val, val)
+ 		ctf_integer(u64, bytes, bytes)
+@@ -1221,9 +1227,9 @@ LTTNG_TRACEPOINT_EVENT(btrfs_space_reservation,
+ 
+ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info, u64 start, u64 len),
++	TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
+ 
+-	TP_ARGS(info, start, len),
++	TP_ARGS(fs_info, start, len),
+ 
+ 	TP_FIELDS(
+ 		ctf_integer(u64, start, start)
+@@ -1233,25 +1239,25 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent,  btrfs_reserved_extent_alloc,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info, u64 start, u64 len),
++	TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
+ 
+-	TP_ARGS(info, start, len)
++	TP_ARGS(fs_info, start, len)
+ )
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent,  btrfs_reserved_extent_free,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info, u64 start, u64 len),
++	TP_PROTO(const struct btrfs_fs_info *fs_info, u64 start, u64 len),
+ 
+-	TP_ARGS(info, start, len)
++	TP_ARGS(fs_info, start, len)
+ )
+ 
+ #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
+ 
+ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info, u64 start, u64 len),
++	TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
+ 
+-	TP_ARGS(info, start, len),
++	TP_ARGS(fs_info, start, len),
+ 
+ 	TP_FIELDS(
+ 		ctf_integer(u64, start, start)
+@@ -1261,16 +1267,16 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserved_extent,
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent,  btrfs_reserved_extent_alloc,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info, u64 start, u64 len),
++	TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
+ 
+-	TP_ARGS(info, start, len)
++	TP_ARGS(fs_info, start, len)
+ )
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserved_extent,  btrfs_reserved_extent_free,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info, u64 start, u64 len),
++	TP_PROTO(struct btrfs_fs_info *fs_info, u64 start, u64 len),
+ 
+-	TP_ARGS(info, start, len)
++	TP_ARGS(fs_info, start, len)
+ )
+ 
+ #elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
+@@ -1341,13 +1347,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
+ 
+ 	btrfs_find_free_extent,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info, u64 num_bytes, u64 empty_size,
++	TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
+ 		 u64 data),
+ 
+-	TP_ARGS(info, num_bytes, empty_size, data),
++	TP_ARGS(fs_info, num_bytes, empty_size, data),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_integer(u64, num_bytes, num_bytes)
+ 		ctf_integer(u64, empty_size, empty_size)
+ 		ctf_integer(u64, data, data)
+@@ -1362,7 +1368,7 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
+ 	TP_ARGS(block_group, start, len),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, block_group->fs_info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, block_group->lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_integer(u64, bg_objectid, block_group->key.objectid)
+ 		ctf_integer(u64, flags, block_group->flags)
+ 		ctf_integer(u64, start, start)
+@@ -1391,13 +1397,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
+ 
+ 	btrfs_find_free_extent,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info, u64 num_bytes, u64 empty_size,
++	TP_PROTO(const struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
+ 		 u64 data),
+ 
+-	TP_ARGS(info, num_bytes, empty_size, data),
++	TP_ARGS(fs_info, num_bytes, empty_size, data),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_integer(u64, num_bytes, num_bytes)
+ 		ctf_integer(u64, empty_size, empty_size)
+ 		ctf_integer(u64, data, data)
+@@ -1406,14 +1412,14 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
+ 
+ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info,
++	TP_PROTO(const struct btrfs_fs_info *fs_info,
+ 		 const struct btrfs_block_group_cache *block_group, u64 start,
+ 		 u64 len),
+ 
+-	TP_ARGS(info, block_group, start, len),
++	TP_ARGS(fs_info, block_group, start, len),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_integer(u64, bg_objectid, block_group->key.objectid)
+ 		ctf_integer(u64, flags, block_group->flags)
+ 		ctf_integer(u64, start, start)
+@@ -1423,20 +1429,20 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info,
++	TP_PROTO(const struct btrfs_fs_info *fs_info,
+ 		 const struct btrfs_block_group_cache *block_group, u64 start,
+ 		 u64 len),
+ 
+-	TP_ARGS(info, block_group, start, len)
++	TP_ARGS(fs_info, block_group, start, len)
+ )
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
+ 
+-	TP_PROTO(const struct btrfs_fs_info *info,
++	TP_PROTO(const struct btrfs_fs_info *fs_info,
+ 		 const struct btrfs_block_group_cache *block_group, u64 start,
+ 		 u64 len),
+ 
+-	TP_ARGS(info, block_group, start, len)
++	TP_ARGS(fs_info, block_group, start, len)
+ )
+ 
+ #elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0))
+@@ -1445,13 +1451,13 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
+ 
+ 	btrfs_find_free_extent,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info, u64 num_bytes, u64 empty_size,
++	TP_PROTO(struct btrfs_fs_info *fs_info, u64 num_bytes, u64 empty_size,
+ 		 u64 data),
+ 
+-	TP_ARGS(info, num_bytes, empty_size, data),
++	TP_ARGS(fs_info, num_bytes, empty_size, data),
+ 
+ 	TP_FIELDS(
+-		ctf_array(u8, fsid, info->fsid, BTRFS_UUID_SIZE)
++		ctf_array(u8, fsid, lttng_fs_info_fsid, BTRFS_UUID_SIZE)
+ 		ctf_integer(u64, num_bytes, num_bytes)
+ 		ctf_integer(u64, empty_size, empty_size)
+ 		ctf_integer(u64, data, data)
+@@ -1460,11 +1466,11 @@ LTTNG_TRACEPOINT_EVENT_MAP(find_free_extent,
+ 
+ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info,
++	TP_PROTO(struct btrfs_fs_info *fs_info,
+ 		 struct btrfs_block_group_cache *block_group, u64 start,
+ 		 u64 len),
+ 
+-	TP_ARGS(info, block_group, start, len),
++	TP_ARGS(fs_info, block_group, start, len),
+ 
+ 	TP_FIELDS(
+ 		ctf_integer(u64, bg_objectid, block_group->key.objectid)
+@@ -1476,20 +1482,20 @@ LTTNG_TRACEPOINT_EVENT_CLASS(btrfs__reserve_extent,
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info,
++	TP_PROTO(struct btrfs_fs_info *fs_info,
+ 		 struct btrfs_block_group_cache *block_group, u64 start,
+ 		 u64 len),
+ 
+-	TP_ARGS(info, block_group, start, len)
++	TP_ARGS(fs_info, block_group, start, len)
+ )
+ 
+ LTTNG_TRACEPOINT_EVENT_INSTANCE(btrfs__reserve_extent, btrfs_reserve_extent_cluster,
+ 
+-	TP_PROTO(struct btrfs_fs_info *info,
++	TP_PROTO(struct btrfs_fs_info *fs_info,
+ 		 struct btrfs_block_group_cache *block_group, u64 start,
+ 		 u64 len),
+ 
+-	TP_ARGS(info, block_group, start, len)
++	TP_ARGS(fs_info, block_group, start, len)
+ )
+ #elif (LTTNG_SLE_KERNEL_RANGE(4,4,73,5,0,0, 4,4,73,6,0,0) || \
+ 	LTTNG_SLE_KERNEL_RANGE(4,4,82,6,0,0, 4,4,82,7,0,0) || \
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch b/meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch
new file mode 100644
index 0000000000..4ffe488677
--- /dev/null
+++ b/meta/recipes-kernel/lttng/lttng-modules/0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch
@@ -0,0 +1,46 @@
+From 416cee8707053a9015dfec8332e12f8c263098e3 Mon Sep 17 00:00:00 2001
+From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Date: Thu, 14 Feb 2019 11:40:50 -0500
+Subject: [PATCH 9/9] Cleanup: tp mempool: Remove logically dead code
+
+Found by Coverity:
+CID 1391045 (#1 of 1): Logically dead code (DEADCODE)
+
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+
+Upstream-Status: backport https://github.com/lttng/lttng-modules/commit/416cee8707053a9015dfec8332e12f8c263098e3
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ lttng-tp-mempool.c | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+diff --git a/lttng-tp-mempool.c b/lttng-tp-mempool.c
+index d984bd4..21e8376 100644
+--- a/lttng-tp-mempool.c
++++ b/lttng-tp-mempool.c
+@@ -151,19 +151,12 @@ void lttng_tp_mempool_free(void *ptr)
+ 	struct lttng_tp_buf_entry *entry;
+ 	struct per_cpu_buf *cpu_buf;
+ 
+-	if (!ptr) {
++	if (!ptr)
+ 		goto end;
+-	}
+-
+ 	entry = container_of(ptr, struct lttng_tp_buf_entry, buf);
+-	if (!entry) {
+-		goto end;
+-	}
+-
+ 	cpu_buf = per_cpu_ptr(pool, entry->cpu);
+-	if (!cpu_buf) {
++	if (!cpu_buf)
+ 		goto end;
+-	}
+ 	/* Add it to the free list. */
+ 	list_add_tail(&entry->list, &cpu_buf->free_list);
+ 
+-- 
+2.19.1
+
diff --git a/meta/recipes-kernel/lttng/lttng-modules_2.10.8.bb b/meta/recipes-kernel/lttng/lttng-modules_2.10.8.bb
index 92e8c319b6..086254d3d3 100644
--- a/meta/recipes-kernel/lttng/lttng-modules_2.10.8.bb
+++ b/meta/recipes-kernel/lttng/lttng-modules_2.10.8.bb
@@ -15,6 +15,15 @@ COMPATIBLE_HOST = '(x86_64|i.86|powerpc|aarch64|mips|nios2|arm).*-linux'
 SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://Makefile-Do-not-fail-if-CONFIG_TRACEPOINTS-is-not-en.patch \
            file://BUILD_RUNTIME_BUG_ON-vs-gcc7.patch \
+           file://0001-Fix-signal-Distinguish-between-kernel_siginfo-and-si.patch \
+           file://0002-Fix-signal-Remove-SEND_SIG_FORCED-v4.20.patch \
+           file://0003-Fix-ext4-adjust-reserved-cluster-count-when-removing.patch \
+           file://0004-Fix-timer-instrumentation-for-RHEL-7.6.patch \
+           file://0005-Fix-Remove-type-argument-from-access_ok-function-v5..patch \
+           file://0006-Fix-Replace-pointer-values-with-task-tk_pid-and-rpc_.patch \
+           file://0007-Fix-SUNRPC-Simplify-defining-common-RPC-trace-events.patch \
+           file://0008-Fix-btrfs-Remove-fsid-metadata_fsid-fields-from-btrf.patch \
+           file://0009-Cleanup-tp-mempool-Remove-logically-dead-code.patch \
            "
 
 SRC_URI[md5sum] = "54bd9fca61487bbec1b3fca2f2213c98"
-- 
2.19.1



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

* [PATCH 5/6] linux-yocto/5.0: update configs for h/w reference boards
  2019-03-06 16:37 [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) bruce.ashfield
                   ` (3 preceding siblings ...)
  2019-03-06 16:37 ` [PATCH 4/6] lttng: add 5.x fixup patches to 2.10.8 release bruce.ashfield
@ 2019-03-06 16:37 ` bruce.ashfield
  2019-03-06 16:37 ` [PATCH 6/6] machine: bump preferred version to 5.0 bruce.ashfield
  2019-03-06 23:05 ` [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) Richard Purdie
  6 siblings, 0 replies; 24+ messages in thread
From: bruce.ashfield @ 2019-03-06 16:37 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Bruce Ashfield <bruce.ashfield@gmail.com>

Integrating configuration changes from Kevin Hao for the reference
boards on the 5.0 kernel:

   be627e4e386 beaglebone: Switch to the 8250 omap driver
   957f6060c25 beaglebone: Update the audio options
   ab5298a6983 mpc8315e-rdb: Enable the CONFIG_MTD_PHYSMAP

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
 meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb   | 2 +-
 meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb | 2 +-
 meta/recipes-kernel/linux/linux-yocto_5.0.bb      | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb b/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
index b7e0e5da23..a757945f8d 100644
--- a/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-rt_5.0.bb
@@ -12,7 +12,7 @@ python () {
 }
 
 SRCREV_machine ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
-SRCREV_meta ?= "8ae7073a934d80c4f4b808bc01884777454aae8f"
+SRCREV_meta ?= "be627e4e38626c5e949de04c814ebd2487d5dd98"
 
 SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
            git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.0;destsuffix=${KMETA}"
diff --git a/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb b/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
index b95efa9306..57aada3f62 100644
--- a/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
+++ b/meta/recipes-kernel/linux/linux-yocto-tiny_5.0.bb
@@ -17,7 +17,7 @@ KCONF_BSP_AUDIT_LEVEL = "2"
 
 SRCREV_machine_qemuarm ?= "6da91ac9afd3b8c144760e3ceacc6a812ddfa3f6"
 SRCREV_machine ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
-SRCREV_meta ?= "8ae7073a934d80c4f4b808bc01884777454aae8f"
+SRCREV_meta ?= "be627e4e38626c5e949de04c814ebd2487d5dd98"
 
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/meta/recipes-kernel/linux/linux-yocto_5.0.bb b/meta/recipes-kernel/linux/linux-yocto_5.0.bb
index 768036e298..a56e9a19d8 100644
--- a/meta/recipes-kernel/linux/linux-yocto_5.0.bb
+++ b/meta/recipes-kernel/linux/linux-yocto_5.0.bb
@@ -19,7 +19,7 @@ SRCREV_machine_qemux86 ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
 SRCREV_machine_qemux86-64 ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
 SRCREV_machine_qemumips64 ?= "5f072445126e6a9e44f9435a552f4fcf6fc15499"
 SRCREV_machine ?= "1a0da7e50b77c82841efb501c648dbaca699eac2"
-SRCREV_meta ?= "8ae7073a934d80c4f4b808bc01884777454aae8f"
+SRCREV_meta ?= "be627e4e38626c5e949de04c814ebd2487d5dd98"
 
 # remap qemuarm to qemuarma15 for the 5.0 kernel
 # KMACHINE_qemuarm ?= "qemuarma15"
-- 
2.19.1



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

* [PATCH 6/6] machine: bump preferred version to 5.0
  2019-03-06 16:37 [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) bruce.ashfield
                   ` (4 preceding siblings ...)
  2019-03-06 16:37 ` [PATCH 5/6] linux-yocto/5.0: update configs for h/w reference boards bruce.ashfield
@ 2019-03-06 16:37 ` bruce.ashfield
  2019-03-06 23:05 ` [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) Richard Purdie
  6 siblings, 0 replies; 24+ messages in thread
From: bruce.ashfield @ 2019-03-06 16:37 UTC (permalink / raw)
  To: richard.purdie; +Cc: openembedded-core

From: Bruce Ashfield <bruce.ashfield@gmail.com>

Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
---
 meta/conf/machine/include/x86-base.inc | 2 +-
 meta/conf/machine/qemuarm.conf         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/meta/conf/machine/include/x86-base.inc b/meta/conf/machine/include/x86-base.inc
index c29279209b..686f938233 100644
--- a/meta/conf/machine/include/x86-base.inc
+++ b/meta/conf/machine/include/x86-base.inc
@@ -18,7 +18,7 @@ SERIAL_CONSOLES ?= "115200;ttyS0"
 # kernel-related variables
 #
 PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ??= "4.18%"
+PREFERRED_VERSION_linux-yocto ??= "5.0%"
 
 #
 # XSERVER subcomponents, used to build the XSERVER variable
diff --git a/meta/conf/machine/qemuarm.conf b/meta/conf/machine/qemuarm.conf
index a544312627..f3a4997491 100644
--- a/meta/conf/machine/qemuarm.conf
+++ b/meta/conf/machine/qemuarm.conf
@@ -17,5 +17,5 @@ QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty"
 QB_OPT_APPEND = "-show-cursor -usb -device usb-tablet"
 # Add the 'virtio-rng-pci' device otherwise the guest may run out of entropy
 QB_OPT_APPEND += "-object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0"
-PREFERRED_VERSION_linux-yocto ??= "4.18%"
+PREFERRED_VERSION_linux-yocto ??= "5.0%"
 QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"
-- 
2.19.1



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

* Re: [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro)
  2019-03-06 16:37 [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) bruce.ashfield
                   ` (5 preceding siblings ...)
  2019-03-06 16:37 ` [PATCH 6/6] machine: bump preferred version to 5.0 bruce.ashfield
@ 2019-03-06 23:05 ` Richard Purdie
  2019-03-07  4:21   ` Bruce Ashfield
  6 siblings, 1 reply; 24+ messages in thread
From: Richard Purdie @ 2019-03-06 23:05 UTC (permalink / raw)
  To: bruce.ashfield; +Cc: openembedded-core

On Wed, 2019-03-06 at 11:37 -0500, bruce.ashfield@gmail.com wrote:
> The -rc8 of the kernel pushed this out a week longer than I would
> have liked, but luckily the -dev kernel has been running 5.0 for
> quite a while, so most of the issues had been worked out already.
> 
> In this series we have the bump of the libc-headers to 5.0, I've
> built all arches for both musl and glibc, with no issues popping
> up due to the headers bump. A few patches were dropped, since they
> are now upstream.
> 
> I've also introduce the 5.0 versioned recipe in this series and
> adjusted the two machines that still have a preferred version to
> use it. Again, this was built and booted on all arches and over
> several image types (minimal, sato, kernel-dev).
> 
> As usual lttng was tweaked to work with 5.0, but I was able to
> keep it on the same 2.10 stable branch and only pull in a few
> pending patches that haven't been formally released yet.
> 
> Once we get the h/w reference boards, and reference distros moved
> to 4.19 and 5.0, I'll send a follow up patch to remove 4.18
> from master.
> 
> I'll send follow up patches to the yocto-bsps and poky as
> appropriate, but until the last few issues are resolved, they can
> stay out of tree.
> 
> I captured as many details as possible in the commit messages of
> the individual patches.

Thanks Bruce!

Just to summarise where we're at:

a) The runtime stap tests fail everywhere, we probably need systemtap 
   patches.
b) Issue with KMACHINE_qemuarm = "qemuarma15" not working, blocks 
   qemuarm armv7 switch
c) qemumips and qemuppc:
   https://autobuilder.yoctoproject.org/typhoon/#/builders/60/builds/365/steps/7/logs/step1c
   https://autobuilder.yoctoproject.org/typhoon/#/builders/63/builds/365/steps/7/logs/step1c
   RESULTS - kernelmodule.KernelModuleTest.test_kernel_module - Testcase 1541: FAILED 
d) perf do_compile race seen on qemuarm64 (didn't reproduce locally):
   https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/366/steps/7/logs/step1b
e) qemuarm64 graphics startup issue

Cheers,

Richard



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

* Re: [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro)
  2019-03-06 23:05 ` [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) Richard Purdie
@ 2019-03-07  4:21   ` Bruce Ashfield
  2019-03-07  4:23     ` Bruce Ashfield
  0 siblings, 1 reply; 24+ messages in thread
From: Bruce Ashfield @ 2019-03-07  4:21 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Patches and discussions about the oe-core layer

On Wed, Mar 6, 2019 at 6:05 PM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Wed, 2019-03-06 at 11:37 -0500, bruce.ashfield@gmail.com wrote:
> > The -rc8 of the kernel pushed this out a week longer than I would
> > have liked, but luckily the -dev kernel has been running 5.0 for
> > quite a while, so most of the issues had been worked out already.
> >
> > In this series we have the bump of the libc-headers to 5.0, I've
> > built all arches for both musl and glibc, with no issues popping
> > up due to the headers bump. A few patches were dropped, since they
> > are now upstream.
> >
> > I've also introduce the 5.0 versioned recipe in this series and
> > adjusted the two machines that still have a preferred version to
> > use it. Again, this was built and booted on all arches and over
> > several image types (minimal, sato, kernel-dev).
> >
> > As usual lttng was tweaked to work with 5.0, but I was able to
> > keep it on the same 2.10 stable branch and only pull in a few
> > pending patches that haven't been formally released yet.
> >
> > Once we get the h/w reference boards, and reference distros moved
> > to 4.19 and 5.0, I'll send a follow up patch to remove 4.18
> > from master.
> >
> > I'll send follow up patches to the yocto-bsps and poky as
> > appropriate, but until the last few issues are resolved, they can
> > stay out of tree.
> >
> > I captured as many details as possible in the commit messages of
> > the individual patches.
>
> Thanks Bruce!
>
> Just to summarise where we're at:
>
> a) The runtime stap tests fail everywhere, we probably need systemtap
>    patches.

Fixes. Patches out shortly.

> b) Issue with KMACHINE_qemuarm = "qemuarma15" not working, blocks
>    qemuarm armv7 switch

I can have a look at this on Thursday.

> c) qemumips and qemuppc:
>    https://autobuilder.yoctoproject.org/typhoon/#/builders/60/builds/365/steps/7/logs/step1c
>    https://autobuilder.yoctoproject.org/typhoon/#/builders/63/builds/365/steps/7/logs/step1c
>    RESULTS - kernelmodule.KernelModuleTest.test_kernel_module - Testcase 1541: FAILED

Fixed, patches out shortly.

> d) perf do_compile race seen on qemuarm64 (didn't reproduce locally):
>    https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/366/steps/7/logs/step1b

I can't reproduce this one either.

> e) qemuarm64 graphics startup issue
>

Not sure on this one.

Bruce

> Cheers,
>
> Richard
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

* Re: [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro)
  2019-03-07  4:21   ` Bruce Ashfield
@ 2019-03-07  4:23     ` Bruce Ashfield
  2019-03-07 13:04       ` Richard Purdie
  0 siblings, 1 reply; 24+ messages in thread
From: Bruce Ashfield @ 2019-03-07  4:23 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Patches and discussions about the oe-core layer

On Wed, Mar 6, 2019 at 11:21 PM Bruce Ashfield <bruce.ashfield@gmail.com> wrote:
>
> On Wed, Mar 6, 2019 at 6:05 PM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> >
> > On Wed, 2019-03-06 at 11:37 -0500, bruce.ashfield@gmail.com wrote:
> > > The -rc8 of the kernel pushed this out a week longer than I would
> > > have liked, but luckily the -dev kernel has been running 5.0 for
> > > quite a while, so most of the issues had been worked out already.
> > >
> > > In this series we have the bump of the libc-headers to 5.0, I've
> > > built all arches for both musl and glibc, with no issues popping
> > > up due to the headers bump. A few patches were dropped, since they
> > > are now upstream.
> > >
> > > I've also introduce the 5.0 versioned recipe in this series and
> > > adjusted the two machines that still have a preferred version to
> > > use it. Again, this was built and booted on all arches and over
> > > several image types (minimal, sato, kernel-dev).
> > >
> > > As usual lttng was tweaked to work with 5.0, but I was able to
> > > keep it on the same 2.10 stable branch and only pull in a few
> > > pending patches that haven't been formally released yet.
> > >
> > > Once we get the h/w reference boards, and reference distros moved
> > > to 4.19 and 5.0, I'll send a follow up patch to remove 4.18
> > > from master.
> > >
> > > I'll send follow up patches to the yocto-bsps and poky as
> > > appropriate, but until the last few issues are resolved, they can
> > > stay out of tree.
> > >
> > > I captured as many details as possible in the commit messages of
> > > the individual patches.
> >
> > Thanks Bruce!
> >
> > Just to summarise where we're at:
> >
> > a) The runtime stap tests fail everywhere, we probably need systemtap
> >    patches.
>
> Fixes. Patches out shortly.
>
> > b) Issue with KMACHINE_qemuarm = "qemuarma15" not working, blocks
> >    qemuarm armv7 switch
>
> I can have a look at this on Thursday.
>
> > c) qemumips and qemuppc:
> >    https://autobuilder.yoctoproject.org/typhoon/#/builders/60/builds/365/steps/7/logs/step1c
> >    https://autobuilder.yoctoproject.org/typhoon/#/builders/63/builds/365/steps/7/logs/step1c
> >    RESULTS - kernelmodule.KernelModuleTest.test_kernel_module - Testcase 1541: FAILED
>
> Fixed, patches out shortly.
>
> > d) perf do_compile race seen on qemuarm64 (didn't reproduce locally):
> >    https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/366/steps/7/logs/step1b
>
> I can't reproduce this one either.

I did notice that the AB log seems to show 4.19 being built for this,
is that just a red herring ?

NOTE: recipe iptables-1.6.2-r0: task do_package_write_rpm: Succeeded
NOTE: recipe iptables-1.6.2-r0: task do_package_qa: Succeeded
NOTE: recipe ofono-1.25-r0: task do_package_write_rpm: Succeeded
NOTE: recipe linux-yocto-4.19.19+gitAUTOINC+41fe45f7c5_11e0e616ed-r0:
task do_package_write_deb: Succeeded
NOTE: recipe ofono-1.25-r0: task do_package_write_deb: Succeeded
NOTE: recipe linux-yocto-4.19.19+gitAUTOINC+41fe45f7c5_11e0e616ed-r0:
task do_package_write_rpm: Succeeded

Bruce

>
> > e) qemuarm64 graphics startup issue
> >
>
> Not sure on this one.
>
> Bruce
>
> > Cheers,
> >
> > Richard
> >
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

* Re: [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro)
  2019-03-07  4:23     ` Bruce Ashfield
@ 2019-03-07 13:04       ` Richard Purdie
  2019-03-07 15:48         ` Bruce Ashfield
  0 siblings, 1 reply; 24+ messages in thread
From: Richard Purdie @ 2019-03-07 13:04 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: Patches and discussions about the oe-core layer

On Wed, 2019-03-06 at 23:23 -0500, Bruce Ashfield wrote:
> On Wed, Mar 6, 2019 at 11:21 PM Bruce Ashfield <
> bruce.ashfield@gmail.com> wrote:
> > On Wed, Mar 6, 2019 at 6:05 PM Richard Purdie
> > <richard.purdie@linuxfoundation.org> wrote:
> > > https://autobuilder.yoctoproject.org/typhoon/#/builders/60/builds/365/steps/7/logs/step1c
> > >    
> > > https://autobuilder.yoctoproject.org/typhoon/#/builders/63/builds/365/steps/7/logs/step1c
> > >    RESULTS - kernelmodule.KernelModuleTest.test_kernel_module -
> > > Testcase 1541: FAILED
> > 
> > Fixed, patches out shortly.
> > 
> > > d) perf do_compile race seen on qemuarm64 (didn't reproduce
> > > locally):
> > >    
> > > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/366/steps/7/logs/step1b
> > 
> > I can't reproduce this one either.
> 
> I did notice that the AB log seems to show 4.19 being built for this,
> is that just a red herring ?
> 
> NOTE: recipe iptables-1.6.2-r0: task do_package_write_rpm: Succeeded
> NOTE: recipe iptables-1.6.2-r0: task do_package_qa: Succeeded
> NOTE: recipe ofono-1.25-r0: task do_package_write_rpm: Succeeded
> NOTE: recipe linux-yocto-4.19.19+gitAUTOINC+41fe45f7c5_11e0e616ed-r0:
> task do_package_write_deb: Succeeded
> NOTE: recipe ofono-1.25-r0: task do_package_write_deb: Succeeded
> NOTE: recipe linux-yocto-4.19.19+gitAUTOINC+41fe45f7c5_11e0e616ed-r0:
> task do_package_write_rpm: Succeeded

Yes, well spotted, perf is failing to build with the 4.19 kernel.

Thanks for the other fixes, they improve things a lot. This brings us
down to the above perf issue with 4.19 and:

a) KMACHINE_qemuarm = "qemuarma15" not working?

b) qemuarm64 graphics not working with 5.0

Getting there! :)

Cheers,

Richard





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

* Re: [PATCH 2/6] linux-libc-headers: update to 5.x headers
  2019-03-06 16:37 ` [PATCH 2/6] linux-libc-headers: update to 5.x headers bruce.ashfield
@ 2019-03-07 15:19   ` Khem Raj
  2019-03-07 15:20     ` Khem Raj
  2019-03-08 14:24     ` Bruce Ashfield
  0 siblings, 2 replies; 24+ messages in thread
From: Khem Raj @ 2019-03-07 15:19 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: Patches and discussions about the oe-core layer

Bruce

https://errors.yoctoproject.org/Errors/Details/231923/

seems to be due to this. seems we need to get this define from
elsewhere have you encountered this?

On Wed, Mar 6, 2019 at 8:37 AM <bruce.ashfield@gmail.com> wrote:
>
> From: Bruce Ashfield <bruce.ashfield@gmail.com>
>
> Updating the linux-libc-headers to the 5.x kernel variant to match
> the latest reference kernel in the 2.7 release.
>
> We have two patches refreshed for context changes, and three patches
> dropped since they have been merged to the mainline kernel and are
> no longer necessary.
>
> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> ---
>  meta/conf/distro/include/tcmode-default.inc   |   2 +-
>  .../linux-libc-headers/linux-libc-headers.inc |   2 +
>  ...kernel_clockid_t-in-uapi-net_stamp.h.patch |  49 ---
>  ...d-input-and-output-files-instead-of-.patch |  11 +-
>  ...ce-Fix-SVE_PT_REGS_OFFSET-definition.patch |  43 ---
>  ...angle-uapi-asm-ptrace.h-from-uapi-as.patch | 289 ------------------
>  ...ders_4.19.bb => linux-libc-headers_5.0.bb} |   7 +-
>  7 files changed, 10 insertions(+), 393 deletions(-)
>  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
>  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
>  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
>  rename meta/recipes-kernel/linux-libc-headers/{linux-libc-headers_4.19.bb => linux-libc-headers_5.0.bb} (65%)
>
> diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> index 5d71825889..12d3901ee1 100644
> --- a/meta/conf/distro/include/tcmode-default.inc
> +++ b/meta/conf/distro/include/tcmode-default.inc
> @@ -23,7 +23,7 @@ SDKGCCVERSION ?= "${GCCVERSION}"
>  BINUVERSION ?= "2.32%"
>  GDBVERSION ?= "8.2%"
>  GLIBCVERSION ?= "2.29%"
> -LINUXLIBCVERSION ?= "4.19%"
> +LINUXLIBCVERSION ?= "5.0%"
>  QEMUVERSION ?= "3.1%"
>  GOVERSION ?= "1.11%"
>
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> index be215af9b9..7f838f623e 100644
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> @@ -38,6 +38,8 @@ python __anonymous () {
>          d.setVar("HEADER_FETCH_VER", "3.0")
>      elif major == "4":
>          d.setVar("HEADER_FETCH_VER", "4.x")
> +    elif major == "5":
> +        d.setVar("HEADER_FETCH_VER", "5.x")
>      else:
>          d.setVar("HEADER_FETCH_VER", "2.6")
>  }
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> deleted file mode 100644
> index 3684cc21bf..0000000000
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> +++ /dev/null
> @@ -1,49 +0,0 @@
> -From e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5 Mon Sep 17 00:00:00 2001
> -From: Davide Caratti <dcaratti@redhat.com>
> -Date: Mon, 17 Dec 2018 11:26:38 +0100
> -Subject: [PATCH] net: Use __kernel_clockid_t in uapi net_stamp.h
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Herton reports the following error when building a userspace program that
> -includes net_stamp.h:
> -
> - In file included from foo.c:2:
> - /usr/include/linux/net_tstamp.h:158:2: error: unknown type name
> - ‘clockid_t’
> -   clockid_t clockid; /* reference clockid */
> -   ^~~~~~~~~
> -
> -Fix it by using __kernel_clockid_t in place of clockid_t.
> -
> -Fixes: 80b14dee2bea ("net: Add a new socket option for a future transmit time.")
> -Cc: Timothy Redaelli <tredaelli@redhat.com>
> -Reported-by: Herton R. Krzesinski <herton@redhat.com>
> -Signed-off-by: Davide Caratti <dcaratti@redhat.com>
> -Tested-by: Paolo Abeni <pabeni@redhat.com>
> -Signed-off-by: David S. Miller <davem@davemloft.net>
> ----
> -Upstream-Status: Backport [https://github.com/torvalds/linux/commit/e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5]
> -
> - include/uapi/linux/net_tstamp.h | 4 ++--
> - 1 file changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
> -index 97ff3c17ec4d..e5b39721c6e4 100644
> ---- a/include/uapi/linux/net_tstamp.h
> -+++ b/include/uapi/linux/net_tstamp.h
> -@@ -155,8 +155,8 @@ enum txtime_flags {
> - };
> -
> - struct sock_txtime {
> --      clockid_t       clockid;        /* reference clockid */
> --      __u32           flags;          /* as defined by enum txtime_flags */
> -+      __kernel_clockid_t      clockid;/* reference clockid */
> -+      __u32                   flags;  /* as defined by enum txtime_flags */
> - };
> -
> - #endif /* _NET_TIMESTAMPING_H */
> ---
> -2.20.1
> -
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> index 9ba1c076e8..a5ded602e5 100644
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> @@ -1,8 +1,7 @@
>  From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001
>  From: He Zhe <zhe.he@windriver.com>
>  Date: Wed, 21 Nov 2018 15:12:43 +0800
> -Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for
> - here-doc
> +Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc
>
>  There was a bug of "as" in binutils that when it checks if the input file and
>  output file are the same one, it would not check if they are on the same block
> @@ -44,14 +43,14 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
>  diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
> -index 083c526..8dfac55 100755
> +index 8b980fb22..d256a9438 100755
>  --- a/scripts/gcc-goto.sh
>  +++ b/scripts/gcc-goto.sh
>  @@ -3,7 +3,7 @@
>   # Test for gcc 'asm goto' support
>   # Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
>
> --cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
> +-cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null
>  +cat << "END" > ./input
>   int main(void)
>   {
> @@ -61,8 +60,8 @@ index 083c526..8dfac55 100755
>   }
>   END
>  +
> -+$@ -x c ./input -c -o ./output && echo "y"
> ++$@ -x c ./input -fno-PIE -c -o ./output
>  +rm ./input ./output
>  --
> -2.7.4
> +2.19.1
>
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> deleted file mode 100644
> index 462fdba2ed..0000000000
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> +++ /dev/null
> @@ -1,43 +0,0 @@
> -From 0dede80d25ae2005f8af7235809fc09a7c47c62e Mon Sep 17 00:00:00 2001
> -From: Dave Martin <Dave.Martin@arm.com>
> -Date: Tue, 11 Dec 2018 19:26:46 +0000
> -Subject: [PATCH 2/3] arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition
> -
> -SVE_PT_REGS_OFFSET is supposed to indicate the offset for skipping
> -over the ptrace NT_ARM_SVE header (struct user_sve_header) to the
> -start of the SVE register data proper.
> -
> -However, currently SVE_PT_REGS_OFFSET is defined in terms of struct
> -sve_context, which is wrong: that structure describes the SVE
> -header in the signal frame, not in the ptrace regset.
> -
> -This patch fixes the definition to use the ptrace header structure
> -struct user_sve_header instead.
> -
> -By good fortune, the to structures are the same size anyway, so
> -there is no functional or ABI change.
> -
> -Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> -
> -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
> ----
> - arch/arm64/include/uapi/asm/ptrace.h | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
> -index 98c4ce55d9c3..ad64d2c92ef5 100644
> ---- a/arch/arm64/include/uapi/asm/ptrace.h
> -+++ b/arch/arm64/include/uapi/asm/ptrace.h
> -@@ -130,7 +130,7 @@ struct user_sve_header {
> -
> - /* Offset from the start of struct user_sve_header to the register data */
> - #define SVE_PT_REGS_OFFSET                                    \
> --      ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))      \
> -+      ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))  \
> -               / SVE_VQ_BYTES * SVE_VQ_BYTES)
> -
> - /*
> ---
> -2.5.0
> -
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> deleted file mode 100644
> index 0423f0f2cc..0000000000
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> +++ /dev/null
> @@ -1,289 +0,0 @@
> -From 1114697c04b9699112e78dd8fc6ec849609ca1cb Mon Sep 17 00:00:00 2001
> -From: Dave Martin <Dave.Martin@arm.com>
> -Date: Tue, 11 Dec 2018 19:26:47 +0000
> -Subject: [PATCH 3/3] arm64/sve: Disentangle <uapi/asm/ptrace.h> from
> - <uapi/asm/sigcontext.h>
> -
> -Currently, <uapi/asm/sigcontext.h> provides common definitions for
> -describing SVE context structures that are also used by the ptrace
> -definitions in <uapi/asm/ptrace.h>.
> -
> -For this reason, a #include of <asm/sigcontext.h> was added in
> -ptrace.h, but it this turns out that this can interact badly with
> -userspace code that tries to include ptrace.h on top of the libc
> -headers (which may provide their own shadow definitions for
> -sigcontext.h).
> -
> -To make the headers easier for userspace to consume, this patch
> -bounces the common definitions into an __SVE_* namespace and moves
> -them to a backend header <uapi/asm/sve_context.h> that can be
> -included by the other headers as appropriate.  This should allow
> -ptrace.h to be used alongside libc's sigcontext.h (if any) without
> -ill effects.
> -
> -This should make the situation unambiguous: <asm/sigcontext.h> is
> -the header to include for the sigframe-specific definitions, while
> -<asm/ptrace.h> is the header to include for ptrace-specific
> -definitions.
> -
> -To avoid conflicting with existing usage, <asm/sigcontext.h>
> -remains the canonical way to get the common definitions for
> -SVE_VQ_MIN, sve_vq_from_vl() etc., both in userspace and in the
> -kernel: relying on these being defined as a side effect of
> -including just <asm/ptrace.h> was never intended to be safe.
> -
> -Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> -
> -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
> ----
> - arch/arm64/include/uapi/asm/ptrace.h      | 39 ++++++++++-----------
> - arch/arm64/include/uapi/asm/sigcontext.h  | 56 +++++++++++++++----------------
> - arch/arm64/include/uapi/asm/sve_context.h | 50 +++++++++++++++++++++++++++
> - 3 files changed, 96 insertions(+), 49 deletions(-)
> - create mode 100644 arch/arm64/include/uapi/asm/sve_context.h
> -
> -diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
> -index ad64d2c92ef5..81547c3a95a3 100644
> ---- a/arch/arm64/include/uapi/asm/ptrace.h
> -+++ b/arch/arm64/include/uapi/asm/ptrace.h
> -@@ -23,7 +23,7 @@
> - #include <linux/types.h>
> -
> - #include <asm/hwcap.h>
> --#include <asm/sigcontext.h>
> -+#include <asm/sve_context.h>
> -
> -
> - /*
> -@@ -129,9 +129,9 @@ struct user_sve_header {
> -  */
> -
> - /* Offset from the start of struct user_sve_header to the register data */
> --#define SVE_PT_REGS_OFFSET                                    \
> --      ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))  \
> --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> -+#define SVE_PT_REGS_OFFSET                                            \
> -+      ((sizeof(struct user_sve_header) + (__SVE_VQ_BYTES - 1))        \
> -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> -
> - /*
> -  * The register data content and layout depends on the value of the
> -@@ -177,39 +177,36 @@ struct user_sve_header {
> -  * Additional data might be appended in the future.
> -  */
> -
> --#define SVE_PT_SVE_ZREG_SIZE(vq)      SVE_SIG_ZREG_SIZE(vq)
> --#define SVE_PT_SVE_PREG_SIZE(vq)      SVE_SIG_PREG_SIZE(vq)
> --#define SVE_PT_SVE_FFR_SIZE(vq)               SVE_SIG_FFR_SIZE(vq)
> -+#define SVE_PT_SVE_ZREG_SIZE(vq)      __SVE_ZREG_SIZE(vq)
> -+#define SVE_PT_SVE_PREG_SIZE(vq)      __SVE_PREG_SIZE(vq)
> -+#define SVE_PT_SVE_FFR_SIZE(vq)               __SVE_FFR_SIZE(vq)
> - #define SVE_PT_SVE_FPSR_SIZE          sizeof(__u32)
> - #define SVE_PT_SVE_FPCR_SIZE          sizeof(__u32)
> -
> --#define __SVE_SIG_TO_PT(offset) \
> --      ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET)
> --
> - #define SVE_PT_SVE_OFFSET             SVE_PT_REGS_OFFSET
> -
> - #define SVE_PT_SVE_ZREGS_OFFSET \
> --      __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET)
> -+      (SVE_PT_REGS_OFFSET + __SVE_ZREGS_OFFSET)
> - #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \
> --      __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n))
> -+      (SVE_PT_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
> - #define SVE_PT_SVE_ZREGS_SIZE(vq) \
> --      (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
> -+      (SVE_PT_SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
> -
> - #define SVE_PT_SVE_PREGS_OFFSET(vq) \
> --      __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq))
> -+      (SVE_PT_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
> - #define SVE_PT_SVE_PREG_OFFSET(vq, n) \
> --      __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n))
> -+      (SVE_PT_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
> - #define SVE_PT_SVE_PREGS_SIZE(vq) \
> --      (SVE_PT_SVE_PREG_OFFSET(vq, SVE_NUM_PREGS) - \
> -+      (SVE_PT_SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - \
> -               SVE_PT_SVE_PREGS_OFFSET(vq))
> -
> - #define SVE_PT_SVE_FFR_OFFSET(vq) \
> --      __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq))
> -+      (SVE_PT_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
> -
> - #define SVE_PT_SVE_FPSR_OFFSET(vq)                            \
> -       ((SVE_PT_SVE_FFR_OFFSET(vq) + SVE_PT_SVE_FFR_SIZE(vq) + \
> --                      (SVE_VQ_BYTES - 1))                     \
> --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> -+                      (__SVE_VQ_BYTES - 1))                   \
> -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> - #define SVE_PT_SVE_FPCR_OFFSET(vq) \
> -       (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE)
> -
> -@@ -220,8 +217,8 @@ struct user_sve_header {
> -
> - #define SVE_PT_SVE_SIZE(vq, flags)                                    \
> -       ((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE             \
> --                      - SVE_PT_SVE_OFFSET + (SVE_VQ_BYTES - 1))       \
> --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> -+                      - SVE_PT_SVE_OFFSET + (__SVE_VQ_BYTES - 1))     \
> -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> -
> - #define SVE_PT_SIZE(vq, flags)                                                \
> -        (((flags) & SVE_PT_REGS_MASK) == SVE_PT_REGS_SVE ?             \
> -diff --git a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h
> -index dca8f8b5168b..5f3c0cec5af9 100644
> ---- a/arch/arm64/include/uapi/asm/sigcontext.h
> -+++ b/arch/arm64/include/uapi/asm/sigcontext.h
> -@@ -130,6 +130,8 @@ struct sve_context {
> -
> - #endif /* !__ASSEMBLY__ */
> -
> -+#include <asm/sve_context.h>
> -+
> - /*
> -  * The SVE architecture leaves space for future expansion of the
> -  * vector length beyond its initial architectural limit of 2048 bits
> -@@ -138,21 +140,20 @@ struct sve_context {
> -  * See linux/Documentation/arm64/sve.txt for a description of the VL/VQ
> -  * terminology.
> -  */
> --#define SVE_VQ_BYTES          16      /* number of bytes per quadword */
> -+#define SVE_VQ_BYTES          __SVE_VQ_BYTES  /* bytes per quadword */
> -
> --#define SVE_VQ_MIN            1
> --#define SVE_VQ_MAX            512
> -+#define SVE_VQ_MIN            __SVE_VQ_MIN
> -+#define SVE_VQ_MAX            __SVE_VQ_MAX
> -
> --#define SVE_VL_MIN            (SVE_VQ_MIN * SVE_VQ_BYTES)
> --#define SVE_VL_MAX            (SVE_VQ_MAX * SVE_VQ_BYTES)
> -+#define SVE_VL_MIN            __SVE_VL_MIN
> -+#define SVE_VL_MAX            __SVE_VL_MAX
> -
> --#define SVE_NUM_ZREGS         32
> --#define SVE_NUM_PREGS         16
> -+#define SVE_NUM_ZREGS         __SVE_NUM_ZREGS
> -+#define SVE_NUM_PREGS         __SVE_NUM_PREGS
> -
> --#define sve_vl_valid(vl) \
> --      ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX)
> --#define sve_vq_from_vl(vl)    ((vl) / SVE_VQ_BYTES)
> --#define sve_vl_from_vq(vq)    ((vq) * SVE_VQ_BYTES)
> -+#define sve_vl_valid(vl)      __sve_vl_valid(vl)
> -+#define sve_vq_from_vl(vl)    __sve_vq_from_vl(vl)
> -+#define sve_vl_from_vq(vq)    __sve_vl_from_vq(vq)
> -
> - /*
> -  * If the SVE registers are currently live for the thread at signal delivery,
> -@@ -205,34 +206,33 @@ struct sve_context {
> -  * Additional data might be appended in the future.
> -  */
> -
> --#define SVE_SIG_ZREG_SIZE(vq) ((__u32)(vq) * SVE_VQ_BYTES)
> --#define SVE_SIG_PREG_SIZE(vq) ((__u32)(vq) * (SVE_VQ_BYTES / 8))
> --#define SVE_SIG_FFR_SIZE(vq)  SVE_SIG_PREG_SIZE(vq)
> -+#define SVE_SIG_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq)
> -+#define SVE_SIG_PREG_SIZE(vq) __SVE_PREG_SIZE(vq)
> -+#define SVE_SIG_FFR_SIZE(vq)  __SVE_FFR_SIZE(vq)
> -
> - #define SVE_SIG_REGS_OFFSET                                   \
> --      ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))      \
> --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> -+      ((sizeof(struct sve_context) + (__SVE_VQ_BYTES - 1))    \
> -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> -
> --#define SVE_SIG_ZREGS_OFFSET  SVE_SIG_REGS_OFFSET
> -+#define SVE_SIG_ZREGS_OFFSET \
> -+              (SVE_SIG_REGS_OFFSET + __SVE_ZREGS_OFFSET)
> - #define SVE_SIG_ZREG_OFFSET(vq, n) \
> --      (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n))
> --#define SVE_SIG_ZREGS_SIZE(vq) \
> --      (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET)
> -+              (SVE_SIG_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
> -+#define SVE_SIG_ZREGS_SIZE(vq) __SVE_ZREGS_SIZE(vq)
> -
> - #define SVE_SIG_PREGS_OFFSET(vq) \
> --      (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq))
> -+              (SVE_SIG_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
> - #define SVE_SIG_PREG_OFFSET(vq, n) \
> --      (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n))
> --#define SVE_SIG_PREGS_SIZE(vq) \
> --      (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq))
> -+              (SVE_SIG_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
> -+#define SVE_SIG_PREGS_SIZE(vq) __SVE_PREGS_SIZE(vq)
> -
> - #define SVE_SIG_FFR_OFFSET(vq) \
> --      (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq))
> -+              (SVE_SIG_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
> -
> - #define SVE_SIG_REGS_SIZE(vq) \
> --      (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)
> --
> --#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
> -+              (__SVE_FFR_OFFSET(vq) + __SVE_FFR_SIZE(vq))
> -
> -+#define SVE_SIG_CONTEXT_SIZE(vq) \
> -+              (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
> -
> - #endif /* _UAPI__ASM_SIGCONTEXT_H */
> -diff --git a/arch/arm64/include/uapi/asm/sve_context.h b/arch/arm64/include/uapi/asm/sve_context.h
> -new file mode 100644
> -index 000000000000..140f14c318a5
> ---- /dev/null
> -+++ b/arch/arm64/include/uapi/asm/sve_context.h
> -@@ -0,0 +1,50 @@
> -+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> -+/* Copyright (C) 2017-2018 ARM Limited */
> -+
> -+#if !defined(_UAPI__ASM_PTRACE_H) && !defined(_UAPI__ASM_SIGCONTEXT_H)
> -+#error "Do not include this header or use its definitions directly."
> -+#endif
> -+
> -+#ifndef _UAPI__ASM_SVE_CONTEXT_H
> -+#define _UAPI__ASM_SVE_CONTEXT_H
> -+
> -+#define __SVE_VQ_BYTES                16      /* number of bytes per quadword */
> -+
> -+#define __SVE_VQ_MIN          1
> -+#define __SVE_VQ_MAX          512
> -+
> -+#define __SVE_VL_MIN          (__SVE_VQ_MIN * __SVE_VQ_BYTES)
> -+#define __SVE_VL_MAX          (__SVE_VQ_MAX * __SVE_VQ_BYTES)
> -+
> -+#define __SVE_NUM_ZREGS               32
> -+#define __SVE_NUM_PREGS               16
> -+
> -+#define __sve_vl_valid(vl)                    \
> -+      ((vl) % __SVE_VQ_BYTES == 0 &&          \
> -+       (vl) >= __SVE_VL_MIN &&                \
> -+       (vl) <= __SVE_VL_MAX)
> -+
> -+#define __sve_vq_from_vl(vl)  ((vl) / __SVE_VQ_BYTES)
> -+#define __sve_vl_from_vq(vq)  ((vq) * __SVE_VQ_BYTES)
> -+
> -+#define __SVE_ZREG_SIZE(vq)   ((__u32)(vq) * __SVE_VQ_BYTES)
> -+#define __SVE_PREG_SIZE(vq)   ((__u32)(vq) * (__SVE_VQ_BYTES / 8))
> -+#define __SVE_FFR_SIZE(vq)    __SVE_PREG_SIZE(vq)
> -+
> -+#define __SVE_ZREGS_OFFSET    0
> -+#define __SVE_ZREG_OFFSET(vq, n) \
> -+      (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n))
> -+#define __SVE_ZREGS_SIZE(vq) \
> -+      (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET)
> -+
> -+#define __SVE_PREGS_OFFSET(vq) \
> -+      (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq))
> -+#define __SVE_PREG_OFFSET(vq, n) \
> -+      (__SVE_PREGS_OFFSET(vq) + __SVE_PREG_SIZE(vq) * (n))
> -+#define __SVE_PREGS_SIZE(vq) \
> -+      (__SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - __SVE_PREGS_OFFSET(vq))
> -+
> -+#define __SVE_FFR_OFFSET(vq) \
> -+      (__SVE_PREGS_OFFSET(vq) + __SVE_PREGS_SIZE(vq))
> -+
> -+#endif /* ! _UAPI__ASM_SVE_CONTEXT_H */
> ---
> -2.5.0
> -
> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> similarity index 65%
> rename from meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
> rename to meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> index 48f25ebc1a..e76120c5b8 100644
> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> @@ -10,12 +10,9 @@ SRC_URI_append_libc-musl = "\
>     "
>
>  SRC_URI_append = "\
> -    file://0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch \
>      file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \
>      file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
> -    file://0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch \
> -    file://0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch \
>  "
>
> -SRC_URI[md5sum] = "740a90cf810c2105df8ee12e5d0bb900"
> -SRC_URI[sha256sum] = "0c68f5655528aed4f99dae71a5b259edc93239fa899e2df79c055275c21749a1"
> +SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0"
> +SRC_URI[sha256sum] = "437b141a6499159f5a7282d5eb4b2be055f8e862ccce44d7464e8759c31a2e43"
> --
> 2.19.1
>
> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 2/6] linux-libc-headers: update to 5.x headers
  2019-03-07 15:19   ` Khem Raj
@ 2019-03-07 15:20     ` Khem Raj
  2019-03-08 14:48       ` Adrian Bunk
  2019-03-08 14:24     ` Bruce Ashfield
  1 sibling, 1 reply; 24+ messages in thread
From: Khem Raj @ 2019-03-07 15:20 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: Patches and discussions about the oe-core layer

another one I forgot
https://errors.yoctoproject.org/Errors/Details/231924/

On Thu, Mar 7, 2019 at 7:19 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> Bruce
>
> https://errors.yoctoproject.org/Errors/Details/231923/
>
> seems to be due to this. seems we need to get this define from
> elsewhere have you encountered this?
>
> On Wed, Mar 6, 2019 at 8:37 AM <bruce.ashfield@gmail.com> wrote:
> >
> > From: Bruce Ashfield <bruce.ashfield@gmail.com>
> >
> > Updating the linux-libc-headers to the 5.x kernel variant to match
> > the latest reference kernel in the 2.7 release.
> >
> > We have two patches refreshed for context changes, and three patches
> > dropped since they have been merged to the mainline kernel and are
> > no longer necessary.
> >
> > Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > ---
> >  meta/conf/distro/include/tcmode-default.inc   |   2 +-
> >  .../linux-libc-headers/linux-libc-headers.inc |   2 +
> >  ...kernel_clockid_t-in-uapi-net_stamp.h.patch |  49 ---
> >  ...d-input-and-output-files-instead-of-.patch |  11 +-
> >  ...ce-Fix-SVE_PT_REGS_OFFSET-definition.patch |  43 ---
> >  ...angle-uapi-asm-ptrace.h-from-uapi-as.patch | 289 ------------------
> >  ...ders_4.19.bb => linux-libc-headers_5.0.bb} |   7 +-
> >  7 files changed, 10 insertions(+), 393 deletions(-)
> >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> >  rename meta/recipes-kernel/linux-libc-headers/{linux-libc-headers_4.19.bb => linux-libc-headers_5.0.bb} (65%)
> >
> > diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> > index 5d71825889..12d3901ee1 100644
> > --- a/meta/conf/distro/include/tcmode-default.inc
> > +++ b/meta/conf/distro/include/tcmode-default.inc
> > @@ -23,7 +23,7 @@ SDKGCCVERSION ?= "${GCCVERSION}"
> >  BINUVERSION ?= "2.32%"
> >  GDBVERSION ?= "8.2%"
> >  GLIBCVERSION ?= "2.29%"
> > -LINUXLIBCVERSION ?= "4.19%"
> > +LINUXLIBCVERSION ?= "5.0%"
> >  QEMUVERSION ?= "3.1%"
> >  GOVERSION ?= "1.11%"
> >
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > index be215af9b9..7f838f623e 100644
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > @@ -38,6 +38,8 @@ python __anonymous () {
> >          d.setVar("HEADER_FETCH_VER", "3.0")
> >      elif major == "4":
> >          d.setVar("HEADER_FETCH_VER", "4.x")
> > +    elif major == "5":
> > +        d.setVar("HEADER_FETCH_VER", "5.x")
> >      else:
> >          d.setVar("HEADER_FETCH_VER", "2.6")
> >  }
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> > deleted file mode 100644
> > index 3684cc21bf..0000000000
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> > +++ /dev/null
> > @@ -1,49 +0,0 @@
> > -From e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5 Mon Sep 17 00:00:00 2001
> > -From: Davide Caratti <dcaratti@redhat.com>
> > -Date: Mon, 17 Dec 2018 11:26:38 +0100
> > -Subject: [PATCH] net: Use __kernel_clockid_t in uapi net_stamp.h
> > -MIME-Version: 1.0
> > -Content-Type: text/plain; charset=UTF-8
> > -Content-Transfer-Encoding: 8bit
> > -
> > -Herton reports the following error when building a userspace program that
> > -includes net_stamp.h:
> > -
> > - In file included from foo.c:2:
> > - /usr/include/linux/net_tstamp.h:158:2: error: unknown type name
> > - ‘clockid_t’
> > -   clockid_t clockid; /* reference clockid */
> > -   ^~~~~~~~~
> > -
> > -Fix it by using __kernel_clockid_t in place of clockid_t.
> > -
> > -Fixes: 80b14dee2bea ("net: Add a new socket option for a future transmit time.")
> > -Cc: Timothy Redaelli <tredaelli@redhat.com>
> > -Reported-by: Herton R. Krzesinski <herton@redhat.com>
> > -Signed-off-by: Davide Caratti <dcaratti@redhat.com>
> > -Tested-by: Paolo Abeni <pabeni@redhat.com>
> > -Signed-off-by: David S. Miller <davem@davemloft.net>
> > ----
> > -Upstream-Status: Backport [https://github.com/torvalds/linux/commit/e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5]
> > -
> > - include/uapi/linux/net_tstamp.h | 4 ++--
> > - 1 file changed, 2 insertions(+), 2 deletions(-)
> > -
> > -diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
> > -index 97ff3c17ec4d..e5b39721c6e4 100644
> > ---- a/include/uapi/linux/net_tstamp.h
> > -+++ b/include/uapi/linux/net_tstamp.h
> > -@@ -155,8 +155,8 @@ enum txtime_flags {
> > - };
> > -
> > - struct sock_txtime {
> > --      clockid_t       clockid;        /* reference clockid */
> > --      __u32           flags;          /* as defined by enum txtime_flags */
> > -+      __kernel_clockid_t      clockid;/* reference clockid */
> > -+      __u32                   flags;  /* as defined by enum txtime_flags */
> > - };
> > -
> > - #endif /* _NET_TIMESTAMPING_H */
> > ---
> > -2.20.1
> > -
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > index 9ba1c076e8..a5ded602e5 100644
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > @@ -1,8 +1,7 @@
> >  From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001
> >  From: He Zhe <zhe.he@windriver.com>
> >  Date: Wed, 21 Nov 2018 15:12:43 +0800
> > -Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for
> > - here-doc
> > +Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc
> >
> >  There was a bug of "as" in binutils that when it checks if the input file and
> >  output file are the same one, it would not check if they are on the same block
> > @@ -44,14 +43,14 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
> >   1 file changed, 4 insertions(+), 1 deletion(-)
> >
> >  diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
> > -index 083c526..8dfac55 100755
> > +index 8b980fb22..d256a9438 100755
> >  --- a/scripts/gcc-goto.sh
> >  +++ b/scripts/gcc-goto.sh
> >  @@ -3,7 +3,7 @@
> >   # Test for gcc 'asm goto' support
> >   # Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
> >
> > --cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
> > +-cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null
> >  +cat << "END" > ./input
> >   int main(void)
> >   {
> > @@ -61,8 +60,8 @@ index 083c526..8dfac55 100755
> >   }
> >   END
> >  +
> > -+$@ -x c ./input -c -o ./output && echo "y"
> > ++$@ -x c ./input -fno-PIE -c -o ./output
> >  +rm ./input ./output
> >  --
> > -2.7.4
> > +2.19.1
> >
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> > deleted file mode 100644
> > index 462fdba2ed..0000000000
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> > +++ /dev/null
> > @@ -1,43 +0,0 @@
> > -From 0dede80d25ae2005f8af7235809fc09a7c47c62e Mon Sep 17 00:00:00 2001
> > -From: Dave Martin <Dave.Martin@arm.com>
> > -Date: Tue, 11 Dec 2018 19:26:46 +0000
> > -Subject: [PATCH 2/3] arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition
> > -
> > -SVE_PT_REGS_OFFSET is supposed to indicate the offset for skipping
> > -over the ptrace NT_ARM_SVE header (struct user_sve_header) to the
> > -start of the SVE register data proper.
> > -
> > -However, currently SVE_PT_REGS_OFFSET is defined in terms of struct
> > -sve_context, which is wrong: that structure describes the SVE
> > -header in the signal frame, not in the ptrace regset.
> > -
> > -This patch fixes the definition to use the ptrace header structure
> > -struct user_sve_header instead.
> > -
> > -By good fortune, the to structures are the same size anyway, so
> > -there is no functional or ABI change.
> > -
> > -Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> > -
> > -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
> > ----
> > - arch/arm64/include/uapi/asm/ptrace.h | 2 +-
> > - 1 file changed, 1 insertion(+), 1 deletion(-)
> > -
> > -diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
> > -index 98c4ce55d9c3..ad64d2c92ef5 100644
> > ---- a/arch/arm64/include/uapi/asm/ptrace.h
> > -+++ b/arch/arm64/include/uapi/asm/ptrace.h
> > -@@ -130,7 +130,7 @@ struct user_sve_header {
> > -
> > - /* Offset from the start of struct user_sve_header to the register data */
> > - #define SVE_PT_REGS_OFFSET                                    \
> > --      ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))      \
> > -+      ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))  \
> > -               / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -
> > - /*
> > ---
> > -2.5.0
> > -
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> > deleted file mode 100644
> > index 0423f0f2cc..0000000000
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> > +++ /dev/null
> > @@ -1,289 +0,0 @@
> > -From 1114697c04b9699112e78dd8fc6ec849609ca1cb Mon Sep 17 00:00:00 2001
> > -From: Dave Martin <Dave.Martin@arm.com>
> > -Date: Tue, 11 Dec 2018 19:26:47 +0000
> > -Subject: [PATCH 3/3] arm64/sve: Disentangle <uapi/asm/ptrace.h> from
> > - <uapi/asm/sigcontext.h>
> > -
> > -Currently, <uapi/asm/sigcontext.h> provides common definitions for
> > -describing SVE context structures that are also used by the ptrace
> > -definitions in <uapi/asm/ptrace.h>.
> > -
> > -For this reason, a #include of <asm/sigcontext.h> was added in
> > -ptrace.h, but it this turns out that this can interact badly with
> > -userspace code that tries to include ptrace.h on top of the libc
> > -headers (which may provide their own shadow definitions for
> > -sigcontext.h).
> > -
> > -To make the headers easier for userspace to consume, this patch
> > -bounces the common definitions into an __SVE_* namespace and moves
> > -them to a backend header <uapi/asm/sve_context.h> that can be
> > -included by the other headers as appropriate.  This should allow
> > -ptrace.h to be used alongside libc's sigcontext.h (if any) without
> > -ill effects.
> > -
> > -This should make the situation unambiguous: <asm/sigcontext.h> is
> > -the header to include for the sigframe-specific definitions, while
> > -<asm/ptrace.h> is the header to include for ptrace-specific
> > -definitions.
> > -
> > -To avoid conflicting with existing usage, <asm/sigcontext.h>
> > -remains the canonical way to get the common definitions for
> > -SVE_VQ_MIN, sve_vq_from_vl() etc., both in userspace and in the
> > -kernel: relying on these being defined as a side effect of
> > -including just <asm/ptrace.h> was never intended to be safe.
> > -
> > -Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> > -
> > -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
> > ----
> > - arch/arm64/include/uapi/asm/ptrace.h      | 39 ++++++++++-----------
> > - arch/arm64/include/uapi/asm/sigcontext.h  | 56 +++++++++++++++----------------
> > - arch/arm64/include/uapi/asm/sve_context.h | 50 +++++++++++++++++++++++++++
> > - 3 files changed, 96 insertions(+), 49 deletions(-)
> > - create mode 100644 arch/arm64/include/uapi/asm/sve_context.h
> > -
> > -diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
> > -index ad64d2c92ef5..81547c3a95a3 100644
> > ---- a/arch/arm64/include/uapi/asm/ptrace.h
> > -+++ b/arch/arm64/include/uapi/asm/ptrace.h
> > -@@ -23,7 +23,7 @@
> > - #include <linux/types.h>
> > -
> > - #include <asm/hwcap.h>
> > --#include <asm/sigcontext.h>
> > -+#include <asm/sve_context.h>
> > -
> > -
> > - /*
> > -@@ -129,9 +129,9 @@ struct user_sve_header {
> > -  */
> > -
> > - /* Offset from the start of struct user_sve_header to the register data */
> > --#define SVE_PT_REGS_OFFSET                                    \
> > --      ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))  \
> > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -+#define SVE_PT_REGS_OFFSET                                            \
> > -+      ((sizeof(struct user_sve_header) + (__SVE_VQ_BYTES - 1))        \
> > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > -
> > - /*
> > -  * The register data content and layout depends on the value of the
> > -@@ -177,39 +177,36 @@ struct user_sve_header {
> > -  * Additional data might be appended in the future.
> > -  */
> > -
> > --#define SVE_PT_SVE_ZREG_SIZE(vq)      SVE_SIG_ZREG_SIZE(vq)
> > --#define SVE_PT_SVE_PREG_SIZE(vq)      SVE_SIG_PREG_SIZE(vq)
> > --#define SVE_PT_SVE_FFR_SIZE(vq)               SVE_SIG_FFR_SIZE(vq)
> > -+#define SVE_PT_SVE_ZREG_SIZE(vq)      __SVE_ZREG_SIZE(vq)
> > -+#define SVE_PT_SVE_PREG_SIZE(vq)      __SVE_PREG_SIZE(vq)
> > -+#define SVE_PT_SVE_FFR_SIZE(vq)               __SVE_FFR_SIZE(vq)
> > - #define SVE_PT_SVE_FPSR_SIZE          sizeof(__u32)
> > - #define SVE_PT_SVE_FPCR_SIZE          sizeof(__u32)
> > -
> > --#define __SVE_SIG_TO_PT(offset) \
> > --      ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET)
> > --
> > - #define SVE_PT_SVE_OFFSET             SVE_PT_REGS_OFFSET
> > -
> > - #define SVE_PT_SVE_ZREGS_OFFSET \
> > --      __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET)
> > -+      (SVE_PT_REGS_OFFSET + __SVE_ZREGS_OFFSET)
> > - #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \
> > --      __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n))
> > -+      (SVE_PT_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
> > - #define SVE_PT_SVE_ZREGS_SIZE(vq) \
> > --      (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
> > -+      (SVE_PT_SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
> > -
> > - #define SVE_PT_SVE_PREGS_OFFSET(vq) \
> > --      __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq))
> > -+      (SVE_PT_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
> > - #define SVE_PT_SVE_PREG_OFFSET(vq, n) \
> > --      __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n))
> > -+      (SVE_PT_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
> > - #define SVE_PT_SVE_PREGS_SIZE(vq) \
> > --      (SVE_PT_SVE_PREG_OFFSET(vq, SVE_NUM_PREGS) - \
> > -+      (SVE_PT_SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - \
> > -               SVE_PT_SVE_PREGS_OFFSET(vq))
> > -
> > - #define SVE_PT_SVE_FFR_OFFSET(vq) \
> > --      __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq))
> > -+      (SVE_PT_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
> > -
> > - #define SVE_PT_SVE_FPSR_OFFSET(vq)                            \
> > -       ((SVE_PT_SVE_FFR_OFFSET(vq) + SVE_PT_SVE_FFR_SIZE(vq) + \
> > --                      (SVE_VQ_BYTES - 1))                     \
> > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -+                      (__SVE_VQ_BYTES - 1))                   \
> > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > - #define SVE_PT_SVE_FPCR_OFFSET(vq) \
> > -       (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE)
> > -
> > -@@ -220,8 +217,8 @@ struct user_sve_header {
> > -
> > - #define SVE_PT_SVE_SIZE(vq, flags)                                    \
> > -       ((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE             \
> > --                      - SVE_PT_SVE_OFFSET + (SVE_VQ_BYTES - 1))       \
> > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -+                      - SVE_PT_SVE_OFFSET + (__SVE_VQ_BYTES - 1))     \
> > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > -
> > - #define SVE_PT_SIZE(vq, flags)                                                \
> > -        (((flags) & SVE_PT_REGS_MASK) == SVE_PT_REGS_SVE ?             \
> > -diff --git a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h
> > -index dca8f8b5168b..5f3c0cec5af9 100644
> > ---- a/arch/arm64/include/uapi/asm/sigcontext.h
> > -+++ b/arch/arm64/include/uapi/asm/sigcontext.h
> > -@@ -130,6 +130,8 @@ struct sve_context {
> > -
> > - #endif /* !__ASSEMBLY__ */
> > -
> > -+#include <asm/sve_context.h>
> > -+
> > - /*
> > -  * The SVE architecture leaves space for future expansion of the
> > -  * vector length beyond its initial architectural limit of 2048 bits
> > -@@ -138,21 +140,20 @@ struct sve_context {
> > -  * See linux/Documentation/arm64/sve.txt for a description of the VL/VQ
> > -  * terminology.
> > -  */
> > --#define SVE_VQ_BYTES          16      /* number of bytes per quadword */
> > -+#define SVE_VQ_BYTES          __SVE_VQ_BYTES  /* bytes per quadword */
> > -
> > --#define SVE_VQ_MIN            1
> > --#define SVE_VQ_MAX            512
> > -+#define SVE_VQ_MIN            __SVE_VQ_MIN
> > -+#define SVE_VQ_MAX            __SVE_VQ_MAX
> > -
> > --#define SVE_VL_MIN            (SVE_VQ_MIN * SVE_VQ_BYTES)
> > --#define SVE_VL_MAX            (SVE_VQ_MAX * SVE_VQ_BYTES)
> > -+#define SVE_VL_MIN            __SVE_VL_MIN
> > -+#define SVE_VL_MAX            __SVE_VL_MAX
> > -
> > --#define SVE_NUM_ZREGS         32
> > --#define SVE_NUM_PREGS         16
> > -+#define SVE_NUM_ZREGS         __SVE_NUM_ZREGS
> > -+#define SVE_NUM_PREGS         __SVE_NUM_PREGS
> > -
> > --#define sve_vl_valid(vl) \
> > --      ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX)
> > --#define sve_vq_from_vl(vl)    ((vl) / SVE_VQ_BYTES)
> > --#define sve_vl_from_vq(vq)    ((vq) * SVE_VQ_BYTES)
> > -+#define sve_vl_valid(vl)      __sve_vl_valid(vl)
> > -+#define sve_vq_from_vl(vl)    __sve_vq_from_vl(vl)
> > -+#define sve_vl_from_vq(vq)    __sve_vl_from_vq(vq)
> > -
> > - /*
> > -  * If the SVE registers are currently live for the thread at signal delivery,
> > -@@ -205,34 +206,33 @@ struct sve_context {
> > -  * Additional data might be appended in the future.
> > -  */
> > -
> > --#define SVE_SIG_ZREG_SIZE(vq) ((__u32)(vq) * SVE_VQ_BYTES)
> > --#define SVE_SIG_PREG_SIZE(vq) ((__u32)(vq) * (SVE_VQ_BYTES / 8))
> > --#define SVE_SIG_FFR_SIZE(vq)  SVE_SIG_PREG_SIZE(vq)
> > -+#define SVE_SIG_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq)
> > -+#define SVE_SIG_PREG_SIZE(vq) __SVE_PREG_SIZE(vq)
> > -+#define SVE_SIG_FFR_SIZE(vq)  __SVE_FFR_SIZE(vq)
> > -
> > - #define SVE_SIG_REGS_OFFSET                                   \
> > --      ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))      \
> > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -+      ((sizeof(struct sve_context) + (__SVE_VQ_BYTES - 1))    \
> > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > -
> > --#define SVE_SIG_ZREGS_OFFSET  SVE_SIG_REGS_OFFSET
> > -+#define SVE_SIG_ZREGS_OFFSET \
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_ZREGS_OFFSET)
> > - #define SVE_SIG_ZREG_OFFSET(vq, n) \
> > --      (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n))
> > --#define SVE_SIG_ZREGS_SIZE(vq) \
> > --      (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET)
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
> > -+#define SVE_SIG_ZREGS_SIZE(vq) __SVE_ZREGS_SIZE(vq)
> > -
> > - #define SVE_SIG_PREGS_OFFSET(vq) \
> > --      (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq))
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
> > - #define SVE_SIG_PREG_OFFSET(vq, n) \
> > --      (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n))
> > --#define SVE_SIG_PREGS_SIZE(vq) \
> > --      (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq))
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
> > -+#define SVE_SIG_PREGS_SIZE(vq) __SVE_PREGS_SIZE(vq)
> > -
> > - #define SVE_SIG_FFR_OFFSET(vq) \
> > --      (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq))
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
> > -
> > - #define SVE_SIG_REGS_SIZE(vq) \
> > --      (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)
> > --
> > --#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
> > -+              (__SVE_FFR_OFFSET(vq) + __SVE_FFR_SIZE(vq))
> > -
> > -+#define SVE_SIG_CONTEXT_SIZE(vq) \
> > -+              (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
> > -
> > - #endif /* _UAPI__ASM_SIGCONTEXT_H */
> > -diff --git a/arch/arm64/include/uapi/asm/sve_context.h b/arch/arm64/include/uapi/asm/sve_context.h
> > -new file mode 100644
> > -index 000000000000..140f14c318a5
> > ---- /dev/null
> > -+++ b/arch/arm64/include/uapi/asm/sve_context.h
> > -@@ -0,0 +1,50 @@
> > -+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> > -+/* Copyright (C) 2017-2018 ARM Limited */
> > -+
> > -+#if !defined(_UAPI__ASM_PTRACE_H) && !defined(_UAPI__ASM_SIGCONTEXT_H)
> > -+#error "Do not include this header or use its definitions directly."
> > -+#endif
> > -+
> > -+#ifndef _UAPI__ASM_SVE_CONTEXT_H
> > -+#define _UAPI__ASM_SVE_CONTEXT_H
> > -+
> > -+#define __SVE_VQ_BYTES                16      /* number of bytes per quadword */
> > -+
> > -+#define __SVE_VQ_MIN          1
> > -+#define __SVE_VQ_MAX          512
> > -+
> > -+#define __SVE_VL_MIN          (__SVE_VQ_MIN * __SVE_VQ_BYTES)
> > -+#define __SVE_VL_MAX          (__SVE_VQ_MAX * __SVE_VQ_BYTES)
> > -+
> > -+#define __SVE_NUM_ZREGS               32
> > -+#define __SVE_NUM_PREGS               16
> > -+
> > -+#define __sve_vl_valid(vl)                    \
> > -+      ((vl) % __SVE_VQ_BYTES == 0 &&          \
> > -+       (vl) >= __SVE_VL_MIN &&                \
> > -+       (vl) <= __SVE_VL_MAX)
> > -+
> > -+#define __sve_vq_from_vl(vl)  ((vl) / __SVE_VQ_BYTES)
> > -+#define __sve_vl_from_vq(vq)  ((vq) * __SVE_VQ_BYTES)
> > -+
> > -+#define __SVE_ZREG_SIZE(vq)   ((__u32)(vq) * __SVE_VQ_BYTES)
> > -+#define __SVE_PREG_SIZE(vq)   ((__u32)(vq) * (__SVE_VQ_BYTES / 8))
> > -+#define __SVE_FFR_SIZE(vq)    __SVE_PREG_SIZE(vq)
> > -+
> > -+#define __SVE_ZREGS_OFFSET    0
> > -+#define __SVE_ZREG_OFFSET(vq, n) \
> > -+      (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n))
> > -+#define __SVE_ZREGS_SIZE(vq) \
> > -+      (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET)
> > -+
> > -+#define __SVE_PREGS_OFFSET(vq) \
> > -+      (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq))
> > -+#define __SVE_PREG_OFFSET(vq, n) \
> > -+      (__SVE_PREGS_OFFSET(vq) + __SVE_PREG_SIZE(vq) * (n))
> > -+#define __SVE_PREGS_SIZE(vq) \
> > -+      (__SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - __SVE_PREGS_OFFSET(vq))
> > -+
> > -+#define __SVE_FFR_OFFSET(vq) \
> > -+      (__SVE_PREGS_OFFSET(vq) + __SVE_PREGS_SIZE(vq))
> > -+
> > -+#endif /* ! _UAPI__ASM_SVE_CONTEXT_H */
> > ---
> > -2.5.0
> > -
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > similarity index 65%
> > rename from meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
> > rename to meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > index 48f25ebc1a..e76120c5b8 100644
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
> > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > @@ -10,12 +10,9 @@ SRC_URI_append_libc-musl = "\
> >     "
> >
> >  SRC_URI_append = "\
> > -    file://0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch \
> >      file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \
> >      file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
> > -    file://0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch \
> > -    file://0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch \
> >  "
> >
> > -SRC_URI[md5sum] = "740a90cf810c2105df8ee12e5d0bb900"
> > -SRC_URI[sha256sum] = "0c68f5655528aed4f99dae71a5b259edc93239fa899e2df79c055275c21749a1"
> > +SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0"
> > +SRC_URI[sha256sum] = "437b141a6499159f5a7282d5eb4b2be055f8e862ccce44d7464e8759c31a2e43"
> > --
> > 2.19.1
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

* Re: [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro)
  2019-03-07 13:04       ` Richard Purdie
@ 2019-03-07 15:48         ` Bruce Ashfield
  2019-03-07 22:28           ` Richard Purdie
  0 siblings, 1 reply; 24+ messages in thread
From: Bruce Ashfield @ 2019-03-07 15:48 UTC (permalink / raw)
  To: Richard Purdie; +Cc: Patches and discussions about the oe-core layer

On Thu, Mar 7, 2019 at 8:04 AM Richard Purdie
<richard.purdie@linuxfoundation.org> wrote:
>
> On Wed, 2019-03-06 at 23:23 -0500, Bruce Ashfield wrote:
> > On Wed, Mar 6, 2019 at 11:21 PM Bruce Ashfield <
> > bruce.ashfield@gmail.com> wrote:
> > > On Wed, Mar 6, 2019 at 6:05 PM Richard Purdie
> > > <richard.purdie@linuxfoundation.org> wrote:
> > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/60/builds/365/steps/7/logs/step1c
> > > >
> > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/63/builds/365/steps/7/logs/step1c
> > > >    RESULTS - kernelmodule.KernelModuleTest.test_kernel_module -
> > > > Testcase 1541: FAILED
> > >
> > > Fixed, patches out shortly.
> > >
> > > > d) perf do_compile race seen on qemuarm64 (didn't reproduce
> > > > locally):
> > > >
> > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/42/builds/366/steps/7/logs/step1b
> > >
> > > I can't reproduce this one either.
> >
> > I did notice that the AB log seems to show 4.19 being built for this,
> > is that just a red herring ?
> >
> > NOTE: recipe iptables-1.6.2-r0: task do_package_write_rpm: Succeeded
> > NOTE: recipe iptables-1.6.2-r0: task do_package_qa: Succeeded
> > NOTE: recipe ofono-1.25-r0: task do_package_write_rpm: Succeeded
> > NOTE: recipe linux-yocto-4.19.19+gitAUTOINC+41fe45f7c5_11e0e616ed-r0:
> > task do_package_write_deb: Succeeded
> > NOTE: recipe ofono-1.25-r0: task do_package_write_deb: Succeeded
> > NOTE: recipe linux-yocto-4.19.19+gitAUTOINC+41fe45f7c5_11e0e616ed-r0:
> > task do_package_write_rpm: Succeeded
>
> Yes, well spotted, perf is failing to build with the 4.19 kernel.
>
> Thanks for the other fixes, they improve things a lot. This brings us
> down to the above perf issue with 4.19 and:
>
> a) KMACHINE_qemuarm = "qemuarma15" not working?

I mentioned on IRC that the kernel parts are working for me, and
by that, the mapping to the qemuarma15 bsp definition and hence
configs is correct.

I seem to be missing some machine definition parts to get a valid
userspace to work against that new kernel .. is there a series of
patches that I'm missing ?

>
> b) qemuarm64 graphics not working with 5.0

I don't think I've ever had this working, but I'll have a look at it as well.
But more eyes on something like this, will definitely help.

Bruce

>
> Getting there! :)
>
> Cheers,
>
> Richard
>
>
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

* Re: [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro)
  2019-03-07 15:48         ` Bruce Ashfield
@ 2019-03-07 22:28           ` Richard Purdie
  0 siblings, 0 replies; 24+ messages in thread
From: Richard Purdie @ 2019-03-07 22:28 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: Patches and discussions about the oe-core layer

On Thu, 2019-03-07 at 10:48 -0500, Bruce Ashfield wrote:
> On Thu, Mar 7, 2019 at 8:04 AM Richard Purdie
> <richard.purdie@linuxfoundation.org> wrote:
> > On Wed, 2019-03-06 at 23:23 -0500, Bruce Ashfield wrote:
> > Thanks for the other fixes, they improve things a lot. This brings
> > us
> > down to the above perf issue with 4.19 and:
> > 
> > a) KMACHINE_qemuarm = "qemuarma15" not working?
> 
> I mentioned on IRC that the kernel parts are working for me, and
> by that, the mapping to the qemuarma15 bsp definition and hence
> configs is correct.
> 
> I seem to be missing some machine definition parts to get a valid
> userspace to work against that new kernel .. is there a series of
> patches that I'm missing ?

There has been some confusion/mixup. What I want to do is add a
qemuarmv5 which is the current qemuarm and then switch qemuarm to be
the a15 based one.

Something like:

http://git.yoctoproject.org/cgit.cgi/poky-contrib/commit/?h=rpurdie/t222&id=981788cde4ddae41b5dac7d2aab771939cf2a28f

I put KMACHINE mappings in the machine definitions, this patch isn't
well tested as yet and builds on the qemuarma14 patch in -next.

Jon won't get to that until Monday and I'm travelling so will be a bit
disrupted. I'm testing what I can before I leave.

> > b) qemuarm64 graphics not working with 5.0
> 
> I don't think I've ever had this working, but I'll have a look at it
> as well.
> But more eyes on something like this, will definitely help.

qemumarm64 graphics works with the 4.19 kernel but not 5.0.

The only other issue I'm aware of is stap failing on qemuarm (old v5
version).

https://autobuilder.yoctoproject.org/typhoon/#/builders/53/builds/374/steps/7/logs/step1c

Cheers,

Richard



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

* Re: [PATCH 2/6] linux-libc-headers: update to 5.x headers
  2019-03-07 15:19   ` Khem Raj
  2019-03-07 15:20     ` Khem Raj
@ 2019-03-08 14:24     ` Bruce Ashfield
  2019-03-08 17:51       ` Khem Raj
  1 sibling, 1 reply; 24+ messages in thread
From: Bruce Ashfield @ 2019-03-08 14:24 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On Thu, Mar 7, 2019 at 10:19 AM Khem Raj <raj.khem@gmail.com> wrote:
>
> Bruce
>
> https://errors.yoctoproject.org/Errors/Details/231923/
>
> seems to be due to this. seems we need to get this define from
> elsewhere have you encountered this?

I haven't seen this one myself.  I'll start another build once my
arm64 debug has finished. Let me know if you do come up with a
resolution to these!

Bruce

>
> On Wed, Mar 6, 2019 at 8:37 AM <bruce.ashfield@gmail.com> wrote:
> >
> > From: Bruce Ashfield <bruce.ashfield@gmail.com>
> >
> > Updating the linux-libc-headers to the 5.x kernel variant to match
> > the latest reference kernel in the 2.7 release.
> >
> > We have two patches refreshed for context changes, and three patches
> > dropped since they have been merged to the mainline kernel and are
> > no longer necessary.
> >
> > Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > ---
> >  meta/conf/distro/include/tcmode-default.inc   |   2 +-
> >  .../linux-libc-headers/linux-libc-headers.inc |   2 +
> >  ...kernel_clockid_t-in-uapi-net_stamp.h.patch |  49 ---
> >  ...d-input-and-output-files-instead-of-.patch |  11 +-
> >  ...ce-Fix-SVE_PT_REGS_OFFSET-definition.patch |  43 ---
> >  ...angle-uapi-asm-ptrace.h-from-uapi-as.patch | 289 ------------------
> >  ...ders_4.19.bb => linux-libc-headers_5.0.bb} |   7 +-
> >  7 files changed, 10 insertions(+), 393 deletions(-)
> >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> >  rename meta/recipes-kernel/linux-libc-headers/{linux-libc-headers_4.19.bb => linux-libc-headers_5.0.bb} (65%)
> >
> > diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> > index 5d71825889..12d3901ee1 100644
> > --- a/meta/conf/distro/include/tcmode-default.inc
> > +++ b/meta/conf/distro/include/tcmode-default.inc
> > @@ -23,7 +23,7 @@ SDKGCCVERSION ?= "${GCCVERSION}"
> >  BINUVERSION ?= "2.32%"
> >  GDBVERSION ?= "8.2%"
> >  GLIBCVERSION ?= "2.29%"
> > -LINUXLIBCVERSION ?= "4.19%"
> > +LINUXLIBCVERSION ?= "5.0%"
> >  QEMUVERSION ?= "3.1%"
> >  GOVERSION ?= "1.11%"
> >
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > index be215af9b9..7f838f623e 100644
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > @@ -38,6 +38,8 @@ python __anonymous () {
> >          d.setVar("HEADER_FETCH_VER", "3.0")
> >      elif major == "4":
> >          d.setVar("HEADER_FETCH_VER", "4.x")
> > +    elif major == "5":
> > +        d.setVar("HEADER_FETCH_VER", "5.x")
> >      else:
> >          d.setVar("HEADER_FETCH_VER", "2.6")
> >  }
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> > deleted file mode 100644
> > index 3684cc21bf..0000000000
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> > +++ /dev/null
> > @@ -1,49 +0,0 @@
> > -From e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5 Mon Sep 17 00:00:00 2001
> > -From: Davide Caratti <dcaratti@redhat.com>
> > -Date: Mon, 17 Dec 2018 11:26:38 +0100
> > -Subject: [PATCH] net: Use __kernel_clockid_t in uapi net_stamp.h
> > -MIME-Version: 1.0
> > -Content-Type: text/plain; charset=UTF-8
> > -Content-Transfer-Encoding: 8bit
> > -
> > -Herton reports the following error when building a userspace program that
> > -includes net_stamp.h:
> > -
> > - In file included from foo.c:2:
> > - /usr/include/linux/net_tstamp.h:158:2: error: unknown type name
> > - ‘clockid_t’
> > -   clockid_t clockid; /* reference clockid */
> > -   ^~~~~~~~~
> > -
> > -Fix it by using __kernel_clockid_t in place of clockid_t.
> > -
> > -Fixes: 80b14dee2bea ("net: Add a new socket option for a future transmit time.")
> > -Cc: Timothy Redaelli <tredaelli@redhat.com>
> > -Reported-by: Herton R. Krzesinski <herton@redhat.com>
> > -Signed-off-by: Davide Caratti <dcaratti@redhat.com>
> > -Tested-by: Paolo Abeni <pabeni@redhat.com>
> > -Signed-off-by: David S. Miller <davem@davemloft.net>
> > ----
> > -Upstream-Status: Backport [https://github.com/torvalds/linux/commit/e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5]
> > -
> > - include/uapi/linux/net_tstamp.h | 4 ++--
> > - 1 file changed, 2 insertions(+), 2 deletions(-)
> > -
> > -diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
> > -index 97ff3c17ec4d..e5b39721c6e4 100644
> > ---- a/include/uapi/linux/net_tstamp.h
> > -+++ b/include/uapi/linux/net_tstamp.h
> > -@@ -155,8 +155,8 @@ enum txtime_flags {
> > - };
> > -
> > - struct sock_txtime {
> > --      clockid_t       clockid;        /* reference clockid */
> > --      __u32           flags;          /* as defined by enum txtime_flags */
> > -+      __kernel_clockid_t      clockid;/* reference clockid */
> > -+      __u32                   flags;  /* as defined by enum txtime_flags */
> > - };
> > -
> > - #endif /* _NET_TIMESTAMPING_H */
> > ---
> > -2.20.1
> > -
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > index 9ba1c076e8..a5ded602e5 100644
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > @@ -1,8 +1,7 @@
> >  From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001
> >  From: He Zhe <zhe.he@windriver.com>
> >  Date: Wed, 21 Nov 2018 15:12:43 +0800
> > -Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for
> > - here-doc
> > +Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc
> >
> >  There was a bug of "as" in binutils that when it checks if the input file and
> >  output file are the same one, it would not check if they are on the same block
> > @@ -44,14 +43,14 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
> >   1 file changed, 4 insertions(+), 1 deletion(-)
> >
> >  diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
> > -index 083c526..8dfac55 100755
> > +index 8b980fb22..d256a9438 100755
> >  --- a/scripts/gcc-goto.sh
> >  +++ b/scripts/gcc-goto.sh
> >  @@ -3,7 +3,7 @@
> >   # Test for gcc 'asm goto' support
> >   # Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
> >
> > --cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
> > +-cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null
> >  +cat << "END" > ./input
> >   int main(void)
> >   {
> > @@ -61,8 +60,8 @@ index 083c526..8dfac55 100755
> >   }
> >   END
> >  +
> > -+$@ -x c ./input -c -o ./output && echo "y"
> > ++$@ -x c ./input -fno-PIE -c -o ./output
> >  +rm ./input ./output
> >  --
> > -2.7.4
> > +2.19.1
> >
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> > deleted file mode 100644
> > index 462fdba2ed..0000000000
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> > +++ /dev/null
> > @@ -1,43 +0,0 @@
> > -From 0dede80d25ae2005f8af7235809fc09a7c47c62e Mon Sep 17 00:00:00 2001
> > -From: Dave Martin <Dave.Martin@arm.com>
> > -Date: Tue, 11 Dec 2018 19:26:46 +0000
> > -Subject: [PATCH 2/3] arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition
> > -
> > -SVE_PT_REGS_OFFSET is supposed to indicate the offset for skipping
> > -over the ptrace NT_ARM_SVE header (struct user_sve_header) to the
> > -start of the SVE register data proper.
> > -
> > -However, currently SVE_PT_REGS_OFFSET is defined in terms of struct
> > -sve_context, which is wrong: that structure describes the SVE
> > -header in the signal frame, not in the ptrace regset.
> > -
> > -This patch fixes the definition to use the ptrace header structure
> > -struct user_sve_header instead.
> > -
> > -By good fortune, the to structures are the same size anyway, so
> > -there is no functional or ABI change.
> > -
> > -Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> > -
> > -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
> > ----
> > - arch/arm64/include/uapi/asm/ptrace.h | 2 +-
> > - 1 file changed, 1 insertion(+), 1 deletion(-)
> > -
> > -diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
> > -index 98c4ce55d9c3..ad64d2c92ef5 100644
> > ---- a/arch/arm64/include/uapi/asm/ptrace.h
> > -+++ b/arch/arm64/include/uapi/asm/ptrace.h
> > -@@ -130,7 +130,7 @@ struct user_sve_header {
> > -
> > - /* Offset from the start of struct user_sve_header to the register data */
> > - #define SVE_PT_REGS_OFFSET                                    \
> > --      ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))      \
> > -+      ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))  \
> > -               / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -
> > - /*
> > ---
> > -2.5.0
> > -
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> > deleted file mode 100644
> > index 0423f0f2cc..0000000000
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> > +++ /dev/null
> > @@ -1,289 +0,0 @@
> > -From 1114697c04b9699112e78dd8fc6ec849609ca1cb Mon Sep 17 00:00:00 2001
> > -From: Dave Martin <Dave.Martin@arm.com>
> > -Date: Tue, 11 Dec 2018 19:26:47 +0000
> > -Subject: [PATCH 3/3] arm64/sve: Disentangle <uapi/asm/ptrace.h> from
> > - <uapi/asm/sigcontext.h>
> > -
> > -Currently, <uapi/asm/sigcontext.h> provides common definitions for
> > -describing SVE context structures that are also used by the ptrace
> > -definitions in <uapi/asm/ptrace.h>.
> > -
> > -For this reason, a #include of <asm/sigcontext.h> was added in
> > -ptrace.h, but it this turns out that this can interact badly with
> > -userspace code that tries to include ptrace.h on top of the libc
> > -headers (which may provide their own shadow definitions for
> > -sigcontext.h).
> > -
> > -To make the headers easier for userspace to consume, this patch
> > -bounces the common definitions into an __SVE_* namespace and moves
> > -them to a backend header <uapi/asm/sve_context.h> that can be
> > -included by the other headers as appropriate.  This should allow
> > -ptrace.h to be used alongside libc's sigcontext.h (if any) without
> > -ill effects.
> > -
> > -This should make the situation unambiguous: <asm/sigcontext.h> is
> > -the header to include for the sigframe-specific definitions, while
> > -<asm/ptrace.h> is the header to include for ptrace-specific
> > -definitions.
> > -
> > -To avoid conflicting with existing usage, <asm/sigcontext.h>
> > -remains the canonical way to get the common definitions for
> > -SVE_VQ_MIN, sve_vq_from_vl() etc., both in userspace and in the
> > -kernel: relying on these being defined as a side effect of
> > -including just <asm/ptrace.h> was never intended to be safe.
> > -
> > -Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> > -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> > -
> > -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
> > ----
> > - arch/arm64/include/uapi/asm/ptrace.h      | 39 ++++++++++-----------
> > - arch/arm64/include/uapi/asm/sigcontext.h  | 56 +++++++++++++++----------------
> > - arch/arm64/include/uapi/asm/sve_context.h | 50 +++++++++++++++++++++++++++
> > - 3 files changed, 96 insertions(+), 49 deletions(-)
> > - create mode 100644 arch/arm64/include/uapi/asm/sve_context.h
> > -
> > -diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
> > -index ad64d2c92ef5..81547c3a95a3 100644
> > ---- a/arch/arm64/include/uapi/asm/ptrace.h
> > -+++ b/arch/arm64/include/uapi/asm/ptrace.h
> > -@@ -23,7 +23,7 @@
> > - #include <linux/types.h>
> > -
> > - #include <asm/hwcap.h>
> > --#include <asm/sigcontext.h>
> > -+#include <asm/sve_context.h>
> > -
> > -
> > - /*
> > -@@ -129,9 +129,9 @@ struct user_sve_header {
> > -  */
> > -
> > - /* Offset from the start of struct user_sve_header to the register data */
> > --#define SVE_PT_REGS_OFFSET                                    \
> > --      ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))  \
> > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -+#define SVE_PT_REGS_OFFSET                                            \
> > -+      ((sizeof(struct user_sve_header) + (__SVE_VQ_BYTES - 1))        \
> > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > -
> > - /*
> > -  * The register data content and layout depends on the value of the
> > -@@ -177,39 +177,36 @@ struct user_sve_header {
> > -  * Additional data might be appended in the future.
> > -  */
> > -
> > --#define SVE_PT_SVE_ZREG_SIZE(vq)      SVE_SIG_ZREG_SIZE(vq)
> > --#define SVE_PT_SVE_PREG_SIZE(vq)      SVE_SIG_PREG_SIZE(vq)
> > --#define SVE_PT_SVE_FFR_SIZE(vq)               SVE_SIG_FFR_SIZE(vq)
> > -+#define SVE_PT_SVE_ZREG_SIZE(vq)      __SVE_ZREG_SIZE(vq)
> > -+#define SVE_PT_SVE_PREG_SIZE(vq)      __SVE_PREG_SIZE(vq)
> > -+#define SVE_PT_SVE_FFR_SIZE(vq)               __SVE_FFR_SIZE(vq)
> > - #define SVE_PT_SVE_FPSR_SIZE          sizeof(__u32)
> > - #define SVE_PT_SVE_FPCR_SIZE          sizeof(__u32)
> > -
> > --#define __SVE_SIG_TO_PT(offset) \
> > --      ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET)
> > --
> > - #define SVE_PT_SVE_OFFSET             SVE_PT_REGS_OFFSET
> > -
> > - #define SVE_PT_SVE_ZREGS_OFFSET \
> > --      __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET)
> > -+      (SVE_PT_REGS_OFFSET + __SVE_ZREGS_OFFSET)
> > - #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \
> > --      __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n))
> > -+      (SVE_PT_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
> > - #define SVE_PT_SVE_ZREGS_SIZE(vq) \
> > --      (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
> > -+      (SVE_PT_SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
> > -
> > - #define SVE_PT_SVE_PREGS_OFFSET(vq) \
> > --      __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq))
> > -+      (SVE_PT_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
> > - #define SVE_PT_SVE_PREG_OFFSET(vq, n) \
> > --      __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n))
> > -+      (SVE_PT_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
> > - #define SVE_PT_SVE_PREGS_SIZE(vq) \
> > --      (SVE_PT_SVE_PREG_OFFSET(vq, SVE_NUM_PREGS) - \
> > -+      (SVE_PT_SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - \
> > -               SVE_PT_SVE_PREGS_OFFSET(vq))
> > -
> > - #define SVE_PT_SVE_FFR_OFFSET(vq) \
> > --      __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq))
> > -+      (SVE_PT_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
> > -
> > - #define SVE_PT_SVE_FPSR_OFFSET(vq)                            \
> > -       ((SVE_PT_SVE_FFR_OFFSET(vq) + SVE_PT_SVE_FFR_SIZE(vq) + \
> > --                      (SVE_VQ_BYTES - 1))                     \
> > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -+                      (__SVE_VQ_BYTES - 1))                   \
> > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > - #define SVE_PT_SVE_FPCR_OFFSET(vq) \
> > -       (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE)
> > -
> > -@@ -220,8 +217,8 @@ struct user_sve_header {
> > -
> > - #define SVE_PT_SVE_SIZE(vq, flags)                                    \
> > -       ((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE             \
> > --                      - SVE_PT_SVE_OFFSET + (SVE_VQ_BYTES - 1))       \
> > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -+                      - SVE_PT_SVE_OFFSET + (__SVE_VQ_BYTES - 1))     \
> > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > -
> > - #define SVE_PT_SIZE(vq, flags)                                                \
> > -        (((flags) & SVE_PT_REGS_MASK) == SVE_PT_REGS_SVE ?             \
> > -diff --git a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h
> > -index dca8f8b5168b..5f3c0cec5af9 100644
> > ---- a/arch/arm64/include/uapi/asm/sigcontext.h
> > -+++ b/arch/arm64/include/uapi/asm/sigcontext.h
> > -@@ -130,6 +130,8 @@ struct sve_context {
> > -
> > - #endif /* !__ASSEMBLY__ */
> > -
> > -+#include <asm/sve_context.h>
> > -+
> > - /*
> > -  * The SVE architecture leaves space for future expansion of the
> > -  * vector length beyond its initial architectural limit of 2048 bits
> > -@@ -138,21 +140,20 @@ struct sve_context {
> > -  * See linux/Documentation/arm64/sve.txt for a description of the VL/VQ
> > -  * terminology.
> > -  */
> > --#define SVE_VQ_BYTES          16      /* number of bytes per quadword */
> > -+#define SVE_VQ_BYTES          __SVE_VQ_BYTES  /* bytes per quadword */
> > -
> > --#define SVE_VQ_MIN            1
> > --#define SVE_VQ_MAX            512
> > -+#define SVE_VQ_MIN            __SVE_VQ_MIN
> > -+#define SVE_VQ_MAX            __SVE_VQ_MAX
> > -
> > --#define SVE_VL_MIN            (SVE_VQ_MIN * SVE_VQ_BYTES)
> > --#define SVE_VL_MAX            (SVE_VQ_MAX * SVE_VQ_BYTES)
> > -+#define SVE_VL_MIN            __SVE_VL_MIN
> > -+#define SVE_VL_MAX            __SVE_VL_MAX
> > -
> > --#define SVE_NUM_ZREGS         32
> > --#define SVE_NUM_PREGS         16
> > -+#define SVE_NUM_ZREGS         __SVE_NUM_ZREGS
> > -+#define SVE_NUM_PREGS         __SVE_NUM_PREGS
> > -
> > --#define sve_vl_valid(vl) \
> > --      ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX)
> > --#define sve_vq_from_vl(vl)    ((vl) / SVE_VQ_BYTES)
> > --#define sve_vl_from_vq(vq)    ((vq) * SVE_VQ_BYTES)
> > -+#define sve_vl_valid(vl)      __sve_vl_valid(vl)
> > -+#define sve_vq_from_vl(vl)    __sve_vq_from_vl(vl)
> > -+#define sve_vl_from_vq(vq)    __sve_vl_from_vq(vq)
> > -
> > - /*
> > -  * If the SVE registers are currently live for the thread at signal delivery,
> > -@@ -205,34 +206,33 @@ struct sve_context {
> > -  * Additional data might be appended in the future.
> > -  */
> > -
> > --#define SVE_SIG_ZREG_SIZE(vq) ((__u32)(vq) * SVE_VQ_BYTES)
> > --#define SVE_SIG_PREG_SIZE(vq) ((__u32)(vq) * (SVE_VQ_BYTES / 8))
> > --#define SVE_SIG_FFR_SIZE(vq)  SVE_SIG_PREG_SIZE(vq)
> > -+#define SVE_SIG_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq)
> > -+#define SVE_SIG_PREG_SIZE(vq) __SVE_PREG_SIZE(vq)
> > -+#define SVE_SIG_FFR_SIZE(vq)  __SVE_FFR_SIZE(vq)
> > -
> > - #define SVE_SIG_REGS_OFFSET                                   \
> > --      ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))      \
> > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > -+      ((sizeof(struct sve_context) + (__SVE_VQ_BYTES - 1))    \
> > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > -
> > --#define SVE_SIG_ZREGS_OFFSET  SVE_SIG_REGS_OFFSET
> > -+#define SVE_SIG_ZREGS_OFFSET \
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_ZREGS_OFFSET)
> > - #define SVE_SIG_ZREG_OFFSET(vq, n) \
> > --      (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n))
> > --#define SVE_SIG_ZREGS_SIZE(vq) \
> > --      (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET)
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
> > -+#define SVE_SIG_ZREGS_SIZE(vq) __SVE_ZREGS_SIZE(vq)
> > -
> > - #define SVE_SIG_PREGS_OFFSET(vq) \
> > --      (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq))
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
> > - #define SVE_SIG_PREG_OFFSET(vq, n) \
> > --      (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n))
> > --#define SVE_SIG_PREGS_SIZE(vq) \
> > --      (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq))
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
> > -+#define SVE_SIG_PREGS_SIZE(vq) __SVE_PREGS_SIZE(vq)
> > -
> > - #define SVE_SIG_FFR_OFFSET(vq) \
> > --      (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq))
> > -+              (SVE_SIG_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
> > -
> > - #define SVE_SIG_REGS_SIZE(vq) \
> > --      (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)
> > --
> > --#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
> > -+              (__SVE_FFR_OFFSET(vq) + __SVE_FFR_SIZE(vq))
> > -
> > -+#define SVE_SIG_CONTEXT_SIZE(vq) \
> > -+              (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
> > -
> > - #endif /* _UAPI__ASM_SIGCONTEXT_H */
> > -diff --git a/arch/arm64/include/uapi/asm/sve_context.h b/arch/arm64/include/uapi/asm/sve_context.h
> > -new file mode 100644
> > -index 000000000000..140f14c318a5
> > ---- /dev/null
> > -+++ b/arch/arm64/include/uapi/asm/sve_context.h
> > -@@ -0,0 +1,50 @@
> > -+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> > -+/* Copyright (C) 2017-2018 ARM Limited */
> > -+
> > -+#if !defined(_UAPI__ASM_PTRACE_H) && !defined(_UAPI__ASM_SIGCONTEXT_H)
> > -+#error "Do not include this header or use its definitions directly."
> > -+#endif
> > -+
> > -+#ifndef _UAPI__ASM_SVE_CONTEXT_H
> > -+#define _UAPI__ASM_SVE_CONTEXT_H
> > -+
> > -+#define __SVE_VQ_BYTES                16      /* number of bytes per quadword */
> > -+
> > -+#define __SVE_VQ_MIN          1
> > -+#define __SVE_VQ_MAX          512
> > -+
> > -+#define __SVE_VL_MIN          (__SVE_VQ_MIN * __SVE_VQ_BYTES)
> > -+#define __SVE_VL_MAX          (__SVE_VQ_MAX * __SVE_VQ_BYTES)
> > -+
> > -+#define __SVE_NUM_ZREGS               32
> > -+#define __SVE_NUM_PREGS               16
> > -+
> > -+#define __sve_vl_valid(vl)                    \
> > -+      ((vl) % __SVE_VQ_BYTES == 0 &&          \
> > -+       (vl) >= __SVE_VL_MIN &&                \
> > -+       (vl) <= __SVE_VL_MAX)
> > -+
> > -+#define __sve_vq_from_vl(vl)  ((vl) / __SVE_VQ_BYTES)
> > -+#define __sve_vl_from_vq(vq)  ((vq) * __SVE_VQ_BYTES)
> > -+
> > -+#define __SVE_ZREG_SIZE(vq)   ((__u32)(vq) * __SVE_VQ_BYTES)
> > -+#define __SVE_PREG_SIZE(vq)   ((__u32)(vq) * (__SVE_VQ_BYTES / 8))
> > -+#define __SVE_FFR_SIZE(vq)    __SVE_PREG_SIZE(vq)
> > -+
> > -+#define __SVE_ZREGS_OFFSET    0
> > -+#define __SVE_ZREG_OFFSET(vq, n) \
> > -+      (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n))
> > -+#define __SVE_ZREGS_SIZE(vq) \
> > -+      (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET)
> > -+
> > -+#define __SVE_PREGS_OFFSET(vq) \
> > -+      (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq))
> > -+#define __SVE_PREG_OFFSET(vq, n) \
> > -+      (__SVE_PREGS_OFFSET(vq) + __SVE_PREG_SIZE(vq) * (n))
> > -+#define __SVE_PREGS_SIZE(vq) \
> > -+      (__SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - __SVE_PREGS_OFFSET(vq))
> > -+
> > -+#define __SVE_FFR_OFFSET(vq) \
> > -+      (__SVE_PREGS_OFFSET(vq) + __SVE_PREGS_SIZE(vq))
> > -+
> > -+#endif /* ! _UAPI__ASM_SVE_CONTEXT_H */
> > ---
> > -2.5.0
> > -
> > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > similarity index 65%
> > rename from meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
> > rename to meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > index 48f25ebc1a..e76120c5b8 100644
> > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
> > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > @@ -10,12 +10,9 @@ SRC_URI_append_libc-musl = "\
> >     "
> >
> >  SRC_URI_append = "\
> > -    file://0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch \
> >      file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \
> >      file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
> > -    file://0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch \
> > -    file://0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch \
> >  "
> >
> > -SRC_URI[md5sum] = "740a90cf810c2105df8ee12e5d0bb900"
> > -SRC_URI[sha256sum] = "0c68f5655528aed4f99dae71a5b259edc93239fa899e2df79c055275c21749a1"
> > +SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0"
> > +SRC_URI[sha256sum] = "437b141a6499159f5a7282d5eb4b2be055f8e862ccce44d7464e8759c31a2e43"
> > --
> > 2.19.1
> >
> > --
> > _______________________________________________
> > Openembedded-core mailing list
> > Openembedded-core@lists.openembedded.org
> > http://lists.openembedded.org/mailman/listinfo/openembedded-core



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

* Re: [PATCH 2/6] linux-libc-headers: update to 5.x headers
  2019-03-07 15:20     ` Khem Raj
@ 2019-03-08 14:48       ` Adrian Bunk
  2019-03-08 17:49         ` Khem Raj
  0 siblings, 1 reply; 24+ messages in thread
From: Adrian Bunk @ 2019-03-08 14:48 UTC (permalink / raw)
  To: Khem Raj; +Cc: Patches and discussions about the oe-core layer

On Thu, Mar 07, 2019 at 07:20:15AM -0800, Khem Raj wrote:
> another one I forgot
> https://errors.yoctoproject.org/Errors/Details/231924/

The two commits from
https://github.com/miniupnp/miniupnp/issues/346
should fix this (untested).

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed



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

* Re: [PATCH 2/6] linux-libc-headers: update to 5.x headers
  2019-03-08 14:48       ` Adrian Bunk
@ 2019-03-08 17:49         ` Khem Raj
  0 siblings, 0 replies; 24+ messages in thread
From: Khem Raj @ 2019-03-08 17:49 UTC (permalink / raw)
  To: Adrian Bunk; +Cc: Patches and discussions about the oe-core layer

On Fri, Mar 8, 2019 at 6:48 AM Adrian Bunk <bunk@stusta.de> wrote:
>
> On Thu, Mar 07, 2019 at 07:20:15AM -0800, Khem Raj wrote:
> > another one I forgot
> > https://errors.yoctoproject.org/Errors/Details/231924/
>
> The two commits from
> https://github.com/miniupnp/miniupnp/issues/346
> should fix this (untested).
>

right, I have staged an upgrade past this fix.

> cu
> Adrian
>
> --
>
>        "Is there not promise of rain?" Ling Tan asked suddenly out
>         of the darkness. There had been need of rain for many days.
>        "Only a promise," Lao Er said.
>                                        Pearl S. Buck - Dragon Seed
>


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

* Re: [PATCH 2/6] linux-libc-headers: update to 5.x headers
  2019-03-08 14:24     ` Bruce Ashfield
@ 2019-03-08 17:51       ` Khem Raj
  0 siblings, 0 replies; 24+ messages in thread
From: Khem Raj @ 2019-03-08 17:51 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: Patches and discussions about the oe-core layer

On Fri, Mar 8, 2019 at 6:24 AM Bruce Ashfield <bruce.ashfield@gmail.com> wrote:
>
> On Thu, Mar 7, 2019 at 10:19 AM Khem Raj <raj.khem@gmail.com> wrote:
> >
> > Bruce
> >
> > https://errors.yoctoproject.org/Errors/Details/231923/
> >
> > seems to be due to this. seems we need to get this define from
> > elsewhere have you encountered this?
>
> I haven't seen this one myself.  I'll start another build once my
> arm64 debug has finished. Let me know if you do come up with a
> resolution to these!

I fixed this one. But there is ltrace/mips one which is also popping up

error: '__NR_O32_Linux' undeclared (first use in this function)

see
https://errors.yoctoproject.org/Errors/Details/232083/

It seems to be related to

https://lkml.org/lkml/2018/11/15/522

>
> Bruce
>
> >
> > On Wed, Mar 6, 2019 at 8:37 AM <bruce.ashfield@gmail.com> wrote:
> > >
> > > From: Bruce Ashfield <bruce.ashfield@gmail.com>
> > >
> > > Updating the linux-libc-headers to the 5.x kernel variant to match
> > > the latest reference kernel in the 2.7 release.
> > >
> > > We have two patches refreshed for context changes, and three patches
> > > dropped since they have been merged to the mainline kernel and are
> > > no longer necessary.
> > >
> > > Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > > ---
> > >  meta/conf/distro/include/tcmode-default.inc   |   2 +-
> > >  .../linux-libc-headers/linux-libc-headers.inc |   2 +
> > >  ...kernel_clockid_t-in-uapi-net_stamp.h.patch |  49 ---
> > >  ...d-input-and-output-files-instead-of-.patch |  11 +-
> > >  ...ce-Fix-SVE_PT_REGS_OFFSET-definition.patch |  43 ---
> > >  ...angle-uapi-asm-ptrace.h-from-uapi-as.patch | 289 ------------------
> > >  ...ders_4.19.bb => linux-libc-headers_5.0.bb} |   7 +-
> > >  7 files changed, 10 insertions(+), 393 deletions(-)
> > >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> > >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> > >  delete mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> > >  rename meta/recipes-kernel/linux-libc-headers/{linux-libc-headers_4.19.bb => linux-libc-headers_5.0.bb} (65%)
> > >
> > > diff --git a/meta/conf/distro/include/tcmode-default.inc b/meta/conf/distro/include/tcmode-default.inc
> > > index 5d71825889..12d3901ee1 100644
> > > --- a/meta/conf/distro/include/tcmode-default.inc
> > > +++ b/meta/conf/distro/include/tcmode-default.inc
> > > @@ -23,7 +23,7 @@ SDKGCCVERSION ?= "${GCCVERSION}"
> > >  BINUVERSION ?= "2.32%"
> > >  GDBVERSION ?= "8.2%"
> > >  GLIBCVERSION ?= "2.29%"
> > > -LINUXLIBCVERSION ?= "4.19%"
> > > +LINUXLIBCVERSION ?= "5.0%"
> > >  QEMUVERSION ?= "3.1%"
> > >  GOVERSION ?= "1.11%"
> > >
> > > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > > index be215af9b9..7f838f623e 100644
> > > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers.inc
> > > @@ -38,6 +38,8 @@ python __anonymous () {
> > >          d.setVar("HEADER_FETCH_VER", "3.0")
> > >      elif major == "4":
> > >          d.setVar("HEADER_FETCH_VER", "4.x")
> > > +    elif major == "5":
> > > +        d.setVar("HEADER_FETCH_VER", "5.x")
> > >      else:
> > >          d.setVar("HEADER_FETCH_VER", "2.6")
> > >  }
> > > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> > > deleted file mode 100644
> > > index 3684cc21bf..0000000000
> > > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch
> > > +++ /dev/null
> > > @@ -1,49 +0,0 @@
> > > -From e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5 Mon Sep 17 00:00:00 2001
> > > -From: Davide Caratti <dcaratti@redhat.com>
> > > -Date: Mon, 17 Dec 2018 11:26:38 +0100
> > > -Subject: [PATCH] net: Use __kernel_clockid_t in uapi net_stamp.h
> > > -MIME-Version: 1.0
> > > -Content-Type: text/plain; charset=UTF-8
> > > -Content-Transfer-Encoding: 8bit
> > > -
> > > -Herton reports the following error when building a userspace program that
> > > -includes net_stamp.h:
> > > -
> > > - In file included from foo.c:2:
> > > - /usr/include/linux/net_tstamp.h:158:2: error: unknown type name
> > > - ‘clockid_t’
> > > -   clockid_t clockid; /* reference clockid */
> > > -   ^~~~~~~~~
> > > -
> > > -Fix it by using __kernel_clockid_t in place of clockid_t.
> > > -
> > > -Fixes: 80b14dee2bea ("net: Add a new socket option for a future transmit time.")
> > > -Cc: Timothy Redaelli <tredaelli@redhat.com>
> > > -Reported-by: Herton R. Krzesinski <herton@redhat.com>
> > > -Signed-off-by: Davide Caratti <dcaratti@redhat.com>
> > > -Tested-by: Paolo Abeni <pabeni@redhat.com>
> > > -Signed-off-by: David S. Miller <davem@davemloft.net>
> > > ----
> > > -Upstream-Status: Backport [https://github.com/torvalds/linux/commit/e2c4cf7f98a519eb4d95532bfa06bcaf3562fed5]
> > > -
> > > - include/uapi/linux/net_tstamp.h | 4 ++--
> > > - 1 file changed, 2 insertions(+), 2 deletions(-)
> > > -
> > > -diff --git a/include/uapi/linux/net_tstamp.h b/include/uapi/linux/net_tstamp.h
> > > -index 97ff3c17ec4d..e5b39721c6e4 100644
> > > ---- a/include/uapi/linux/net_tstamp.h
> > > -+++ b/include/uapi/linux/net_tstamp.h
> > > -@@ -155,8 +155,8 @@ enum txtime_flags {
> > > - };
> > > -
> > > - struct sock_txtime {
> > > --      clockid_t       clockid;        /* reference clockid */
> > > --      __u32           flags;          /* as defined by enum txtime_flags */
> > > -+      __kernel_clockid_t      clockid;/* reference clockid */
> > > -+      __u32                   flags;  /* as defined by enum txtime_flags */
> > > - };
> > > -
> > > - #endif /* _NET_TIMESTAMPING_H */
> > > ---
> > > -2.20.1
> > > -
> > > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > > index 9ba1c076e8..a5ded602e5 100644
> > > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch
> > > @@ -1,8 +1,7 @@
> > >  From 694eba7bb974f6b8bd308804cb24350150108b2b Mon Sep 17 00:00:00 2001
> > >  From: He Zhe <zhe.he@windriver.com>
> > >  Date: Wed, 21 Nov 2018 15:12:43 +0800
> > > -Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for
> > > - here-doc
> > > +Subject: [PATCH] scripts: Use fixed input and output files instead of pipe for here-doc
> > >
> > >  There was a bug of "as" in binutils that when it checks if the input file and
> > >  output file are the same one, it would not check if they are on the same block
> > > @@ -44,14 +43,14 @@ Signed-off-by: He Zhe <zhe.he@windriver.com>
> > >   1 file changed, 4 insertions(+), 1 deletion(-)
> > >
> > >  diff --git a/scripts/gcc-goto.sh b/scripts/gcc-goto.sh
> > > -index 083c526..8dfac55 100755
> > > +index 8b980fb22..d256a9438 100755
> > >  --- a/scripts/gcc-goto.sh
> > >  +++ b/scripts/gcc-goto.sh
> > >  @@ -3,7 +3,7 @@
> > >   # Test for gcc 'asm goto' support
> > >   # Copyright (C) 2010, Jason Baron <jbaron@redhat.com>
> > >
> > > --cat << "END" | $@ -x c - -c -o /dev/null >/dev/null 2>&1 && echo "y"
> > > +-cat << "END" | $@ -x c - -fno-PIE -c -o /dev/null
> > >  +cat << "END" > ./input
> > >   int main(void)
> > >   {
> > > @@ -61,8 +60,8 @@ index 083c526..8dfac55 100755
> > >   }
> > >   END
> > >  +
> > > -+$@ -x c ./input -c -o ./output && echo "y"
> > > ++$@ -x c ./input -fno-PIE -c -o ./output
> > >  +rm ./input ./output
> > >  --
> > > -2.7.4
> > > +2.19.1
> > >
> > > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> > > deleted file mode 100644
> > > index 462fdba2ed..0000000000
> > > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch
> > > +++ /dev/null
> > > @@ -1,43 +0,0 @@
> > > -From 0dede80d25ae2005f8af7235809fc09a7c47c62e Mon Sep 17 00:00:00 2001
> > > -From: Dave Martin <Dave.Martin@arm.com>
> > > -Date: Tue, 11 Dec 2018 19:26:46 +0000
> > > -Subject: [PATCH 2/3] arm64/sve: ptrace: Fix SVE_PT_REGS_OFFSET definition
> > > -
> > > -SVE_PT_REGS_OFFSET is supposed to indicate the offset for skipping
> > > -over the ptrace NT_ARM_SVE header (struct user_sve_header) to the
> > > -start of the SVE register data proper.
> > > -
> > > -However, currently SVE_PT_REGS_OFFSET is defined in terms of struct
> > > -sve_context, which is wrong: that structure describes the SVE
> > > -header in the signal frame, not in the ptrace regset.
> > > -
> > > -This patch fixes the definition to use the ptrace header structure
> > > -struct user_sve_header instead.
> > > -
> > > -By good fortune, the to structures are the same size anyway, so
> > > -there is no functional or ABI change.
> > > -
> > > -Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> > > -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> > > -
> > > -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
> > > ----
> > > - arch/arm64/include/uapi/asm/ptrace.h | 2 +-
> > > - 1 file changed, 1 insertion(+), 1 deletion(-)
> > > -
> > > -diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
> > > -index 98c4ce55d9c3..ad64d2c92ef5 100644
> > > ---- a/arch/arm64/include/uapi/asm/ptrace.h
> > > -+++ b/arch/arm64/include/uapi/asm/ptrace.h
> > > -@@ -130,7 +130,7 @@ struct user_sve_header {
> > > -
> > > - /* Offset from the start of struct user_sve_header to the register data */
> > > - #define SVE_PT_REGS_OFFSET                                    \
> > > --      ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))      \
> > > -+      ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))  \
> > > -               / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > > -
> > > - /*
> > > ---
> > > -2.5.0
> > > -
> > > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> > > deleted file mode 100644
> > > index 0423f0f2cc..0000000000
> > > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch
> > > +++ /dev/null
> > > @@ -1,289 +0,0 @@
> > > -From 1114697c04b9699112e78dd8fc6ec849609ca1cb Mon Sep 17 00:00:00 2001
> > > -From: Dave Martin <Dave.Martin@arm.com>
> > > -Date: Tue, 11 Dec 2018 19:26:47 +0000
> > > -Subject: [PATCH 3/3] arm64/sve: Disentangle <uapi/asm/ptrace.h> from
> > > - <uapi/asm/sigcontext.h>
> > > -
> > > -Currently, <uapi/asm/sigcontext.h> provides common definitions for
> > > -describing SVE context structures that are also used by the ptrace
> > > -definitions in <uapi/asm/ptrace.h>.
> > > -
> > > -For this reason, a #include of <asm/sigcontext.h> was added in
> > > -ptrace.h, but it this turns out that this can interact badly with
> > > -userspace code that tries to include ptrace.h on top of the libc
> > > -headers (which may provide their own shadow definitions for
> > > -sigcontext.h).
> > > -
> > > -To make the headers easier for userspace to consume, this patch
> > > -bounces the common definitions into an __SVE_* namespace and moves
> > > -them to a backend header <uapi/asm/sve_context.h> that can be
> > > -included by the other headers as appropriate.  This should allow
> > > -ptrace.h to be used alongside libc's sigcontext.h (if any) without
> > > -ill effects.
> > > -
> > > -This should make the situation unambiguous: <asm/sigcontext.h> is
> > > -the header to include for the sigframe-specific definitions, while
> > > -<asm/ptrace.h> is the header to include for ptrace-specific
> > > -definitions.
> > > -
> > > -To avoid conflicting with existing usage, <asm/sigcontext.h>
> > > -remains the canonical way to get the common definitions for
> > > -SVE_VQ_MIN, sve_vq_from_vl() etc., both in userspace and in the
> > > -kernel: relying on these being defined as a side effect of
> > > -including just <asm/ptrace.h> was never intended to be safe.
> > > -
> > > -Signed-off-by: Dave Martin <Dave.Martin@arm.com>
> > > -Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
> > > -
> > > -Upstream-Status: Submitted [https://www.spinics.net/lists/arm-kernel/msg694800.html]
> > > ----
> > > - arch/arm64/include/uapi/asm/ptrace.h      | 39 ++++++++++-----------
> > > - arch/arm64/include/uapi/asm/sigcontext.h  | 56 +++++++++++++++----------------
> > > - arch/arm64/include/uapi/asm/sve_context.h | 50 +++++++++++++++++++++++++++
> > > - 3 files changed, 96 insertions(+), 49 deletions(-)
> > > - create mode 100644 arch/arm64/include/uapi/asm/sve_context.h
> > > -
> > > -diff --git a/arch/arm64/include/uapi/asm/ptrace.h b/arch/arm64/include/uapi/asm/ptrace.h
> > > -index ad64d2c92ef5..81547c3a95a3 100644
> > > ---- a/arch/arm64/include/uapi/asm/ptrace.h
> > > -+++ b/arch/arm64/include/uapi/asm/ptrace.h
> > > -@@ -23,7 +23,7 @@
> > > - #include <linux/types.h>
> > > -
> > > - #include <asm/hwcap.h>
> > > --#include <asm/sigcontext.h>
> > > -+#include <asm/sve_context.h>
> > > -
> > > -
> > > - /*
> > > -@@ -129,9 +129,9 @@ struct user_sve_header {
> > > -  */
> > > -
> > > - /* Offset from the start of struct user_sve_header to the register data */
> > > --#define SVE_PT_REGS_OFFSET                                    \
> > > --      ((sizeof(struct user_sve_header) + (SVE_VQ_BYTES - 1))  \
> > > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > > -+#define SVE_PT_REGS_OFFSET                                            \
> > > -+      ((sizeof(struct user_sve_header) + (__SVE_VQ_BYTES - 1))        \
> > > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > > -
> > > - /*
> > > -  * The register data content and layout depends on the value of the
> > > -@@ -177,39 +177,36 @@ struct user_sve_header {
> > > -  * Additional data might be appended in the future.
> > > -  */
> > > -
> > > --#define SVE_PT_SVE_ZREG_SIZE(vq)      SVE_SIG_ZREG_SIZE(vq)
> > > --#define SVE_PT_SVE_PREG_SIZE(vq)      SVE_SIG_PREG_SIZE(vq)
> > > --#define SVE_PT_SVE_FFR_SIZE(vq)               SVE_SIG_FFR_SIZE(vq)
> > > -+#define SVE_PT_SVE_ZREG_SIZE(vq)      __SVE_ZREG_SIZE(vq)
> > > -+#define SVE_PT_SVE_PREG_SIZE(vq)      __SVE_PREG_SIZE(vq)
> > > -+#define SVE_PT_SVE_FFR_SIZE(vq)               __SVE_FFR_SIZE(vq)
> > > - #define SVE_PT_SVE_FPSR_SIZE          sizeof(__u32)
> > > - #define SVE_PT_SVE_FPCR_SIZE          sizeof(__u32)
> > > -
> > > --#define __SVE_SIG_TO_PT(offset) \
> > > --      ((offset) - SVE_SIG_REGS_OFFSET + SVE_PT_REGS_OFFSET)
> > > --
> > > - #define SVE_PT_SVE_OFFSET             SVE_PT_REGS_OFFSET
> > > -
> > > - #define SVE_PT_SVE_ZREGS_OFFSET \
> > > --      __SVE_SIG_TO_PT(SVE_SIG_ZREGS_OFFSET)
> > > -+      (SVE_PT_REGS_OFFSET + __SVE_ZREGS_OFFSET)
> > > - #define SVE_PT_SVE_ZREG_OFFSET(vq, n) \
> > > --      __SVE_SIG_TO_PT(SVE_SIG_ZREG_OFFSET(vq, n))
> > > -+      (SVE_PT_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
> > > - #define SVE_PT_SVE_ZREGS_SIZE(vq) \
> > > --      (SVE_PT_SVE_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
> > > -+      (SVE_PT_SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - SVE_PT_SVE_ZREGS_OFFSET)
> > > -
> > > - #define SVE_PT_SVE_PREGS_OFFSET(vq) \
> > > --      __SVE_SIG_TO_PT(SVE_SIG_PREGS_OFFSET(vq))
> > > -+      (SVE_PT_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
> > > - #define SVE_PT_SVE_PREG_OFFSET(vq, n) \
> > > --      __SVE_SIG_TO_PT(SVE_SIG_PREG_OFFSET(vq, n))
> > > -+      (SVE_PT_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
> > > - #define SVE_PT_SVE_PREGS_SIZE(vq) \
> > > --      (SVE_PT_SVE_PREG_OFFSET(vq, SVE_NUM_PREGS) - \
> > > -+      (SVE_PT_SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - \
> > > -               SVE_PT_SVE_PREGS_OFFSET(vq))
> > > -
> > > - #define SVE_PT_SVE_FFR_OFFSET(vq) \
> > > --      __SVE_SIG_TO_PT(SVE_SIG_FFR_OFFSET(vq))
> > > -+      (SVE_PT_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
> > > -
> > > - #define SVE_PT_SVE_FPSR_OFFSET(vq)                            \
> > > -       ((SVE_PT_SVE_FFR_OFFSET(vq) + SVE_PT_SVE_FFR_SIZE(vq) + \
> > > --                      (SVE_VQ_BYTES - 1))                     \
> > > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > > -+                      (__SVE_VQ_BYTES - 1))                   \
> > > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > > - #define SVE_PT_SVE_FPCR_OFFSET(vq) \
> > > -       (SVE_PT_SVE_FPSR_OFFSET(vq) + SVE_PT_SVE_FPSR_SIZE)
> > > -
> > > -@@ -220,8 +217,8 @@ struct user_sve_header {
> > > -
> > > - #define SVE_PT_SVE_SIZE(vq, flags)                                    \
> > > -       ((SVE_PT_SVE_FPCR_OFFSET(vq) + SVE_PT_SVE_FPCR_SIZE             \
> > > --                      - SVE_PT_SVE_OFFSET + (SVE_VQ_BYTES - 1))       \
> > > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > > -+                      - SVE_PT_SVE_OFFSET + (__SVE_VQ_BYTES - 1))     \
> > > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > > -
> > > - #define SVE_PT_SIZE(vq, flags)                                                \
> > > -        (((flags) & SVE_PT_REGS_MASK) == SVE_PT_REGS_SVE ?             \
> > > -diff --git a/arch/arm64/include/uapi/asm/sigcontext.h b/arch/arm64/include/uapi/asm/sigcontext.h
> > > -index dca8f8b5168b..5f3c0cec5af9 100644
> > > ---- a/arch/arm64/include/uapi/asm/sigcontext.h
> > > -+++ b/arch/arm64/include/uapi/asm/sigcontext.h
> > > -@@ -130,6 +130,8 @@ struct sve_context {
> > > -
> > > - #endif /* !__ASSEMBLY__ */
> > > -
> > > -+#include <asm/sve_context.h>
> > > -+
> > > - /*
> > > -  * The SVE architecture leaves space for future expansion of the
> > > -  * vector length beyond its initial architectural limit of 2048 bits
> > > -@@ -138,21 +140,20 @@ struct sve_context {
> > > -  * See linux/Documentation/arm64/sve.txt for a description of the VL/VQ
> > > -  * terminology.
> > > -  */
> > > --#define SVE_VQ_BYTES          16      /* number of bytes per quadword */
> > > -+#define SVE_VQ_BYTES          __SVE_VQ_BYTES  /* bytes per quadword */
> > > -
> > > --#define SVE_VQ_MIN            1
> > > --#define SVE_VQ_MAX            512
> > > -+#define SVE_VQ_MIN            __SVE_VQ_MIN
> > > -+#define SVE_VQ_MAX            __SVE_VQ_MAX
> > > -
> > > --#define SVE_VL_MIN            (SVE_VQ_MIN * SVE_VQ_BYTES)
> > > --#define SVE_VL_MAX            (SVE_VQ_MAX * SVE_VQ_BYTES)
> > > -+#define SVE_VL_MIN            __SVE_VL_MIN
> > > -+#define SVE_VL_MAX            __SVE_VL_MAX
> > > -
> > > --#define SVE_NUM_ZREGS         32
> > > --#define SVE_NUM_PREGS         16
> > > -+#define SVE_NUM_ZREGS         __SVE_NUM_ZREGS
> > > -+#define SVE_NUM_PREGS         __SVE_NUM_PREGS
> > > -
> > > --#define sve_vl_valid(vl) \
> > > --      ((vl) % SVE_VQ_BYTES == 0 && (vl) >= SVE_VL_MIN && (vl) <= SVE_VL_MAX)
> > > --#define sve_vq_from_vl(vl)    ((vl) / SVE_VQ_BYTES)
> > > --#define sve_vl_from_vq(vq)    ((vq) * SVE_VQ_BYTES)
> > > -+#define sve_vl_valid(vl)      __sve_vl_valid(vl)
> > > -+#define sve_vq_from_vl(vl)    __sve_vq_from_vl(vl)
> > > -+#define sve_vl_from_vq(vq)    __sve_vl_from_vq(vq)
> > > -
> > > - /*
> > > -  * If the SVE registers are currently live for the thread at signal delivery,
> > > -@@ -205,34 +206,33 @@ struct sve_context {
> > > -  * Additional data might be appended in the future.
> > > -  */
> > > -
> > > --#define SVE_SIG_ZREG_SIZE(vq) ((__u32)(vq) * SVE_VQ_BYTES)
> > > --#define SVE_SIG_PREG_SIZE(vq) ((__u32)(vq) * (SVE_VQ_BYTES / 8))
> > > --#define SVE_SIG_FFR_SIZE(vq)  SVE_SIG_PREG_SIZE(vq)
> > > -+#define SVE_SIG_ZREG_SIZE(vq) __SVE_ZREG_SIZE(vq)
> > > -+#define SVE_SIG_PREG_SIZE(vq) __SVE_PREG_SIZE(vq)
> > > -+#define SVE_SIG_FFR_SIZE(vq)  __SVE_FFR_SIZE(vq)
> > > -
> > > - #define SVE_SIG_REGS_OFFSET                                   \
> > > --      ((sizeof(struct sve_context) + (SVE_VQ_BYTES - 1))      \
> > > --              / SVE_VQ_BYTES * SVE_VQ_BYTES)
> > > -+      ((sizeof(struct sve_context) + (__SVE_VQ_BYTES - 1))    \
> > > -+              / __SVE_VQ_BYTES * __SVE_VQ_BYTES)
> > > -
> > > --#define SVE_SIG_ZREGS_OFFSET  SVE_SIG_REGS_OFFSET
> > > -+#define SVE_SIG_ZREGS_OFFSET \
> > > -+              (SVE_SIG_REGS_OFFSET + __SVE_ZREGS_OFFSET)
> > > - #define SVE_SIG_ZREG_OFFSET(vq, n) \
> > > --      (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREG_SIZE(vq) * (n))
> > > --#define SVE_SIG_ZREGS_SIZE(vq) \
> > > --      (SVE_SIG_ZREG_OFFSET(vq, SVE_NUM_ZREGS) - SVE_SIG_ZREGS_OFFSET)
> > > -+              (SVE_SIG_REGS_OFFSET + __SVE_ZREG_OFFSET(vq, n))
> > > -+#define SVE_SIG_ZREGS_SIZE(vq) __SVE_ZREGS_SIZE(vq)
> > > -
> > > - #define SVE_SIG_PREGS_OFFSET(vq) \
> > > --      (SVE_SIG_ZREGS_OFFSET + SVE_SIG_ZREGS_SIZE(vq))
> > > -+              (SVE_SIG_REGS_OFFSET + __SVE_PREGS_OFFSET(vq))
> > > - #define SVE_SIG_PREG_OFFSET(vq, n) \
> > > --      (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREG_SIZE(vq) * (n))
> > > --#define SVE_SIG_PREGS_SIZE(vq) \
> > > --      (SVE_SIG_PREG_OFFSET(vq, SVE_NUM_PREGS) - SVE_SIG_PREGS_OFFSET(vq))
> > > -+              (SVE_SIG_REGS_OFFSET + __SVE_PREG_OFFSET(vq, n))
> > > -+#define SVE_SIG_PREGS_SIZE(vq) __SVE_PREGS_SIZE(vq)
> > > -
> > > - #define SVE_SIG_FFR_OFFSET(vq) \
> > > --      (SVE_SIG_PREGS_OFFSET(vq) + SVE_SIG_PREGS_SIZE(vq))
> > > -+              (SVE_SIG_REGS_OFFSET + __SVE_FFR_OFFSET(vq))
> > > -
> > > - #define SVE_SIG_REGS_SIZE(vq) \
> > > --      (SVE_SIG_FFR_OFFSET(vq) + SVE_SIG_FFR_SIZE(vq) - SVE_SIG_REGS_OFFSET)
> > > --
> > > --#define SVE_SIG_CONTEXT_SIZE(vq) (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
> > > -+              (__SVE_FFR_OFFSET(vq) + __SVE_FFR_SIZE(vq))
> > > -
> > > -+#define SVE_SIG_CONTEXT_SIZE(vq) \
> > > -+              (SVE_SIG_REGS_OFFSET + SVE_SIG_REGS_SIZE(vq))
> > > -
> > > - #endif /* _UAPI__ASM_SIGCONTEXT_H */
> > > -diff --git a/arch/arm64/include/uapi/asm/sve_context.h b/arch/arm64/include/uapi/asm/sve_context.h
> > > -new file mode 100644
> > > -index 000000000000..140f14c318a5
> > > ---- /dev/null
> > > -+++ b/arch/arm64/include/uapi/asm/sve_context.h
> > > -@@ -0,0 +1,50 @@
> > > -+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
> > > -+/* Copyright (C) 2017-2018 ARM Limited */
> > > -+
> > > -+#if !defined(_UAPI__ASM_PTRACE_H) && !defined(_UAPI__ASM_SIGCONTEXT_H)
> > > -+#error "Do not include this header or use its definitions directly."
> > > -+#endif
> > > -+
> > > -+#ifndef _UAPI__ASM_SVE_CONTEXT_H
> > > -+#define _UAPI__ASM_SVE_CONTEXT_H
> > > -+
> > > -+#define __SVE_VQ_BYTES                16      /* number of bytes per quadword */
> > > -+
> > > -+#define __SVE_VQ_MIN          1
> > > -+#define __SVE_VQ_MAX          512
> > > -+
> > > -+#define __SVE_VL_MIN          (__SVE_VQ_MIN * __SVE_VQ_BYTES)
> > > -+#define __SVE_VL_MAX          (__SVE_VQ_MAX * __SVE_VQ_BYTES)
> > > -+
> > > -+#define __SVE_NUM_ZREGS               32
> > > -+#define __SVE_NUM_PREGS               16
> > > -+
> > > -+#define __sve_vl_valid(vl)                    \
> > > -+      ((vl) % __SVE_VQ_BYTES == 0 &&          \
> > > -+       (vl) >= __SVE_VL_MIN &&                \
> > > -+       (vl) <= __SVE_VL_MAX)
> > > -+
> > > -+#define __sve_vq_from_vl(vl)  ((vl) / __SVE_VQ_BYTES)
> > > -+#define __sve_vl_from_vq(vq)  ((vq) * __SVE_VQ_BYTES)
> > > -+
> > > -+#define __SVE_ZREG_SIZE(vq)   ((__u32)(vq) * __SVE_VQ_BYTES)
> > > -+#define __SVE_PREG_SIZE(vq)   ((__u32)(vq) * (__SVE_VQ_BYTES / 8))
> > > -+#define __SVE_FFR_SIZE(vq)    __SVE_PREG_SIZE(vq)
> > > -+
> > > -+#define __SVE_ZREGS_OFFSET    0
> > > -+#define __SVE_ZREG_OFFSET(vq, n) \
> > > -+      (__SVE_ZREGS_OFFSET + __SVE_ZREG_SIZE(vq) * (n))
> > > -+#define __SVE_ZREGS_SIZE(vq) \
> > > -+      (__SVE_ZREG_OFFSET(vq, __SVE_NUM_ZREGS) - __SVE_ZREGS_OFFSET)
> > > -+
> > > -+#define __SVE_PREGS_OFFSET(vq) \
> > > -+      (__SVE_ZREGS_OFFSET + __SVE_ZREGS_SIZE(vq))
> > > -+#define __SVE_PREG_OFFSET(vq, n) \
> > > -+      (__SVE_PREGS_OFFSET(vq) + __SVE_PREG_SIZE(vq) * (n))
> > > -+#define __SVE_PREGS_SIZE(vq) \
> > > -+      (__SVE_PREG_OFFSET(vq, __SVE_NUM_PREGS) - __SVE_PREGS_OFFSET(vq))
> > > -+
> > > -+#define __SVE_FFR_OFFSET(vq) \
> > > -+      (__SVE_PREGS_OFFSET(vq) + __SVE_PREGS_SIZE(vq))
> > > -+
> > > -+#endif /* ! _UAPI__ASM_SVE_CONTEXT_H */
> > > ---
> > > -2.5.0
> > > -
> > > diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > > similarity index 65%
> > > rename from meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
> > > rename to meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > > index 48f25ebc1a..e76120c5b8 100644
> > > --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_4.19.bb
> > > +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_5.0.bb
> > > @@ -10,12 +10,9 @@ SRC_URI_append_libc-musl = "\
> > >     "
> > >
> > >  SRC_URI_append = "\
> > > -    file://0001-net-Use-__kernel_clockid_t-in-uapi-net_stamp.h.patch \
> > >      file://0001-scripts-Use-fixed-input-and-output-files-instead-of-.patch \
> > >      file://0001-kbuild-install_headers.sh-Strip-_UAPI-from-if-define.patch \
> > > -    file://0002-arm64-sve-ptrace-Fix-SVE_PT_REGS_OFFSET-definition.patch \
> > > -    file://0003-arm64-sve-Disentangle-uapi-asm-ptrace.h-from-uapi-as.patch \
> > >  "
> > >
> > > -SRC_URI[md5sum] = "740a90cf810c2105df8ee12e5d0bb900"
> > > -SRC_URI[sha256sum] = "0c68f5655528aed4f99dae71a5b259edc93239fa899e2df79c055275c21749a1"
> > > +SRC_URI[md5sum] = "7381ce8aac80a01448e065ce795c19c0"
> > > +SRC_URI[sha256sum] = "437b141a6499159f5a7282d5eb4b2be055f8e862ccce44d7464e8759c31a2e43"
> > > --
> > > 2.19.1
> > >
> > > --
> > > _______________________________________________
> > > Openembedded-core mailing list
> > > Openembedded-core@lists.openembedded.org
> > > http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II


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

* Re: [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched
  2019-03-06 16:37 ` [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched bruce.ashfield
@ 2019-03-09 22:09   ` Paul Barker
  2019-03-11  2:35     ` Bruce Ashfield
  0 siblings, 1 reply; 24+ messages in thread
From: Paul Barker @ 2019-03-09 22:09 UTC (permalink / raw)
  To: openembedded-core, bruce.ashfield, Richard Purdie

On 06/03/2019 16:37, bruce.ashfield@gmail.com wrote:
> From: Bruce Ashfield <bruce.ashfield@gmail.com>
> 
> For testing purposes, it is often easier to patch a fragment
> in a kernel-meta repository versus needing to make a copy or
> modify the source repository.
> 
> We can allow this sort of patching when a patchdir of kernel-meta
> is passed (to indicate the nested kernel-meta repository).
> 
> Also note that we must patch the meta data before they are
> processed/gathered, since migrated copies to the kernel source
> directory will be used later.
> 
> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> ---
>   meta/classes/kernel-yocto.bbclass | 29 +++++++++++++++++++++++++----
>   1 file changed, 25 insertions(+), 4 deletions(-)
> 
> diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
> index 496c8a7f68..d2b194dd55 100644
> --- a/meta/classes/kernel-yocto.bbclass
> +++ b/meta/classes/kernel-yocto.bbclass
> @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
>   
>   # returns local (absolute) path names for all valid patches in the
>   # src_uri
> -def find_patches(d):
> +def find_patches(d,subdir):
>       patches = src_patches(d)
>       patch_list=[]
>       for p in patches:
> -        _, _, local, _, _, _ = bb.fetch.decodeurl(p)
> -        patch_list.append(local)
> +        _, _, local, _, _, parm = bb.fetch.decodeurl(p)
> +        # if patchdir has been passed, we won't be able to apply it so skip
> +        # the patch for now, and special processing happens later
> +        patchdir = ''
> +        if "patchdir" in parm:
> +            patchdir = parm["patchdir"]
> +        if patchdir:

Did you mean 'if subdir:' here?

I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the 
linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first 
attempt is in do_kernel_metadata and this succeeds, the second is in 
do_patch and this fails as the patch has already been applied.

In this case, patchdir = '' as there is no patchdir set for this in the 
recipe. The patch is still picked up when find_patches() is called with 
subdir='kernel-meta' since the test here is false and the comparison 
below is not performed.

> +            if subdir == patchdir:
> +                patch_list.append(local)
> +        else:
> +            patch_list.append(local)
>   
>       return patch_list
>   
> @@ -119,8 +128,20 @@ do_kernel_metadata() {
>   		fi
>   	fi
>   
> +	# was anyone trying to patch the kernel meta data ?, we need to do
> +	# this here, since the scc commands migrate the .cfg fragments to the
> +	# kernel source tree, where they'll be used later.
> +	check_git_config
> +	patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> +	for p in $patches; do
> +	    (
> +		cd ${WORKDIR}/kernel-meta
> +		git am -s $p
> +	    )
> +	done
> +
>   	sccs_from_src_uri="${@" ".join(find_sccs(d))}"
> -	patches="${@" ".join(find_patches(d))}"
> +	patches="${@" ".join(find_patches(d,''))}"
>   	feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
>   
>   	# a quick check to make sure we don't have duplicate defconfigs
> 

-- 
Paul Barker
Beta Five Ltd


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

* Re: [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched
  2019-03-09 22:09   ` Paul Barker
@ 2019-03-11  2:35     ` Bruce Ashfield
  2019-03-11  3:14       ` Bruce Ashfield
  0 siblings, 1 reply; 24+ messages in thread
From: Bruce Ashfield @ 2019-03-11  2:35 UTC (permalink / raw)
  To: Paul Barker; +Cc: Patches and discussions about the oe-core layer

On Sat, Mar 9, 2019 at 5:10 PM Paul Barker <paul@betafive.co.uk> wrote:
>
> On 06/03/2019 16:37, bruce.ashfield@gmail.com wrote:
> > From: Bruce Ashfield <bruce.ashfield@gmail.com>
> >
> > For testing purposes, it is often easier to patch a fragment
> > in a kernel-meta repository versus needing to make a copy or
> > modify the source repository.
> >
> > We can allow this sort of patching when a patchdir of kernel-meta
> > is passed (to indicate the nested kernel-meta repository).
> >
> > Also note that we must patch the meta data before they are
> > processed/gathered, since migrated copies to the kernel source
> > directory will be used later.
> >
> > Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > ---
> >   meta/classes/kernel-yocto.bbclass | 29 +++++++++++++++++++++++++----
> >   1 file changed, 25 insertions(+), 4 deletions(-)
> >
> > diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
> > index 496c8a7f68..d2b194dd55 100644
> > --- a/meta/classes/kernel-yocto.bbclass
> > +++ b/meta/classes/kernel-yocto.bbclass
> > @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> >
> >   # returns local (absolute) path names for all valid patches in the
> >   # src_uri
> > -def find_patches(d):
> > +def find_patches(d,subdir):
> >       patches = src_patches(d)
> >       patch_list=[]
> >       for p in patches:
> > -        _, _, local, _, _, _ = bb.fetch.decodeurl(p)
> > -        patch_list.append(local)
> > +        _, _, local, _, _, parm = bb.fetch.decodeurl(p)
> > +        # if patchdir has been passed, we won't be able to apply it so skip
> > +        # the patch for now, and special processing happens later
> > +        patchdir = ''
> > +        if "patchdir" in parm:
> > +            patchdir = parm["patchdir"]
> > +        if patchdir:
>
> Did you mean 'if subdir:' here?

Nope. I did mean if patchdir: here, that doesn't mean it is working perfectly,
but I did definitely mean patchdir.

>
> I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the
> linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first
> attempt is in do_kernel_metadata and this succeeds, the second is in
> do_patch and this fails as the patch has already been applied.

Hmm. The only thing that should be patchable in the meta data
gathering is the meta data. Not the kernel source tree. It is just
there as a rough debug / devel trigger. kernel-meta is a separate
repo, so patches are only applied there.

Something that triggers in do_patch can't be patching that same
repo, since the kernel tree is separate ..

Is the raspberrypi recipe using the upstream kernel-cache repo
or is it doing something else ?

Is it also using patches with patchdir specified in the src_uri ?
If it isn't, I can't see how any of this is triggering.

I'm out of the office this week, but this is something I can sort
out .. can you send me the exact set of layers (and any
local.conf I'd need) to trigger this ? I'll have some time tomorrow
night to poke at it a bit.

Bruce

>
> In this case, patchdir = '' as there is no patchdir set for this in the
> recipe. The patch is still picked up when find_patches() is called with
> subdir='kernel-meta' since the test here is false and the comparison
> below is not performed.
>
> > +            if subdir == patchdir:
> > +                patch_list.append(local)
> > +        else:
> > +            patch_list.append(local)
> >
> >       return patch_list
> >
> > @@ -119,8 +128,20 @@ do_kernel_metadata() {
> >               fi
> >       fi
> >
> > +     # was anyone trying to patch the kernel meta data ?, we need to do
> > +     # this here, since the scc commands migrate the .cfg fragments to the
> > +     # kernel source tree, where they'll be used later.
> > +     check_git_config
> > +     patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> > +     for p in $patches; do
> > +         (
> > +             cd ${WORKDIR}/kernel-meta
> > +             git am -s $p
> > +         )
> > +     done
> > +
> >       sccs_from_src_uri="${@" ".join(find_sccs(d))}"
> > -     patches="${@" ".join(find_patches(d))}"
> > +     patches="${@" ".join(find_patches(d,''))}"
> >       feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
> >
> >       # a quick check to make sure we don't have duplicate defconfigs
> >
>
> --
> Paul Barker
> Beta Five Ltd



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

* Re: [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched
  2019-03-11  2:35     ` Bruce Ashfield
@ 2019-03-11  3:14       ` Bruce Ashfield
  2019-03-11  4:01         ` Bruce Ashfield
  0 siblings, 1 reply; 24+ messages in thread
From: Bruce Ashfield @ 2019-03-11  3:14 UTC (permalink / raw)
  To: Paul Barker; +Cc: Patches and discussions about the oe-core layer

On Sun, Mar 10, 2019 at 10:35 PM Bruce Ashfield
<bruce.ashfield@gmail.com> wrote:
>
> On Sat, Mar 9, 2019 at 5:10 PM Paul Barker <paul@betafive.co.uk> wrote:
> >
> > On 06/03/2019 16:37, bruce.ashfield@gmail.com wrote:
> > > From: Bruce Ashfield <bruce.ashfield@gmail.com>
> > >
> > > For testing purposes, it is often easier to patch a fragment
> > > in a kernel-meta repository versus needing to make a copy or
> > > modify the source repository.
> > >
> > > We can allow this sort of patching when a patchdir of kernel-meta
> > > is passed (to indicate the nested kernel-meta repository).
> > >
> > > Also note that we must patch the meta data before they are
> > > processed/gathered, since migrated copies to the kernel source
> > > directory will be used later.
> > >
> > > Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > > ---
> > >   meta/classes/kernel-yocto.bbclass | 29 +++++++++++++++++++++++++----
> > >   1 file changed, 25 insertions(+), 4 deletions(-)
> > >
> > > diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
> > > index 496c8a7f68..d2b194dd55 100644
> > > --- a/meta/classes/kernel-yocto.bbclass
> > > +++ b/meta/classes/kernel-yocto.bbclass
> > > @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> > >
> > >   # returns local (absolute) path names for all valid patches in the
> > >   # src_uri
> > > -def find_patches(d):
> > > +def find_patches(d,subdir):
> > >       patches = src_patches(d)
> > >       patch_list=[]
> > >       for p in patches:
> > > -        _, _, local, _, _, _ = bb.fetch.decodeurl(p)
> > > -        patch_list.append(local)
> > > +        _, _, local, _, _, parm = bb.fetch.decodeurl(p)
> > > +        # if patchdir has been passed, we won't be able to apply it so skip
> > > +        # the patch for now, and special processing happens later
> > > +        patchdir = ''
> > > +        if "patchdir" in parm:
> > > +            patchdir = parm["patchdir"]
> > > +        if patchdir:
> >
> > Did you mean 'if subdir:' here?
>
> Nope. I did mean if patchdir: here, that doesn't mean it is working perfectly,
> but I did definitely mean patchdir.
>
> >
> > I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the
> > linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first
> > attempt is in do_kernel_metadata and this succeeds, the second is in
> > do_patch and this fails as the patch has already been applied.
>
> Hmm. The only thing that should be patchable in the meta data
> gathering is the meta data. Not the kernel source tree. It is just
> there as a rough debug / devel trigger. kernel-meta is a separate
> repo, so patches are only applied there.
>
> Something that triggers in do_patch can't be patching that same
> repo, since the kernel tree is separate ..
>
> Is the raspberrypi recipe using the upstream kernel-cache repo
> or is it doing something else ?
>
> Is it also using patches with patchdir specified in the src_uri ?
> If it isn't, I can't see how any of this is triggering.
>
> I'm out of the office this week, but this is something I can sort
> out .. can you send me the exact set of layers (and any
> local.conf I'd need) to trigger this ? I'll have some time tomorrow
> night to poke at it a bit.

I just did a build with meta-raspberrypi and did recreate the issue,
I'll have a look at see what I can do. I'll need to test some other
use cases against any changes I make, so it'll be a bit touchy :P

Bruce

>
> Bruce
>
> >
> > In this case, patchdir = '' as there is no patchdir set for this in the
> > recipe. The patch is still picked up when find_patches() is called with
> > subdir='kernel-meta' since the test here is false and the comparison
> > below is not performed.
> >
> > > +            if subdir == patchdir:
> > > +                patch_list.append(local)
> > > +        else:
> > > +            patch_list.append(local)
> > >
> > >       return patch_list
> > >
> > > @@ -119,8 +128,20 @@ do_kernel_metadata() {
> > >               fi
> > >       fi
> > >
> > > +     # was anyone trying to patch the kernel meta data ?, we need to do
> > > +     # this here, since the scc commands migrate the .cfg fragments to the
> > > +     # kernel source tree, where they'll be used later.
> > > +     check_git_config
> > > +     patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> > > +     for p in $patches; do
> > > +         (
> > > +             cd ${WORKDIR}/kernel-meta
> > > +             git am -s $p
> > > +         )
> > > +     done
> > > +
> > >       sccs_from_src_uri="${@" ".join(find_sccs(d))}"
> > > -     patches="${@" ".join(find_patches(d))}"
> > > +     patches="${@" ".join(find_patches(d,''))}"
> > >       feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
> > >
> > >       # a quick check to make sure we don't have duplicate defconfigs
> > >
> >
> > --
> > Paul Barker
> > Beta Five Ltd
>
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

* Re: [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched
  2019-03-11  3:14       ` Bruce Ashfield
@ 2019-03-11  4:01         ` Bruce Ashfield
  2019-03-11  4:17           ` Bruce Ashfield
  0 siblings, 1 reply; 24+ messages in thread
From: Bruce Ashfield @ 2019-03-11  4:01 UTC (permalink / raw)
  To: Paul Barker; +Cc: Patches and discussions about the oe-core layer

On Sun, Mar 10, 2019 at 11:14 PM Bruce Ashfield
<bruce.ashfield@gmail.com> wrote:
>
> On Sun, Mar 10, 2019 at 10:35 PM Bruce Ashfield
> <bruce.ashfield@gmail.com> wrote:
> >
> > On Sat, Mar 9, 2019 at 5:10 PM Paul Barker <paul@betafive.co.uk> wrote:
> > >
> > > On 06/03/2019 16:37, bruce.ashfield@gmail.com wrote:
> > > > From: Bruce Ashfield <bruce.ashfield@gmail.com>
> > > >
> > > > For testing purposes, it is often easier to patch a fragment
> > > > in a kernel-meta repository versus needing to make a copy or
> > > > modify the source repository.
> > > >
> > > > We can allow this sort of patching when a patchdir of kernel-meta
> > > > is passed (to indicate the nested kernel-meta repository).
> > > >
> > > > Also note that we must patch the meta data before they are
> > > > processed/gathered, since migrated copies to the kernel source
> > > > directory will be used later.
> > > >
> > > > Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > > > ---
> > > >   meta/classes/kernel-yocto.bbclass | 29 +++++++++++++++++++++++++----
> > > >   1 file changed, 25 insertions(+), 4 deletions(-)
> > > >
> > > > diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
> > > > index 496c8a7f68..d2b194dd55 100644
> > > > --- a/meta/classes/kernel-yocto.bbclass
> > > > +++ b/meta/classes/kernel-yocto.bbclass
> > > > @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> > > >
> > > >   # returns local (absolute) path names for all valid patches in the
> > > >   # src_uri
> > > > -def find_patches(d):
> > > > +def find_patches(d,subdir):
> > > >       patches = src_patches(d)
> > > >       patch_list=[]
> > > >       for p in patches:
> > > > -        _, _, local, _, _, _ = bb.fetch.decodeurl(p)
> > > > -        patch_list.append(local)
> > > > +        _, _, local, _, _, parm = bb.fetch.decodeurl(p)
> > > > +        # if patchdir has been passed, we won't be able to apply it so skip
> > > > +        # the patch for now, and special processing happens later
> > > > +        patchdir = ''
> > > > +        if "patchdir" in parm:
> > > > +            patchdir = parm["patchdir"]
> > > > +        if patchdir:
> > >
> > > Did you mean 'if subdir:' here?
> >
> > Nope. I did mean if patchdir: here, that doesn't mean it is working perfectly,
> > but I did definitely mean patchdir.
> >
> > >
> > > I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the
> > > linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first
> > > attempt is in do_kernel_metadata and this succeeds, the second is in
> > > do_patch and this fails as the patch has already been applied.
> >
> > Hmm. The only thing that should be patchable in the meta data
> > gathering is the meta data. Not the kernel source tree. It is just
> > there as a rough debug / devel trigger. kernel-meta is a separate
> > repo, so patches are only applied there.
> >
> > Something that triggers in do_patch can't be patching that same
> > repo, since the kernel tree is separate ..
> >
> > Is the raspberrypi recipe using the upstream kernel-cache repo
> > or is it doing something else ?
> >
> > Is it also using patches with patchdir specified in the src_uri ?
> > If it isn't, I can't see how any of this is triggering.
> >
> > I'm out of the office this week, but this is something I can sort
> > out .. can you send me the exact set of layers (and any
> > local.conf I'd need) to trigger this ? I'll have some time tomorrow
> > night to poke at it a bit.
>
> I just did a build with meta-raspberrypi and did recreate the issue,
> I'll have a look at see what I can do. I'll need to test some other
> use cases against any changes I make, so it'll be a bit touchy :P

On a closer look, yes, it is safer to just have the test on subdir versus
some other compound conditions that I was using.

That being said, even with that fixed, I'm not able to complete the
patch process for the linux-raspberrypi kernel, I'm seeing and error
in do_patch itself, and it doesn't look related to the change in
question.

Are you seeing something similar ?

Bruce

>
> Bruce
>
> >
> > Bruce
> >
> > >
> > > In this case, patchdir = '' as there is no patchdir set for this in the
> > > recipe. The patch is still picked up when find_patches() is called with
> > > subdir='kernel-meta' since the test here is false and the comparison
> > > below is not performed.
> > >
> > > > +            if subdir == patchdir:
> > > > +                patch_list.append(local)
> > > > +        else:
> > > > +            patch_list.append(local)
> > > >
> > > >       return patch_list
> > > >
> > > > @@ -119,8 +128,20 @@ do_kernel_metadata() {
> > > >               fi
> > > >       fi
> > > >
> > > > +     # was anyone trying to patch the kernel meta data ?, we need to do
> > > > +     # this here, since the scc commands migrate the .cfg fragments to the
> > > > +     # kernel source tree, where they'll be used later.
> > > > +     check_git_config
> > > > +     patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> > > > +     for p in $patches; do
> > > > +         (
> > > > +             cd ${WORKDIR}/kernel-meta
> > > > +             git am -s $p
> > > > +         )
> > > > +     done
> > > > +
> > > >       sccs_from_src_uri="${@" ".join(find_sccs(d))}"
> > > > -     patches="${@" ".join(find_patches(d))}"
> > > > +     patches="${@" ".join(find_patches(d,''))}"
> > > >       feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
> > > >
> > > >       # a quick check to make sure we don't have duplicate defconfigs
> > > >
> > >
> > > --
> > > Paul Barker
> > > Beta Five Ltd
> >
> >
> >
> > --
> > - Thou shalt not follow the NULL pointer, for chaos and madness await
> > thee at its end
> > - "Use the force Harry" - Gandalf, Star Trek II
>
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

* Re: [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched
  2019-03-11  4:01         ` Bruce Ashfield
@ 2019-03-11  4:17           ` Bruce Ashfield
  0 siblings, 0 replies; 24+ messages in thread
From: Bruce Ashfield @ 2019-03-11  4:17 UTC (permalink / raw)
  To: Paul Barker; +Cc: Patches and discussions about the oe-core layer

On Mon, Mar 11, 2019 at 12:01 AM Bruce Ashfield
<bruce.ashfield@gmail.com> wrote:
>
> On Sun, Mar 10, 2019 at 11:14 PM Bruce Ashfield
> <bruce.ashfield@gmail.com> wrote:
> >
> > On Sun, Mar 10, 2019 at 10:35 PM Bruce Ashfield
> > <bruce.ashfield@gmail.com> wrote:
> > >
> > > On Sat, Mar 9, 2019 at 5:10 PM Paul Barker <paul@betafive.co.uk> wrote:
> > > >
> > > > On 06/03/2019 16:37, bruce.ashfield@gmail.com wrote:
> > > > > From: Bruce Ashfield <bruce.ashfield@gmail.com>
> > > > >
> > > > > For testing purposes, it is often easier to patch a fragment
> > > > > in a kernel-meta repository versus needing to make a copy or
> > > > > modify the source repository.
> > > > >
> > > > > We can allow this sort of patching when a patchdir of kernel-meta
> > > > > is passed (to indicate the nested kernel-meta repository).
> > > > >
> > > > > Also note that we must patch the meta data before they are
> > > > > processed/gathered, since migrated copies to the kernel source
> > > > > directory will be used later.
> > > > >
> > > > > Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> > > > > ---
> > > > >   meta/classes/kernel-yocto.bbclass | 29 +++++++++++++++++++++++++----
> > > > >   1 file changed, 25 insertions(+), 4 deletions(-)
> > > > >
> > > > > diff --git a/meta/classes/kernel-yocto.bbclass b/meta/classes/kernel-yocto.bbclass
> > > > > index 496c8a7f68..d2b194dd55 100644
> > > > > --- a/meta/classes/kernel-yocto.bbclass
> > > > > +++ b/meta/classes/kernel-yocto.bbclass
> > > > > @@ -5,12 +5,21 @@ PATCH_GIT_USER_NAME ?= "OpenEmbedded"
> > > > >
> > > > >   # returns local (absolute) path names for all valid patches in the
> > > > >   # src_uri
> > > > > -def find_patches(d):
> > > > > +def find_patches(d,subdir):
> > > > >       patches = src_patches(d)
> > > > >       patch_list=[]
> > > > >       for p in patches:
> > > > > -        _, _, local, _, _, _ = bb.fetch.decodeurl(p)
> > > > > -        patch_list.append(local)
> > > > > +        _, _, local, _, _, parm = bb.fetch.decodeurl(p)
> > > > > +        # if patchdir has been passed, we won't be able to apply it so skip
> > > > > +        # the patch for now, and special processing happens later
> > > > > +        patchdir = ''
> > > > > +        if "patchdir" in parm:
> > > > > +            patchdir = parm["patchdir"]
> > > > > +        if patchdir:
> > > >
> > > > Did you mean 'if subdir:' here?
> > >
> > > Nope. I did mean if patchdir: here, that doesn't mean it is working perfectly,
> > > but I did definitely mean patchdir.
> > >
> > > >
> > > > I'm seeing duplicate attempts to apply a patch listed on SRC_URI in the
> > > > linux-raspberrypi_4.14.bb recipe from meta-raspberrypi. The first
> > > > attempt is in do_kernel_metadata and this succeeds, the second is in
> > > > do_patch and this fails as the patch has already been applied.
> > >
> > > Hmm. The only thing that should be patchable in the meta data
> > > gathering is the meta data. Not the kernel source tree. It is just
> > > there as a rough debug / devel trigger. kernel-meta is a separate
> > > repo, so patches are only applied there.
> > >
> > > Something that triggers in do_patch can't be patching that same
> > > repo, since the kernel tree is separate ..
> > >
> > > Is the raspberrypi recipe using the upstream kernel-cache repo
> > > or is it doing something else ?
> > >
> > > Is it also using patches with patchdir specified in the src_uri ?
> > > If it isn't, I can't see how any of this is triggering.
> > >
> > > I'm out of the office this week, but this is something I can sort
> > > out .. can you send me the exact set of layers (and any
> > > local.conf I'd need) to trigger this ? I'll have some time tomorrow
> > > night to poke at it a bit.
> >
> > I just did a build with meta-raspberrypi and did recreate the issue,
> > I'll have a look at see what I can do. I'll need to test some other
> > use cases against any changes I make, so it'll be a bit touchy :P
>
> On a closer look, yes, it is safer to just have the test on subdir versus
> some other compound conditions that I was using.
>
> That being said, even with that fixed, I'm not able to complete the
> patch process for the linux-raspberrypi kernel, I'm seeing and error
> in do_patch itself, and it doesn't look related to the change in
> question.
>
> Are you seeing something similar ?

Never mind. I was carrying a local patch that was causing an issue
.. this is why you shouldn't try and work quickly while in a non-optimimal
environment.

I have the kernel patching here. For now, I'll send patch that follows your
original suggestion and I'll revisit the other workflows later.

Bruce

>
> Bruce
>
> >
> > Bruce
> >
> > >
> > > Bruce
> > >
> > > >
> > > > In this case, patchdir = '' as there is no patchdir set for this in the
> > > > recipe. The patch is still picked up when find_patches() is called with
> > > > subdir='kernel-meta' since the test here is false and the comparison
> > > > below is not performed.
> > > >
> > > > > +            if subdir == patchdir:
> > > > > +                patch_list.append(local)
> > > > > +        else:
> > > > > +            patch_list.append(local)
> > > > >
> > > > >       return patch_list
> > > > >
> > > > > @@ -119,8 +128,20 @@ do_kernel_metadata() {
> > > > >               fi
> > > > >       fi
> > > > >
> > > > > +     # was anyone trying to patch the kernel meta data ?, we need to do
> > > > > +     # this here, since the scc commands migrate the .cfg fragments to the
> > > > > +     # kernel source tree, where they'll be used later.
> > > > > +     check_git_config
> > > > > +     patches="${@" ".join(find_patches(d,'kernel-meta'))}"
> > > > > +     for p in $patches; do
> > > > > +         (
> > > > > +             cd ${WORKDIR}/kernel-meta
> > > > > +             git am -s $p
> > > > > +         )
> > > > > +     done
> > > > > +
> > > > >       sccs_from_src_uri="${@" ".join(find_sccs(d))}"
> > > > > -     patches="${@" ".join(find_patches(d))}"
> > > > > +     patches="${@" ".join(find_patches(d,''))}"
> > > > >       feat_dirs="${@" ".join(find_kernel_feature_dirs(d))}"
> > > > >
> > > > >       # a quick check to make sure we don't have duplicate defconfigs
> > > > >
> > > >
> > > > --
> > > > Paul Barker
> > > > Beta Five Ltd
> > >
> > >
> > >
> > > --
> > > - Thou shalt not follow the NULL pointer, for chaos and madness await
> > > thee at its end
> > > - "Use the force Harry" - Gandalf, Star Trek II
> >
> >
> >
> > --
> > - Thou shalt not follow the NULL pointer, for chaos and madness await
> > thee at its end
> > - "Use the force Harry" - Gandalf, Star Trek II
>
>
>
> --
> - Thou shalt not follow the NULL pointer, for chaos and madness await
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II



-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


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

end of thread, other threads:[~2019-03-11  4:17 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-03-06 16:37 [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) bruce.ashfield
2019-03-06 16:37 ` [PATCH 1/6] kernel-yocto: allow kernel-meta repositories to be patched bruce.ashfield
2019-03-09 22:09   ` Paul Barker
2019-03-11  2:35     ` Bruce Ashfield
2019-03-11  3:14       ` Bruce Ashfield
2019-03-11  4:01         ` Bruce Ashfield
2019-03-11  4:17           ` Bruce Ashfield
2019-03-06 16:37 ` [PATCH 2/6] linux-libc-headers: update to 5.x headers bruce.ashfield
2019-03-07 15:19   ` Khem Raj
2019-03-07 15:20     ` Khem Raj
2019-03-08 14:48       ` Adrian Bunk
2019-03-08 17:49         ` Khem Raj
2019-03-08 14:24     ` Bruce Ashfield
2019-03-08 17:51       ` Khem Raj
2019-03-06 16:37 ` [PATCH 3/6] linux-yocto: introduce 5.0 versioned recipe bruce.ashfield
2019-03-06 16:37 ` [PATCH 4/6] lttng: add 5.x fixup patches to 2.10.8 release bruce.ashfield
2019-03-06 16:37 ` [PATCH 5/6] linux-yocto/5.0: update configs for h/w reference boards bruce.ashfield
2019-03-06 16:37 ` [PATCH 6/6] machine: bump preferred version to 5.0 bruce.ashfield
2019-03-06 23:05 ` [PATCH 0/6] linux-yocto: consolidated pull request (5.0 kernel intro) Richard Purdie
2019-03-07  4:21   ` Bruce Ashfield
2019-03-07  4:23     ` Bruce Ashfield
2019-03-07 13:04       ` Richard Purdie
2019-03-07 15:48         ` Bruce Ashfield
2019-03-07 22:28           ` Richard Purdie

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.