All of lore.kernel.org
 help / color / mirror / Atom feed
From: Michael Ellerman <mpe@ellerman.id.au>
To: Paul Murphy <murp@ibm.com>, pmenzel@molgen.mpg.de
Cc: parkerderek86@gmail.com, laboger@linux.vnet.ibm.com,
	xaionaro@gmail.com, paulus@samba.org, murphyp@linux.ibm.com,
	linuxppc-dev@lists.ozlabs.org
Subject: RE: Possible regression by ab037dd87a2f (powerpc/vdso: Switch VDSO to generic C implementation.)
Date: Mon, 02 Aug 2021 16:18:58 +1000	[thread overview]
Message-ID: <87czqwl67h.fsf@mpe.ellerman.id.au> (raw)
In-Reply-To: <OF44F7146F.67A4C1C2-ON00258720.004DBF64-00258720.004FCFCC@ibm.com>

"Paul Murphy" <murp@ibm.com> writes:
>  
> (My apologies for however IBM's email client munges this)
>
>> I heard it is going to be in Go 1.16.7, but I do not know much about Go.
>> Maybe the folks in Cc can chime in.
>  
>  
> We have backports primed and ready for the next point release. They
> are waiting on the release manager to cherrypick them.

OK good, that is still the correct fix in the long run.

> I think we were aware that our VDSO usage may have exploited some
> peculiarities in how the ppc64 version was constructed (i.e hand
> written assembly which just didn't happen to clobber R30).

Yeah I was "somewhat surprised" that Go thought it could use r30 like
that across a VDSO call :D

But to be fair the ABI of the VDSO has always been a little fishy,
because the entry points pretend to be a transparent wrapper around
system calls, but then in a case like this are not.

> Go up to this point has only used the vdso function __kernel_clock_gettime; it
> is the only entry point which would need to explicitly avoid R30 for
> Go's sake.

I thought about limiting the workaround to just that code, but it seemed
silly and likely to come back to bite us. Once the compilers decides to
spill a non-volatile there are plenty of other ones to choose from.

cheers

  parent reply	other threads:[~2021-08-02  6:19 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-27  8:45 Possible regression by ab037dd87a2f (powerpc/vdso: Switch VDSO to generic C implementation.) Paul Menzel
2021-07-27 23:14 ` Benjamin Herrenschmidt
2021-07-28  8:26   ` Paul Menzel
2021-07-28 12:43     ` Michael Ellerman
2021-07-28 12:53       ` Paul Menzel
2021-07-29  7:41         ` Michael Ellerman
2021-07-29  8:33           ` Paul Menzel
2021-07-29 12:58             ` Michael Ellerman
     [not found]         ` <875ywt1s9r.fsf__45665.8238823124$1627544516$gmane$org@mpe.ellerman.id.au>
2021-07-29  8:48           ` Andreas Schwab
2021-08-02  6:04             ` Michael Ellerman
     [not found]       ` <OF44F7146F.67A4C1C2-ON00258720.004DBF64-00258720.004FCFCC@ibm.com>
2021-08-02  6:18         ` Michael Ellerman [this message]
2021-08-02 12:48           ` Benjamin Herrenschmidt
2021-08-02 18:07           ` Segher Boessenkool
2021-08-02 18:14           ` Lynn Boger

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=87czqwl67h.fsf@mpe.ellerman.id.au \
    --to=mpe@ellerman.id.au \
    --cc=laboger@linux.vnet.ibm.com \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=murp@ibm.com \
    --cc=murphyp@linux.ibm.com \
    --cc=parkerderek86@gmail.com \
    --cc=paulus@samba.org \
    --cc=pmenzel@molgen.mpg.de \
    --cc=xaionaro@gmail.com \
    /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.