Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 2 Jun 2021 13:52:43 +0200
From: Arnd Bergmann <arnd@...nel.org>
To: musl@...ts.openwall.com
Cc: Rich Felker <dalias@...c.org>, Markus Wichmann <nullplan@....net>, 
	Florian Weimer <fweimer@...hat.com>
Subject: Re: Backwards kernel compatibility

On Wed, Jun 2, 2021 at 9:38 AM Martin Vajnar <martin.vajnar@...il.com> wrote:
>
> Hi Rich,
>
> thank you for such detailed reply.> Cc: <stable@...r.kernel.org>
> Cc: Martin Vajnar <martin.vajnar@...il.com>
> Cc: musl@...ts.openwall.com
> Acked-by: Will Deacon <will.deacon@....com>
> Signed-off-by: Michael Weiser <michael.weiser@....de>
> Signed-off-by: Will Deacon <will.deacon@....com>
> Signed-off-by: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
> ---
> This was backported to v4.14 and later, but is missing in v4.4 and
> before, apparently because of a trivial merge conflict. This is
> a manual backport I did after I saw a report about the issue
> by Martin Vajnar on the musl mailing list.
> Signed-off-by: Arnd Bergmann <arnd@...db.de>
> ---
>  arch/arm64/kernel/traps.c | 8 --------
>  1 file changed, 8 deletions(-)
>
> diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
> index 9322be69ca09..db4163808c76 100644
> --- a/arch/arm64/kernel/traps.c
> +++ b/arch/arm64/kernel/traps.c
> @@ -363,14 +363,6 @@ asmlinkage long do_ni_syscall(struct pt_regs *regs)
>         }
>  #endif
>
> -       if (show_unhandled_signals && printk_ratelimit()) {
> -               pr_info("%s[%d]: syscall %d\n", current->comm,
> -                       task_pid_nr(current), (int)regs->syscallno);
> -               dump_instr("", regs);
> -               if (user_mode(regs))
> -                       __show_regs(regs);
> -       }
> -
>         return sys_ni_syscall();
>  }
>
> --
> 2.29.2
>
>
> Ășt 25. 5. 2021 v 0:00 odesĂ­latel Rich Felker <dalias@...c.org> napsal:
> >
> > On Mon, May 24, 2021 at 03:52:44PM +0200, Martin Vajnar wrote:
> > > Hi, Markus,
> > >
> > > sorry for the late reply it was quite busy lately. You're describing
> > > exactly the issue, we are facing in our project. We need to use old kernel
> > > which we have only in binary form and have headers for it. At the same time
> > > we would like to have the latest musl running on it.
> > >
> > > The problem we encounter is that for unsupported (or better said, not
> > > supported yet) syscalls we get performance overhead because of the ENOSYS.
> >
> > Can you give some information on what syscalls these are and if/how
> > you measured the performance overhead as being significant?
>
>
> The main source of overhead comes from the kernel 4.4 which on arm64
> produces stack traces when not implemented syscall is invoked:
>
>     https://github.com/torvalds/linux/blob/afd2ff9b7e1b367172f18ba7f693dfb62bdcb2dc/arch/arm64/kernel/traps.c#L369

That is clearly a bug that was fixed in mainline and backported to linux-4.14
but not 4.4 or 4.9. I've sent a manual backport for inclusion in those kernels
now.

       Arnd

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.