[RFC] Test catalog template

2024-10-14 Thread Donald Zickus
Hi,

At Linux Plumbers, a few dozen of us gathered together to discuss how
to expose what tests subsystem maintainers would like to run for every
patch submitted or when CI runs tests.  We agreed on a mock up of a
yaml template to start gathering info.  The yaml file could be
temporarily stored on kernelci.org until a more permanent home could
be found.  Attached is a template to start the conversation.

Longer story.

The current problem is CI systems are not unanimous about what tests
they run on submitted patches or git branches.  This makes it
difficult to figure out why a test failed or how to reproduce.
Further, it isn't always clear what tests a normal contributor should
run before posting patches.

It has been long communicated that the tests LTP, xfstest and/or
kselftests should be the tests  to run.  However, not all maintainers
use those tests for their subsystems.  I am hoping to either capture
those tests or find ways to convince them to add their tests to the
preferred locations.

The goal is for a given subsystem (defined in MAINTAINERS), define a
set of tests that should be run for any contributions to that
subsystem.  The hope is the collective CI results can be triaged
collectively (because they are related) and even have the numerous
flakes waived collectively  (same reason) improving the ability to
find and debug new test failures.  Because the tests and process are
known, having a human help debug any failures becomes easier.

The plan is to put together a minimal yaml template that gets us going
(even if it is not optimized yet) and aim for about a dozen or so
subsystems.  At that point we should have enough feedback to promote
this more seriously and talk optimizations.

Feedback encouraged.

Cheers,
Don

---
# List of tests by subsystem
#
# Tests should adhere to KTAP definitions for results
#
# Description of section entries
#
#  maintainer:test maintainer - name 
#  list:mailing list for discussion
#  version: stable version of the test
#  dependency: necessary distro package for testing
#  test:
#path:internal git path or url to fetch from
#cmd:command to run; ability to run locally
#param: additional param necessary to run test
#  hardware:  hardware necessary for validation
#
# Subsystems (alphabetical)

KUNIT TEST:
  maintainer:
- name: name1
  email: email1
- name: name2
  email: email2
  list:
  version:
  dependency:
- dep1
- dep2
  test:
- path: tools/testing/kunit
  cmd:
  param:
- path:
  cmd:
  param:
  hardware: none




kselftest/fixes build: 7 builds: 2 failed, 5 passed, 1 warning (linux_kselftest-fixes-6.12-rc3)

2024-10-14 Thread kernelci.org bot
kselftest/fixes build: 7 builds: 2 failed, 5 passed, 1 warning 
(linux_kselftest-fixes-6.12-rc3)

Full Build Summary: 
https://kernelci.org/build/kselftest/branch/fixes/kernel/linux_kselftest-fixes-6.12-rc3/

Tree: kselftest
Branch: fixes
Git Describe: linux_kselftest-fixes-6.12-rc3
Git Commit: 4ee5ca9a29384fcf3f18232fdf8474166dea8dca
Git URL: 
https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git
Built: 4 unique architectures

Build Failures Detected:

arm64:
defconfig+kselftest+arm64-chromebook: (clang-16) FAIL
defconfig+kselftest+arm64-chromebook: (gcc-12) FAIL

Warnings Detected:

arm64:

arm:

i386:

x86_64:
x86_64_defconfig+kselftest (clang-16): 1 warning


Warnings summary:

1vmlinux.o: warning: objtool: set_ftrace_ops_ro+0x23: relocation to 
!ENDBR: .text+0x14fd19



Detailed per-defconfig build reports:


defconfig+kselftest (arm64, gcc-12) — PASS, 0 errors, 0 warnings, 0 section 
mismatches


defconfig+kselftest+arm64-chromebook (arm64, gcc-12) — FAIL, 0 errors, 0 
warnings, 0 section mismatches


defconfig+kselftest+arm64-chromebook (arm64, clang-16) — FAIL, 0 errors, 0 
warnings, 0 section mismatches


i386_defconfig+kselftest (i386, gcc-12) — PASS, 0 errors, 0 warnings, 0 section 
mismatches


multi_v7_defconfig+kselftest (arm, gcc-12) — PASS, 0 errors, 0 warnings, 0 
section mismatches


x86_64_defconfig+kselftest (x86_64, gcc-12) — PASS, 0 errors, 0 warnings, 0 
section mismatches


