From: Michael Ellerman <mpe@ellerman.id.au>
To: Greg Kurz <gkurz@linux.vnet.ibm.com>
Cc: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [v2] powerpc/vphn: fix endian issue in NUMA device node code
Date: Wed, 15 Oct 2014 13:20:55 +1100 (EST) [thread overview]
Message-ID: <20141015022055.ABDF214012A@ozlabs.org> (raw)
In-Reply-To: <20141010102033.49af46f4@bahia.local>
On Fri, 2014-10-10 at 08:20:33 UTC, Greg Kurz wrote:
> On Tue, 7 Oct 2014 20:28:23 +1100 (EST)
> Michael Ellerman <mpe@ellerman.id.au> wrote:
>
> > On Fri, 2014-03-10 at 09:13:17 UTC, Greg Kurz wrote:
> > > The associativity domain numbers are obtained from the hypervisor through
> > > registers and written into memory by the guest: the packed array passed to
> > > vphn_unpack_associativity() is then native-endian, unlike what was assumed
> > > in the following commit:
> > >
> > > This patch does two things:
> > > - extract values from the packed array with shifts, in order to be endian
> > > neutral
> > > - convert the resulting values to be32 as expected
> >
> > So to unpack them, can't we just iterate over those six 64-bit values, which if
> > we load them as 64-bit values will be back in cpu endian?
>
> Hi Michael,
>
> Do you mean something like the following ?
Not exactly, but that's certainly a lot simpler than the original patch.
> Sure it also works and is a lot simplier... but it adds an extra loop. Also,
> if the 3 first elements of the array contain 12 VPHN_FIELD_MSB fields, then
> we don't even need to swap the remaining elements: only the parsing code
> knows.
>
> On the other hand, I understand this is not a hot path... so what should we
> do ?
So I prefer this to your original patch. I know the original was cool and
tricky but it was also complicated :)
What I was thinking of was that the actual parsing code, in vphn_unpack_associativity()
would do the 64-bit loads. That will require changing the parsing loop quite a
bit, but I think it might be worth it.
So can you resend this version with a proper changelog, and I'll merge that
straight away as a bug fix. Then if you can look at reworking the parsing loop
to avoid all the endian swapping on the input side that'd be great.
cheers
prev parent reply other threads:[~2014-10-15 2:20 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-10-03 9:13 [PATCH v2] powerpc/vphn: fix endian issue in NUMA device node code Greg Kurz
2014-10-06 22:36 ` Nishanth Aravamudan
2014-10-07 9:28 ` [v2] " Michael Ellerman
2014-10-10 8:20 ` Greg Kurz
2014-10-15 2:20 ` Michael Ellerman [this message]
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=20141015022055.ABDF214012A@ozlabs.org \
--to=mpe@ellerman.id.au \
--cc=gkurz@linux.vnet.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=nacc@linux.vnet.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).