From: "Christopher M. Riedl" <cmr@codefail.de>
To: "David Laight" <David.Laight@ACULAB.COM>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: RE: [PATCH v4 02/10] powerpc/signal: Add unsafe_copy_{vsx, fpr}_from_user()
Date: Mon, 01 Feb 2021 11:43:48 -0600 [thread overview]
Message-ID: <C8YDPJHR942I.3QTOTXFX2270W@geist> (raw)
In-Reply-To: <f6234b06ccb54cffb3583f40635636d3@AcuMS.aculab.com>
On Mon Feb 1, 2021 at 11:37 AM CST, David Laight wrote:
> From: Christopher M. Riedl
> > Sent: 01 February 2021 16:55
> ...
> > > > > > + int i; \
> > > > > > + \
> > > > > > + unsafe_copy_from_user(buf, __f, ELF_NFPREG * sizeof(double), \
> > > > > > + label); \
> > > > > > + for (i = 0; i < ELF_NFPREG - 1; i++) \
> > > > > > + __t->thread.TS_FPR(i) = buf[i]; \
> > > > > > + __t->thread.fp_state.fpscr = buf[i]; \
> > > > > > +} while (0)
> > >
> > > On further reflection, since you immediately loop through the buffer
> > > why not just use user_access_begin() and unsafe_get_user() in the loop.
> >
> > Christophe had suggested this a few revisions ago as well. When I tried
> > this approach, the signal handling performance took a pretty big hit:
> > https://lists.ozlabs.org/pipermail/linuxppc-dev/2020-October/219351.html
> >
> > I included some numbers on v3 as well but decided to drop the approach
> > altogether for this one since it just didn't seem worth the hit.
>
> Was that using unsafe_get_user (which relies on user_access_begin()
> having 'opened up' user accesses) or just get_user() that does
> it for every access?
>
> The former should be ok, the latter will be horrid.
It was using unsafe_get_user() whereas unsafe_copy_from_user() will just
call the optimized __copy_tofrom_user() a single time - assuming that
user access is open.
>
> David
>
> -
> Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes,
> MK1 1PT, UK
> Registration No: 1397386 (Wales)
next prev parent reply other threads:[~2021-02-01 17:45 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-28 4:04 [PATCH v4 00/10] Improve signal performance on PPC64 with KUAP Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 01/10] powerpc/uaccess: Add unsafe_copy_from_user Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 02/10] powerpc/signal: Add unsafe_copy_{vsx, fpr}_from_user() Christopher M. Riedl
2021-01-28 10:38 ` David Laight
2021-01-28 12:05 ` Christophe Leroy
2021-02-01 15:55 ` Christopher M. Riedl
2021-02-01 16:15 ` David Laight
2021-02-01 16:55 ` Christopher M. Riedl
2021-02-01 17:37 ` David Laight
2021-02-01 17:43 ` Christopher M. Riedl [this message]
2021-02-01 16:54 ` Gabriel Paubert
2021-02-01 20:55 ` Christopher M. Riedl
2021-02-04 6:09 ` Michael Ellerman
2021-01-28 4:04 ` [PATCH v4 03/10] powerpc/signal64: Move non-inline functions out of setup_sigcontext() Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 04/10] powerpc: Reference param in MSR_TM_ACTIVE() macro Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 05/10] powerpc/signal64: Remove TM ifdefery in middle of if/else block Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 06/10] powerpc/signal64: Replace setup_sigcontext() w/ unsafe_setup_sigcontext() Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 07/10] powerpc/signal64: Replace restore_sigcontext() w/ unsafe_restore_sigcontext() Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 08/10] powerpc/signal64: Rewrite handle_rt_signal64() to minimise uaccess switches Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 09/10] powerpc/signal64: Rewrite rt_sigreturn() " Christopher M. Riedl
2021-01-28 4:04 ` [PATCH v4 10/10] powerpc/signal64: Use __get_user() to copy sigset_t Christopher M. Riedl
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=C8YDPJHR942I.3QTOTXFX2270W@geist \
--to=cmr@codefail.de \
--cc=David.Laight@ACULAB.COM \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.