x86_64_defconfig+kselftest (x86_64, clang-16) — PASS, 0 errors, 1 warning, 0 
section mismatches

Warnings:
vmlinux.o: warning: objtool: set_ftrace_ops_ro+0x23: relocation to !ENDBR: 
.text+0x14fd19

---
For more info write to 



[PATCH 6.6 206/213] selftests/rseq: Fix mm_cid test failure

2024-10-14 Thread Greg Kroah-Hartman
6.6-stable review patch.  If anyone has any objections, please let me know.

--

From: Mathieu Desnoyers 

commit a0cc649353bb726d4aa0db60dce467432197b746 upstream.

Adapt the rseq.c/rseq.h code to follow GNU C library changes introduced by:

glibc commit 2e456ccf0c34 ("Linux: Make __rseq_size useful for feature 
detection (bug 31965)")

Without this fix, rseq selftests for mm_cid fail:

./run_param_test.sh
Default parameters
Running test spinlock
Running compare-twice test spinlock
Running mm_cid test spinlock
Error: cpu id getter unavailable

Fixes: 18c2355838e7 ("selftests/rseq: Implement rseq mm_cid field support")
Signed-off-by: Mathieu Desnoyers 
Cc: Peter Zijlstra 
CC: Boqun Feng 
CC: "Paul E. McKenney" 
Cc: Shuah Khan 
CC: Carlos O'Donell 
CC: Florian Weimer 
CC: linux-kselftest@vger.kernel.org
CC: sta...@vger.kernel.org
Signed-off-by: Shuah Khan 
Signed-off-by: Greg Kroah-Hartman 
---
 tools/testing/selftests/rseq/rseq.c |  110 
 tools/testing/selftests/rseq/rseq.h |   10 ---
 2 files changed, 77 insertions(+), 43 deletions(-)

--- a/tools/testing/selftests/rseq/rseq.c
+++ b/tools/testing/selftests/rseq/rseq.c
@@ -60,12 +60,6 @@ unsigned int rseq_size = -1U;
 /* Flags used during rseq registration.  */
 unsigned int rseq_flags;
 
-/*
- * rseq feature size supported by the kernel. 0 if the registration was
- * unsuccessful.
- */
-unsigned int rseq_feature_size = -1U;
-
 static int rseq_ownership;
 static int rseq_reg_success;   /* At least one rseq registration has succeded. 
*/
 
@@ -111,6 +105,43 @@ int rseq_available(void)
}
 }
 
+/* The rseq areas need to be at least 32 bytes. */
+static
+unsigned int get_rseq_min_alloc_size(void)
+{
+   unsigned int alloc_size = rseq_size;
+
+   if (alloc_size < ORIG_RSEQ_ALLOC_SIZE)
+   alloc_size = ORIG_RSEQ_ALLOC_SIZE;
+   return alloc_size;
+}
+
+/*
+ * Return the feature size supported by the kernel.
+ *
+ * Depending on the value returned by getauxval(AT_RSEQ_FEATURE_SIZE):
+ *
+ * 0:   Return ORIG_RSEQ_FEATURE_SIZE (20)
+ * > 0: Return the value from getauxval(AT_RSEQ_FEATURE_SIZE).
+ *
+ * It should never return a value below ORIG_RSEQ_FEATURE_SIZE.
+ */
+static
+unsigned int get_rseq_kernel_feature_size(void)
+{
+   unsigned long auxv_rseq_feature_size, auxv_rseq_align;
+
+   auxv_rseq_align = getauxval(AT_RSEQ_ALIGN);
+   assert(!auxv_rseq_align || auxv_rseq_align <= 
RSEQ_THREAD_AREA_ALLOC_SIZE);
+
+   auxv_rseq_feature_size = getauxval(AT_RSEQ_FEATURE_SIZE);
+   assert(!auxv_rseq_feature_size || auxv_rseq_feature_size <= 
RSEQ_THREAD_AREA_ALLOC_SIZE);
+   if (auxv_rseq_feature_size)
+   return auxv_rseq_feature_size;
+   else
+   return ORIG_RSEQ_FEATURE_SIZE;
+}
+
 int rseq_register_current_thread(void)
 {
int rc;
@@ -119,7 +150,7 @@ int rseq_register_current_thread(void)
/* Treat libc's ownership as a successful registration. */
return 0;
}
-   rc = sys_rseq(&__rseq_abi, rseq_size, 0, RSEQ_SIG);
+   rc = sys_rseq(&__rseq_abi, get_rseq_min_alloc_size(), 0, RSEQ_SIG);
if (rc) {
if (RSEQ_READ_ONCE(rseq_reg_success)) {
/* Incoherent success/failure within process. */
@@ -140,28 +171,12 @@ int rseq_unregister_current_thread(void)
/* Treat libc's ownership as a successful unregistration. */
return 0;
}
-   rc = sys_rseq(&__rseq_abi, rseq_size, RSEQ_ABI_FLAG_UNREGISTER, 
RSEQ_SIG);
+   rc = sys_rseq(&__rseq_abi, get_rseq_min_alloc_size(), 
RSEQ_ABI_FLAG_UNREGISTER, RSEQ_SIG);
if (rc)
return -1;
return 0;
 }
 
