From b055174e9e791d6c725dad7a7c240ddf82d24c93 Mon Sep 17 00:00:00 2001 From: Guoqi Chen Date: Fri, 13 Jan 2023 13:07:06 +0800 Subject: [PATCH 1/2] cpu: Add the matching rule "Model Name" when parsing cpuinfo This is to fix the error of running TestCpuInfo on Linux/long64. In loong64 /proc/cpuinfo, the model name is capitalize the first letter Reference: https://github.com/torvalds/linux/blob/master/arch/loongarch/kernel/proc.c Signed-off-by: Guoqi Chen --- cpu/cpu_linux.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpu/cpu_linux.go b/cpu/cpu_linux.go index a60e462..22e487a 100644 --- a/cpu/cpu_linux.go +++ b/cpu/cpu_linux.go @@ -253,7 +253,7 @@ func InfoWithContext(ctx context.Context) ([]InfoStat, error) { } } } - case "model name", "cpu": + case "Model Name", "model name", "cpu": c.ModelName = value if strings.Contains(value, "POWER8") || strings.Contains(value, "POWER7") { From b793d83f72b9a3166ba1ad2b61f08c502538557e Mon Sep 17 00:00:00 2001 From: Guoqi Chen Date: Thu, 13 Jan 2022 15:55:13 +0800 Subject: [PATCH 2/2] host: add support for linux/loong64 Updates #1338. Signed-off-by: Guoqi Chen Co-authored-by: Jiantao Shan --- Makefile | 2 ++ host/host_linux_loong64.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 50 insertions(+) create mode 100644 host/host_linux_loong64.go diff --git a/Makefile b/Makefile index 9f6639e..ff73a0c 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,7 @@ build_test: ## test only buildable GOOS=linux GOARCH=386 go test ./... | $(BUILD_FAIL_PATTERN) GOOS=linux GOARCH=arm go test ./... | $(BUILD_FAIL_PATTERN) GOOS=linux GOARCH=arm64 go test ./... | $(BUILD_FAIL_PATTERN) + GOOS=linux GOARCH=loong64 go test ./... | $(BUILD_FAIL_PATTERN) GOOS=linux GOARCH=riscv64 go test ./... | $(BUILD_FAIL_PATTERN) GOOS=freebsd GOARCH=amd64 go test ./... | $(BUILD_FAIL_PATTERN) GOOS=freebsd GOARCH=386 go test ./... | $(BUILD_FAIL_PATTERN) @@ -51,6 +52,7 @@ vet: GOOS=linux GOARCH=amd64 go vet ./... GOOS=linux GOARCH=arm64 go vet ./... GOOS=linux GOARCH=arm go vet ./... + GOOS=linux GOARCH=loong64 go vet ./... GOOS=linux GOARCH=mips64 go vet ./... GOOS=linux GOARCH=mips64le go vet ./... GOOS=linux GOARCH=mips go vet ./... diff --git a/host/host_linux_loong64.go b/host/host_linux_loong64.go new file mode 100644 index 0000000..edf1be5 --- /dev/null +++ b/host/host_linux_loong64.go @@ -0,0 +1,48 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs host/types_linux.go + +//go:build linux && loong64 +// +build linux,loong64 + +package host + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + sizeOfUtmp = 0x190 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type ( + utmp struct { + Type int16 + Pid int32 + Line [32]int8 + Id [4]int8 + User [32]int8 + Host [256]int8 + Exit exit_status + Session int64 + Tv timeval + Addr_v6 [4]int32 + X__glibc_reserved [20]int8 + Pad_cgo_0 [4]byte + } + exit_status struct { + Termination int16 + Exit int16 + } + timeval struct { + Sec int64 + Usec int64 + } +)