qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]