-static
-unsigned int get_rseq_feature_size(void)
-{
-   unsigned long auxv_rseq_feature_size, auxv_rseq_align;
-
-   auxv_rseq_align = getauxval(AT_RSEQ_ALIGN);
-   assert(!auxv_rseq_align || auxv_rseq_align <= 
RSEQ_THREAD_AREA_ALLOC_SIZE);
-
-   auxv_rseq_feature_size = getauxval(AT_RSEQ_FEATURE_SIZE);
-   assert(!auxv_rseq_feature_size || auxv_rseq_feature_size <= 
RSEQ_THREAD_AREA_ALLOC_SIZE);
-   if (auxv_rseq_feature_size)
-   return auxv_rseq_feature_size;
-   else
-   return ORIG_RSEQ_FEATURE_SIZE;
-}
-
 static __attribute__((constructor))
 void rseq_init(void)
 {
@@ -178,28 +193,54 @@ void rseq_init(void)
}
if (libc_rseq_size_p && libc_rseq_offset_p && libc_rseq_flags_p &&
*libc_rseq_size_p != 0) {
+   unsigned int libc_rseq_size;
+
/* rseq registration owned by glibc */
rseq_offset = *libc_rseq_offset_p;
-   rseq_size = *libc_rseq_size_p;
+   libc_rseq_size = *libc_rseq_size_p;
rseq_flags = *libc_rseq_flags_p;
-   rseq_feature_size = get_rseq_feature_size();
-   if (rseq_feature_size > rseq_size)
-   rseq_fe

Re: [PATCH bpf-next v1 1/3] tools/resolve_btfids: Simplify handling cross-endian compilation

2024-10-14 Thread Viktor Malik
On 9/20/24 09:49, Tony Ambardar wrote:
> Initially, the .BTF_ids section was created zero-filled and then patched
> with BTF IDs by resolve_btfids on the build host. Patching was done in
> native endianness and thus failed to work for cross-endian compile targets.
> This was fixed in [1] by using libelf-based translation to output patched
> data in target byte order.
> 
> The addition of 8-byte BTF sets in [2] lead to .BTF_ids creation with both
> target-endian values and zero-filled data to be later patched. This again
> broke cross-endian compilation as the already-correct target-endian values
> were translated on output by libelf [1]. The problem was worked around [3]
> by manually converting BTF SET8 values to native endianness, so that final
> libelf output translation yields data in target byte order.
> 
> Simplify and make the code more robust against future changes like [2] by
> employing libelf-based endian translation on both input and output, which
> is typical of libelf usage.
> 
> [1]: 61e8aeda9398 ("bpf: Fix libelf endian handling in resolv_btfids")
> [2]: ef2c6f370a63 ("tools/resolve_btfids: Add support for 8-byte BTF sets")
> [3]: 903fad439466 ("tools/resolve_btfids: Fix cross-compilation to non-host 
> endianness")
> 
> CC: Viktor Malik 
> Signed-off-by: Tony Ambardar 
> ---

Acked-by: Viktor Malik 

>  tools/bpf/resolve_btfids/main.c | 60 -
>  1 file changed, 22 insertions(+), 38 deletions(-)
> 
> diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/main.c
> index d54aaa0619df..9f1ab23ed014 100644
> --- a/tools/bpf/resolve_btfids/main.c
> +++ b/tools/bpf/resolve_btfids/main.c
> @@ -90,14 +90,6 @@
>  
>  #define ADDR_CNT 100
>  
> -#if __BYTE_ORDER == __LITTLE_ENDIAN
> -# define ELFDATANATIVE   ELFDATA2LSB
> -#elif __BYTE_ORDER == __BIG_ENDIAN
> -# define ELFDATANATIVE   ELFDATA2MSB
> -#else
> -# error "Unknown machine endianness!"
> -#endif
> -
>  struct btf_id {
>   struct rb_node   rb_node;
>   char*name;
> @@ -125,7 +117,6 @@ struct object {
>   int  idlist_shndx;
>   size_t   strtabidx;
>   unsigned longidlist_addr;
> - int  encoding;
>   } efile;
>  
>   struct rb_root  sets;
> @@ -325,11 +316,30 @@ static int compressed_section_fix(Elf *elf, Elf_Scn 
> *scn, GElf_Shdr *sh)
>   return 0;
>  }
>  
> +static int btfids_endian_fix(struct object *obj)
> +{
> + Elf_Data *btfids = obj->efile.idlist;
> + Elf *elf = obj->efile.elf;
> + int file_byteorder;
> +
> + /* This should always succeed due to prior ELF checks */
> + file_byteorder = elf_getident(elf, NULL)[EI_DATA];
> +
> + /* Set type to ensure endian translation occurs, and manually invoke
> +  * translation on input since .BTF_ids section as created disables it.
> +  */
> + btfids->d_type = ELF_T_WORD;
> + if (gelf_xlatetom(elf, btfids, btfids, file_byteorder) == NULL) {
> + pr_err("FAILED xlatetom .BTF_ids data: %s\n", elf_errmsg(-1));
> + return -1;
> + }
> + return 0;
> +}
> +
>  static int elf_collect(struct object *obj)
>  {
>   Elf_Scn *scn = NULL;
>   size_t shdrstrndx;
> - GElf_Ehdr ehdr;
>   int idx = 0;
>   Elf *elf;
>   int fd;
> @@ -361,13 +371,6 @@ static int elf_collect(struct object *obj)
>   return -1;
>   }
>  
> - if (gelf_getehdr(obj->efile.elf, &ehdr) == NULL) {
> - pr_err("FAILED cannot get ELF header: %s\n",
> - elf_errmsg(-1));
> - return -1;
> - }
> - obj->efile.encoding = ehdr.e_ident[EI_DATA];
> -
>   /*
>* Scan all the elf sections and look for save data
>* from .BTF_ids section and symbols.
> @@ -409,6 +412,8 @@ static int elf_collect(struct object *obj)
>   obj->efile.idlist   = data;
>   obj->efile.idlist_shndx = idx;
>   obj->efile.idlist_addr  = sh.sh_addr;
> + if (btfids_endian_fix(obj))
> + return -1;
>   } else if (!strcmp(name, BTF_BASE_ELF_SEC)) {
>   /* If a .BTF.base section is found, do not resolve
>* BTF ids relative to vmlinux; resolve relative
> @@ -706,24 +711,6 @@ static int sets_patch(struct object *obj)
>*/
>   BUILD_BUG_ON((u32 *)set8->pairs != &set8->pairs[0].id);
>   qsort(set8->pairs, set8->cnt, sizeof(set8->pairs[0]), 
> cmp_id);
> -
> - /*
> -  * When ELF endianness does not match endianness of the
> -  * host, libelf will do the translation when updating
> -  * the ELF. This, however, corrupts SET8 flags which are
> -  * already in the target endianness. So, let's bswap
> -

Re: [PATCH v3 3/4] vfio: Add VFIO_DEVICE_PASID_[AT|DE]TACH_IOMMUFD_PT

2024-10-14 Thread Alex Williamson
On Sat, 12 Oct 2024 21:49:05 +0800
Yi Liu  wrote:

> On 2024/10/1 20:11, Jason Gunthorpe wrote:
> > On Mon, Sep 30, 2024 at 07:55:08AM +, Tian, Kevin wrote:
> >   
> >>> +struct vfio_device_pasid_attach_iommufd_pt {
> >>> + __u32   argsz;
> >>> + __u32   flags;
> >>> + __u32   pasid;
> >>> + __u32   pt_id;
> >>> +};
> >>> +
> >>> +#define VFIO_DEVICE_PASID_ATTACH_IOMMUFD_PT  _IO(VFIO_TYPE,
> >>> VFIO_BASE + 21)  
> >>
> >> Not sure whether this was discussed before. Does it make sense
> >> to reuse the existing VFIO_DEVICE_ATTACH_IOMMUFD_PT
> >> by introducing a new pasid field and a new flag bit?  
> > 
> > Maybe? I don't have a strong feeling either way.
> > 
> > There is somewhat less code if you reuse the ioctl at least  
> 
> I had a rough memory that I was suggested to add a separate ioctl for
> PASID. Let's see Alex's opinion.

I don't recall any previous arguments for separate ioctls, but it seems
to make a lot of sense to me to extend the existing ioctls with a flag
to indicate pasid cscope and id.  Thanks,

Alex




[PATCH 6.11 205/214] selftests/rseq: Fix mm_cid test failure

2024-10-14 Thread Greg Kroah-Hartman
6.11-stable review patch.  If anyone has any objections, please let me know.

--

From: Mathieu Desnoyers 

commit a0cc649353bb726d4aa0db60dce467432197b746 upstream.

Adapt the rseq.c/rseq.h code to follow GNU C library changes introduced by:

glibc commit 2e456ccf0c34 ("Linux: Make __rseq_size useful for feature 
detection (bug 31965)")

Without this fix, rseq selftests for mm_cid fail:

./run_param_test.sh
Default parameters
Running test spinlock
Running compare-twice test spinlock
Running mm_cid test spinlock
Error: cpu id getter unavailable

Fixes: 18c2355838e7 ("selftests/rseq: Implement rseq mm_cid field support")
Signed-off-by: Mathieu Desnoyers 
Cc: Peter Zijlstra 
CC: Boqun Feng 
CC: "Paul E. McKenney" 
Cc: Shuah Khan 
CC: Carlos O'Donell 
CC: Florian Weimer 
CC: linux-kselftest@vger.kernel.org
CC: sta...@vger.kernel.org
Signed-off-by: Shuah Khan 
Signed-off-by: Greg Kroah-Hartman 
---
 tools/testing/selftests/rseq/rseq.c |  110 
 tools/testing/selftests/rseq/rseq.h |   10 ---
 2 files changed, 77 insertions(+), 43 deletions(-)

--- a/tools/testing/selftests/rseq/rseq.c
+++ b/tools/testing/selftests/rseq/rseq.c
@@ -60,12 +60,6 @@ unsigned int rseq_size = -1U;
 /* Flags used during rseq registration.  */
 unsigned int rseq_flags;
 
-/*
- * rseq feature size supported by the kernel. 0 if the registration was
- * unsuccessful.
- */
-unsigned int rseq_feature_size = -1U;
-
 static int rseq_ownership;
 static int rseq_reg_success;   /* At least one rseq registration has succeded. 
*/
 
@@ -111,6 +105,43 @@ int rseq_available(void)
}
 }
 
