spinlocks on powerpc

Manabu Ori <manabu.ori@gmail.com>

From: Manabu Ori <manabu.ori@gmail.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>, Tatsuo Ishii <ishii@postgresql.org>, robertmhaas@gmail.com, pgsql-hackers@postgresql.org
Date: 2011-12-30T05:47:23Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Use LWSYNC in place of SYNC/ISYNC in PPC spinlocks, where possible.

  2. Reduce sinval synchronization overhead.

2011/12/30 Tom Lane <tgl@sss.pgh.pa.us>
> Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes:
> > The Linux kernel does this (arch/powerpc/include/asm/ppc-opcode.h):
>
> Yeah, I was looking at that too.
>
> > We can't copy-paste code from Linux directly, and I'm not sure I like
> > that particular phrasing of the macro, but perhaps we should steal the
> > idea and only use the hint on 64-bit PowerPC processors?
>
> The info that I've found says that the hint exists beginning in POWER6,
> and there were certainly 64-bit Power machines before that.  However,
> it might be that the only machines that actually spit up on the hint bit
> (rather than ignore it) were 32-bit, in which case this would be a
> usable heuristic.  Not sure how we can research that ... do we want to
> just assume the kernel guys know what they're doing?

I'm a bit confused and might miss the point, but...

If we can decide whether to use the hint operand when we build
postgres, I think it's better to check if we can compile and run
a sample code with lwarx hint operand than to refer to some
arbitrary defines, such as FOO_PPC64 or something.

I still wonder when to judge the hint availability, compile time
or runtime.
I don't have any idea how to decide that on runtime, though.

P.S.
I changed the subject since it's no longer related to HPUX.

Regards,
Manabu Ori