From fead79001313d15903fb4605b4a1b781532cd93e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Mon, 11 Mar 2019 09:36:29 +0100 Subject: [PATCH] cpu: use unix.Getsystemcfg to detect POWER8/POWER9 on aix/ppc64 Tested on an aix-ppc64 gomote builder. Fixes golang/go#30732 Change-Id: I8e74dcde8bd4ded0f425c90eefe799970ebd325c Reviewed-on: https://go-review.googlesource.com/c/sys/+/166466 Run-TryBot: Tobias Klauser TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- cpu/cpu_aix_ppc64.go | 30 ++++++++++++++++++++++++++++++ cpu/cpu_other_ppc64x.go | 12 ------------ 2 files changed, 30 insertions(+), 12 deletions(-) create mode 100644 cpu/cpu_aix_ppc64.go delete mode 100644 cpu/cpu_other_ppc64x.go diff --git a/cpu/cpu_aix_ppc64.go b/cpu/cpu_aix_ppc64.go new file mode 100644 index 00000000..d8c26a04 --- /dev/null +++ b/cpu/cpu_aix_ppc64.go @@ -0,0 +1,30 @@ +// Copyright 2019 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build aix,ppc64 + +package cpu + +import "golang.org/x/sys/unix" + +const cacheLineSize = 128 + +const ( + // getsystemcfg constants + _SC_IMPL = 2 + _IMPL_POWER8 = 0x10000 + _IMPL_POWER9 = 0x20000 +) + +func init() { + impl := unix.Getsystemcfg(_SC_IMPL) + if impl&_IMPL_POWER8 != 0 { + PPC64.IsPOWER8 = true + } + if impl&_IMPL_POWER9 != 0 { + PPC64.IsPOWER9 = true + } + + Initialized = true +} diff --git a/cpu/cpu_other_ppc64x.go b/cpu/cpu_other_ppc64x.go deleted file mode 100644 index 3053b4b9..00000000 --- a/cpu/cpu_other_ppc64x.go +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright 2019 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// +build !linux -// +build ppc64 ppc64le - -package cpu - -const cacheLineSize = 128 - -func doinit() {}