+/* The rseq areas need to be at least 32 bytes. */
+static
+unsigned int get_rseq_min_alloc_size(void)
+{
+   unsigned int alloc_size = rseq_size;
+
+   if (alloc_size < ORIG_RSEQ_ALLOC_SIZE)
+   alloc_size = ORIG_RSEQ_ALLOC_SIZE;
+   return alloc_size;
+}
+
+/*
+ * Return the feature size supported by the kernel.
+ *
+ * Depending on the value returned by getauxval(AT_RSEQ_FEATURE_SIZE):
+ *
+ * 0:   Return ORIG_RSEQ_FEATURE_SIZE (20)
+ * > 0: Return the value from getauxval(AT_RSEQ_FEATURE_SIZE).
+ *
+ * It should never return a value below ORIG_RSEQ_FEATURE_SIZE.
+ */
+static
+unsigned int get_rseq_kernel_feature_size(void)
+{
+   unsigned long auxv_rseq_feature_size, auxv_rseq_align;
+
+   auxv_rseq_align = getauxval(AT_RSEQ_ALIGN);
+   assert(!auxv_rseq_align || auxv_rseq_align <= 
RSEQ_THREAD_AREA_ALLOC_SIZE);
+
+   auxv_rseq_feature_size = getauxval(AT_RSEQ_FEATURE_SIZE);
+   assert(!auxv_rseq_feature_size || auxv_rseq_feature_size <= 
RSEQ_THREAD_AREA_ALLOC_SIZE);
+   if (auxv_rseq_feature_size)
+   return auxv_rseq_feature_size;
+   else
+   return ORIG_RSEQ_FEATURE_SIZE;
+}
+
 int rseq_register_current_thread(void)
 {
int rc;
@@ -119,7 +150,7 @@ int rseq_register_current_thread(void)
/* Treat libc's ownership as a successful registration. */
return 0;
}
-   rc = sys_rseq(&__rseq_abi, rseq_size, 0, RSEQ_SIG);
+   rc = sys_rseq(&__rseq_abi, get_rseq_min_alloc_size(), 0, RSEQ_SIG);
if (rc) {
if (RSEQ_READ_ONCE(rseq_reg_success)) {
/* Incoherent success/failure within process. */
@@ -140,28 +171,12 @@ int rseq_unregister_current_thread(void)
/* Treat libc's ownership as a successful unregistration. */
return 0;
}
-   rc = sys_rseq(&__rseq_abi, rseq_size, RSEQ_ABI_FLAG_UNREGISTER, 
RSEQ_SIG);
+   rc = sys_rseq(&__rseq_abi, get_rseq_min_alloc_size(), 
RSEQ_ABI_FLAG_UNREGISTER, RSEQ_SIG);
if (rc)
return -1;
return 0;
 }
 
