[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 16/22] linux-user: Fix /proc/cpuinfo output for hppa
From: |
Laurent Vivier |
Subject: |
[PULL 16/22] linux-user: Fix /proc/cpuinfo output for hppa |
Date: |
Sat, 4 Feb 2023 17:08:24 +0100 |
From: Helge Deller <deller@gmx.de>
The hppa architectures provides an own output for the emulated
/proc/cpuinfo file.
Some userspace applications count (even if that's not the recommended
way) the number of lines which start with "processor:" and assume that
this number then reflects the number of online CPUs. Since those 3
architectures don't provide any such line, applications may assume "0"
CPUs. One such issue can be seen in debian bug report:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1024653
Avoid such issues by adding a "processor:" line for each of the online
CPUs.
Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <Y9QvyRSq1I1k5/JW@p100>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/syscall.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 1c42df651801..55d53b344b84 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -8232,11 +8232,17 @@ static int open_cpuinfo(CPUArchState *cpu_env, int fd)
#if defined(TARGET_HPPA)
static int open_cpuinfo(CPUArchState *cpu_env, int fd)
{
- dprintf(fd, "cpu family\t: PA-RISC 1.1e\n");
- dprintf(fd, "cpu\t\t: PA7300LC (PCX-L2)\n");
- dprintf(fd, "capabilities\t: os32\n");
- dprintf(fd, "model\t\t: 9000/778/B160L\n");
- dprintf(fd, "model name\t: Merlin L2 160 QEMU (9000/778/B160L)\n");
+ int i, num_cpus;
+
+ num_cpus = sysconf(_SC_NPROCESSORS_ONLN);
+ for (i = 0; i < num_cpus; i++) {
+ dprintf(fd, "processor\t: %d\n", i);
+ dprintf(fd, "cpu family\t: PA-RISC 1.1e\n");
+ dprintf(fd, "cpu\t\t: PA7300LC (PCX-L2)\n");
+ dprintf(fd, "capabilities\t: os32\n");
+ dprintf(fd, "model\t\t: 9000/778/B160L - "
+ "Merlin L2 160 QEMU (9000/778/B160L)\n\n");
+ }
return 0;
}
#endif
--
2.39.1
- [PULL 15/22] linux-user: Fix SO_ERROR return code of getsockopt(), (continued)
- [PULL 15/22] linux-user: Fix SO_ERROR return code of getsockopt(), Laurent Vivier, 2023/02/04
- [PULL 11/22] Revert "linux-user: fix compat with glibc >= 2.36 sys/mount.h", Laurent Vivier, 2023/02/04
- [PULL 19/22] linux-user: Show 4th argument of rt_sigprocmask() in strace, Laurent Vivier, 2023/02/04
- [PULL 22/22] linux-user: Allow sendmsg() without IOV, Laurent Vivier, 2023/02/04
- [PULL 20/22] linux-user: Enhance strace output for various syscalls, Laurent Vivier, 2023/02/04
- [PULL 09/22] linux-user: add more netlink protocol constants, Laurent Vivier, 2023/02/04
- [PULL 03/22] linux-user/strace: Add output for execveat() syscall, Laurent Vivier, 2023/02/04
- [PULL 04/22] linux-user/syscall: Extract do_execve() from do_syscall1(), Laurent Vivier, 2023/02/04
- [PULL 05/22] linux-user/syscall: Implement execveat(), Laurent Vivier, 2023/02/04
- [PULL 18/22] linux-user: Add emulation for MADV_WIPEONFORK and MADV_KEEPONFORK in madvise(), Laurent Vivier, 2023/02/04
- [PULL 16/22] linux-user: Fix /proc/cpuinfo output for hppa,
Laurent Vivier <=
- [PULL 13/22] linux-user: Improve strace output of getgroups() and setgroups(), Laurent Vivier, 2023/02/04
- [PULL 21/22] linux-user: Implement SOL_ALG encryption support, Laurent Vivier, 2023/02/04
- [PULL 08/22] linux-user: fix strace build w/out munlockall, Laurent Vivier, 2023/02/04
- [PULL 14/22] linux-user: move target_flat.h to target subdirs, Laurent Vivier, 2023/02/04
- [PULL 12/22] linux-user: Add strace output for clock_getres_time64() and futex_time64(), Laurent Vivier, 2023/02/04
- Re: [PULL 00/22] Linux user for 8.0 patches, Peter Maydell, 2023/02/04