[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] linux-user: Enhance /proc/cpuinfo output for sparc, hppa and
From: |
Laurent Vivier |
Subject: |
Re: [PATCH] linux-user: Enhance /proc/cpuinfo output for sparc, hppa and m68k |
Date: |
Tue, 13 Dec 2022 20:31:37 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1 |
Le 13/12/2022 à 17:10, Helge Deller a écrit :
The sparc, hppa and m68k architectures provide 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
Why don't they use something like system("getconf _NPROCESSORS_CONF") ?
Avoid such issues by adding a "processor:" line for each of the online
CPUs.
Signed-off-by: Helge Deller <deller@gmx.de>
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 9e2c0a18fc..d58e9b8d10 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
...
@@ -8319,6 +8331,7 @@ static int open_cpuinfo(CPUArchState *cpu_env, int fd)
#if defined(TARGET_M68K)
static int open_hardware(CPUArchState *cpu_env, int fd)
{
+ dprintf(fd, "processor\t: 0\n");
dprintf(fd, "Model:\t\tqemu-m68k\n");
return 0;
}
This is /proc/hardware, not /proc/cpuinfo.
root@debian10-vm1:~# cat /proc/hardware
Model: Macintosh Quadra 800
System Memory: 1025024K
root@debian10-vm1:~# cat /proc/cpuinfo
CPU: 68040
MMU: 68040
FPU: 68040
Clocking: 1529.8MHz
BogoMips: 1019.90
Calibration: 5099520 loops
And on m68k, no one expects to have a "processor" line.
Thanks,
Laurent