-static
-unsigned int get_rseq_feature_size(void)
-{
-   unsigned long auxv_rseq_feature_size, auxv_rseq_align;
-
-   auxv_rseq_align = getauxval(AT_RSEQ_ALIGN);
-   assert(!auxv_rseq_align || auxv_rseq_align <= 
RSEQ_THREAD_AREA_ALLOC_SIZE);
-
-   auxv_rseq_feature_size = getauxval(AT_RSEQ_FEATURE_SIZE);
-   assert(!auxv_rseq_feature_size || auxv_rseq_feature_size <= 
RSEQ_THREAD_AREA_ALLOC_SIZE);
-   if (auxv_rseq_feature_size)
-   return auxv_rseq_feature_size;
-   else
-   return ORIG_RSEQ_FEATURE_SIZE;
-}
-
 static __attribute__((constructor))
 void rseq_init(void)
 {
@@ -178,28 +193,54 @@ void rseq_init(void)
}
if (libc_rseq_size_p && libc_rseq_offset_p && libc_rseq_flags_p &&
*libc_rseq_size_p != 0) {
+   unsigned int libc_rseq_size;
+
/* rseq registration owned by glibc */
rseq_offset = *libc_rseq_offset_p;
-   rseq_size = *libc_rseq_size_p;
+   libc_rseq_size = *libc_rseq_size_p;
rseq_flags = *libc_rseq_flags_p;
-   rseq_feature_size = get_rseq_feature_size();
-   if (rseq_feature_size > rseq_size)
-   rseq_f

Re: [PATCH v5 19/30] arm64: add POE signal support

2024-10-14 Thread Will Deacon
Kevin, Joey,

On Wed, Oct 09, 2024 at 03:43:01PM +0100, Will Deacon wrote:
> On Tue, Sep 24, 2024 at 01:27:58PM +0200, Kevin Brodsky wrote:
> > On 22/08/2024 17:11, Joey Gouly wrote:
> > > @@ -1178,6 +1237,9 @@ static void setup_return(struct pt_regs *regs, 
> > > struct k_sigaction *ka,
> > >   sme_smstop();
> > >   }
> > >  
> > > + if (system_supports_poe())
> > > + write_sysreg_s(POR_EL0_INIT, SYS_POR_EL0);
> > 
> > At the point where setup_return() is called, the signal frame has
> > already been written to the user stack. In other words, we write to the
> > user stack first, and then reset POR_EL0. This may be problematic,
> > especially if we are using the alternate signal stack, which the
> > interrupted POR_EL0 may not grant access to. In that situation uaccess
> > will fail and we'll end up with a SIGSEGV.
> > 
> > This issue has already been discussed on the x86 side, and as it happens
> > patches to reset PKRU early [1] have just landed. I don't think this is
> > a blocker for getting this series landed, but we should try and align
> > with x86. If there's no objection, I'm planning to work on a counterpart
> > to the x86 series (resetting POR_EL0 early during signal delivery).
> 
> Did you get a chance to work on that? It would be great to land the
> fixes for 6.12, if possible, so that the first kernel release with POE
> support doesn't land with known issues.

Looking a little more at this, I think we have quite a weird behaviour
on arm64 as it stands. It looks like we rely on the signal frame to hold
the original POR_EL0 so, if for some reason we fail to allocate space
for the POR context, I think we'll return back from the signal with
POR_EL0_INIT. That seems bad?

Will



kselftest/fixes kselftest-seccomp: 2 runs, 1 regressions (linux_kselftest-fixes-6.12-rc3)

2024-10-14 Thread kernelci.org bot
kselftest/fixes kselftest-seccomp: 2 runs, 1 regressions 
(linux_kselftest-fixes-6.12-rc3)

Regressions Summary
---

platform | arch  | lab | compiler | defconfig   
| regressions
-+---+-+--+-+
meson-gxl-s905x-libretech-cc | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  

  Details:  
https://kernelci.org/test/job/kselftest/branch/fixes/kernel/linux_kselftest-fixes-6.12-rc3/plan/kselftest-seccomp/

  Test: kselftest-seccomp
  Tree: kselftest
  Branch:   fixes
  Describe: linux_kselftest-fixes-6.12-rc3
  URL:  
https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git
  SHA:  4ee5ca9a29384fcf3f18232fdf8474166dea8dca 


Test Regressions
 


platform | arch  | lab | compiler | defconfig   
| regressions
-+---+-+--+-+
meson-gxl-s905x-libretech-cc | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  

  Details: https://kernelci.org/test/plan/id/670d07f5cd937325b5c86857

  Results: 0 PASS, 1 FAIL, 0 SKIP
  Full config: defconfig+kselftest
  Compiler:gcc-12 (aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0)
  Plain log:   
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-seccomp-meson-gxl-s905x-libretech-cc.txt
  HTML log:
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-seccomp-meson-gxl-s905x-libretech-cc.html
  Rootfs:  
http://storage.kernelci.org/images/rootfs/debian/bookworm-kselftest/20240313.0/arm64/initrd.cpio.gz
 


  * kselftest-seccomp.login: 
https://kernelci.org/test/case/id/670d07f5cd937325b5c86858
failing since 5 days (last pass: v6.12-rc1-5-g45a8897db67d4, first 
fail: linux_kselftest-fixes-6.12-rc2-4-g34d5b600172b) 
  



kselftest/fixes kselftest-lib: 2 runs, 1 regressions (linux_kselftest-fixes-6.12-rc3)

2024-10-14 Thread kernelci.org bot
kselftest/fixes kselftest-lib: 2 runs, 1 regressions 
(linux_kselftest-fixes-6.12-rc3)

Regressions Summary
---

platform | arch  | lab | compiler | defconfig   
| regressions
-+---+-+--+-+
meson-gxl-s905x-libretech-cc | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  

  Details:  
https://kernelci.org/test/job/kselftest/branch/fixes/kernel/linux_kselftest-fixes-6.12-rc3/plan/kselftest-lib/

  Test: kselftest-lib
  Tree: kselftest
  Branch:   fixes
  Describe: linux_kselftest-fixes-6.12-rc3
  URL:  
https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git
  SHA:  4ee5ca9a29384fcf3f18232fdf8474166dea8dca 


Test Regressions
 


platform | arch  | lab | compiler | defconfig   
| regressions
-+---+-+--+-+
meson-gxl-s905x-libretech-cc | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  

  Details: https://kernelci.org/test/plan/id/670d06ca62e90ff6e7c86855

  Results: 0 PASS, 1 FAIL, 0 SKIP
  Full config: defconfig+kselftest
  Compiler:gcc-12 (aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0)
  Plain log:   
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-lib-meson-gxl-s905x-libretech-cc.txt
  HTML log:
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-lib-meson-gxl-s905x-libretech-cc.html
  Rootfs:  
http://storage.kernelci.org/images/rootfs/debian/bookworm-kselftest/20240313.0/arm64/initrd.cpio.gz
 


  * kselftest-lib.login: 
https://kernelci.org/test/case/id/670d06ca62e90ff6e7c86856
failing since 5 days (last pass: v6.12-rc1-5-g45a8897db67d4, first 
fail: linux_kselftest-fixes-6.12-rc2-4-g34d5b600172b) 
  



kselftest/fixes kselftest-cpufreq: 3 runs, 3 regressions (linux_kselftest-fixes-6.12-rc3)

2024-10-14 Thread kernelci.org bot
kselftest/fixes kselftest-cpufreq: 3 runs, 3 regressions 
(linux_kselftest-fixes-6.12-rc3)

Regressions Summary
---

platform | arch  | lab | compiler | defconfig   
| regressions
-+---+-+--+-+
meson-gxl-s905x-libretech-cc | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  
sun50i-a64-pine64-plus   | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  
sun50i-h5-lib...ch-all-h3-cc | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  

  Details:  
https://kernelci.org/test/job/kselftest/branch/fixes/kernel/linux_kselftest-fixes-6.12-rc3/plan/kselftest-cpufreq/

  Test: kselftest-cpufreq
  Tree: kselftest
  Branch:   fixes
  Describe: linux_kselftest-fixes-6.12-rc3
  URL:  
https://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git
  SHA:  4ee5ca9a29384fcf3f18232fdf8474166dea8dca 


Test Regressions
 


platform | arch  | lab | compiler | defconfig   
| regressions
-+---+-+--+-+
meson-gxl-s905x-libretech-cc | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  

  Details: https://kernelci.org/test/plan/id/670d07df5ce1577dbec86858

  Results: 0 PASS, 1 FAIL, 0 SKIP
  Full config: defconfig+kselftest
  Compiler:gcc-12 (aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0)
  Plain log:   
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-cpufreq-meson-gxl-s905x-libretech-cc.txt
  HTML log:
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-cpufreq-meson-gxl-s905x-libretech-cc.html
  Rootfs:  
http://storage.kernelci.org/images/rootfs/debian/bookworm-kselftest/20240313.0/arm64/initrd.cpio.gz
 


  * kselftest-cpufreq.login: 
https://kernelci.org/test/case/id/670d07df5ce1577dbec86859
failing since 5 days (last pass: v6.12-rc1-5-g45a8897db67d4, first 
fail: linux_kselftest-fixes-6.12-rc2-4-g34d5b600172b) 
 


platform | arch  | lab | compiler | defconfig   
| regressions
-+---+-+--+-+
sun50i-a64-pine64-plus   | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  

  Details: https://kernelci.org/test/plan/id/670d09462706bb6cd8c8685d

  Results: 0 PASS, 1 FAIL, 0 SKIP
  Full config: defconfig+kselftest
  Compiler:gcc-12 (aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0)
  Plain log:   
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-cpufreq-sun50i-a64-pine64-plus.txt
  HTML log:
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-cpufreq-sun50i-a64-pine64-plus.html
  Rootfs:  
http://storage.kernelci.org/images/rootfs/debian/bookworm-kselftest/20240313.0/arm64/initrd.cpio.gz
 


  * kselftest-cpufreq.login: 
https://kernelci.org/test/case/id/670d09472706bb6cd8c8685e
failing since 5 days (last pass: v6.12-rc1-5-g45a8897db67d4, first 
fail: linux_kselftest-fixes-6.12-rc2-4-g34d5b600172b) 
 


platform | arch  | lab | compiler | defconfig   
| regressions
-+---+-+--+-+
sun50i-h5-lib...ch-all-h3-cc | arm64 | lab-broonie | gcc-12   | 
defconfig+kselftest | 1  

  Details: https://kernelci.org/test/plan/id/670d068aaf8e516253c8685f

  Results: 0 PASS, 1 FAIL, 0 SKIP
  Full config: defconfig+kselftest
  Compiler:gcc-12 (aarch64-linux-gnu-gcc (Debian 12.2.0-14) 12.2.0)
  Plain log:   
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-cpufreq-sun50i-h5-libretech-all-h3-cc.txt
  HTML log:
https://storage.kernelci.org//kselftest/fixes/linux_kselftest-fixes-6.12-rc3/arm64/defconfig+kselftest/gcc-12/lab-broonie/kselftest-cpufreq-sun50i-h5-libretech-all-h3-cc.html
  Rootfs:  
http://storage.kernelci.org/images/rootfs/debian/bookworm-kselftest/20240313.0/arm64/initrd.cpio.gz
 


  * kselftest-cpufreq.login: 
https://kernelci.org/test/case/id/670d068aaf8e516253c86860
failing since 5 days (last pass: v6.12-rc1-5-g45a8897db67d4, first 
fail: linux_kselftest-fixes-6.12-rc2-4-g34d5b600172b)