On Wed, 4 May 2022 at 05:22, Mark Brown broonie@kernel.org wrote:
On Tue, May 03, 2022 at 06:23:40PM -0400, Qian Cai wrote:
On Tue, Apr 19, 2022 at 12:22:08PM +0100, Mark Brown wrote:
This series provides initial support for the ARMv9 Scalable Matrix Extension (SME). SME takes the approach used for vectors in SVE and extends this to provide architectural support for matrix operations. A more detailed overview can be found in [1].
Set CONFIG_ARM64_SME=n fixed a warning while running libhugetlbfs tests.
/* * There are several places where we assume that the order value is sane * so bail out early if the request is out of bound. */ if (unlikely(order >= MAX_ORDER)) { WARN_ON_ONCE(!(gfp & __GFP_NOWARN)); return NULL; }
Ugh, right. These variable sized register sets really don't map entirely cleanly onto the ptrace interface but now you point it out what the code has there is going to give a rather larger number than is sensible. Not fully checked but does the below fix things?
Thanks for your testing with this stuff, it's been really helpful.
diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c index 47d8a7472171..08c1cb43cf33 100644 --- a/arch/arm64/kernel/ptrace.c +++ b/arch/arm64/kernel/ptrace.c @@ -1447,8 +1447,8 @@ static const struct user_regset aarch64_regsets[] = { }, [REGSET_ZA] = { /* SME ZA */ .core_note_type = NT_ARM_ZA,
.n = DIV_ROUND_UP(ZA_PT_ZA_SIZE(SVE_VQ_MAX), SVE_VQ_BYTES),
.size = SVE_VQ_BYTES,
.n = 1,
.size = ZA_PT_SIZE(SVE_VQ_MAX), .align = SVE_VQ_BYTES, .regset_get = za_get, .set = za_set,
I have tested this patch but the warning did not fix. Testing libhugetlbfs on qemu_arm64 triggering this warning.
Kernel warning: ------------------- [ 13.266791] kauditd_printk_skb: 1 callbacks suppressed [ 13.266794] audit: type=1701 audit(1651640394.652:25): auid=4294967295 uid=0 gid=0 ses=4294967295 pid=463 comm="brk_near_huge" exe="/usr/lib/libhugetlbfs/tests/obj64/brk_near_huge" sig=6 res=1 [ 13.267376] ------------[ cut here ]------------ [ 13.267378] WARNING: CPU: 2 PID: 463 at mm/page_alloc.c:5368 __alloc_pages+0x624/0xd50 [ 13.269956] Modules linked in: crct10dif_ce rfkill fuse [ 13.270357] CPU: 2 PID: 463 Comm: brk_near_huge Not tainted 5.18.0-rc4-next-20220429 #1 [ 13.270964] Hardware name: linux,dummy-virt (DT) [ 13.271315] pstate: 20400005 (nzCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--) [ 13.271841] pc : __alloc_pages+0x624/0xd50 [ 13.272157] lr : alloc_pages+0xb8/0x170 [ 13.272451] sp : ffff800008873630 [ 13.272704] x29: ffff800008873630 x28: 000000000000000f x27: ffffb53cfad91650 [ 13.273248] x26: ffff0000c57f2c00 x25: ffff800008873c58 x24: 000000000000000f [ 13.273788] x23: 0000000000000dc0 x22: 0000000000000000 x21: 000000000000000f [ 13.274327] x20: ffffb53cfc8189a0 x19: 0000000000040dc0 x18: 0000000000000000 [ 13.274868] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 [ 13.275406] x14: 0000000000000000 x13: 0000000000000000 x12: ffff0000ff7f5b58 [ 13.275945] x11: 0000000000000068 x10: ffffb53cfb77d000 x9 : ffffb53cf9d30e78 [ 13.276485] x8 : fffffc00038e0001 x7 : dead000000000100 x6 : 0000000000000001 [ 13.277021] x5 : 0000000000000000 x4 : ffff0000c55fe180 x3 : 0000000000000000 [ 13.277559] x2 : 0000000000000000 x1 : 0000000000000001 x0 : 0000000000040dc0 [ 13.278096] Call trace: [ 13.278285] __alloc_pages+0x624/0xd50 [ 13.278576] alloc_pages+0xb8/0x170 [ 13.278844] kmalloc_order+0x40/0x100 [ 13.279126] kmalloc_order_trace+0x38/0x130 [ 13.279445] __kmalloc+0x37c/0x3e0 [ 13.279707] __regset_get+0xa0/0x104 [ 13.279983] regset_get_alloc+0x20/0x2c [ 13.280277] elf_core_dump+0x3a8/0xd10 [ 13.280567] do_coredump+0xe50/0x138c [ 13.280850] get_signal+0x860/0x920 [ 13.281119] do_notify_resume+0x184/0x1480 [ 13.281428] el0_svc+0xa8/0xc0 [ 13.281666] el0t_64_sync_handler+0xbc/0x140 [ 13.281992] el0t_64_sync+0x18c/0x190 [ 13.282273] ---[ end trace 0000000000000000 ]---
Reported-by: Linux Kernel Functional Testing lkft@linaro.org
url: https://lkft.validation.linaro.org/scheduler/job/4983793#L831
Build link: https://builds.tuxbuild.com/28gVhSoYA4NRerhwD1gkY4QdHLt/
-- Linaro LKFT https://lkft.linaro.org