我应该在隔离的核心上看到这些进程吗?

我应该在隔离的核心上看到这些进程吗?

我正在尝试验证我的 Linux 版本是否按预期运行。我使用isolcpus内核命令行参数来隔离在 RISC-V SPIKE 模拟器上模拟的两核机器的一个核心。我希望在隔离的核心上运行进程而不会中断。

当我启动进入 linux 时,/proc/cmdline包含了isolcpus=1预期的内容。但是当我检查正在运行的进程的核心关联性时,我发现有些进程仍在 cpu1 上:

ps -A -o pid,cmd,psr
  PID CMD                         PSR
    1 init                          0
    2 [kthreadd]                    0
    3 [rcu_gp]                      0
    4 [rcu_par_gp]                  0
    5 [slub_flushwq]                0
    6 [netns]                       0
    7 [kworker/0:0-events]          0
    8 [kworker/0:0H-events_highpr   0
    9 [kworker/u4:0-events_unboun   0
   10 [mm_percpu_wq]                0
   11 [rcu_tasks_trace_kthread]     0
   12 [ksoftirqd/0]                 0
   13 [rcu_sched]                   0
   14 [migration/0]                 0
   15 [kworker/0:1-events]          0
   16 [cpuhp/0]                     0
   17 [cpuhp/1]                     1
   18 [migration/1]                 1
   19 [ksoftirqd/1]                 1
   20 [kworker/1:0-events]          1
   21 [kworker/1:0H]                0
   22 [kdevtmpfs]                   0
   23 [inet_frag_wq]                0
   24 [kauditd]                     0
   25 [khungtaskd]                  0
   26 [oom_reaper]                  0
   27 [writeback]                   0
   28 [kcompactd0]                  0
   29 [kblockd]                     0
   30 [ata_sff]                     0
   31 [kworker/1:1-mm_percpu_wq]    1
   32 [rpciod]                      0
   33 [kworker/0:1H]                0
   34 [xprtiod]                     0
   35 [kworker/u4:1-events_unboun   0
   36 [kswapd0]                     0
   37 [nfsiod]                      0
   38 [khvcd]                       0
   39 [uas]                         0
   40 [mld]                         0
   41 [ipv6_addrconf]               0
   49 [kworker/u4:2-events_unboun   0
   69 /sbin/syslogd -n              0
   73 /sbin/klogd -n                0
   90 -/bin/sh                      0
  110 ps -A -o pid,cmd,psr          0

它们只是内核程序,如果我手动将任务分配给 cpu1,我怀疑它们会坐在核心上侦听。

所以我的问题是:如果我正确隔离了核心,我应该在核心上看到的最小进程集是什么?如果这个集合不为空,那么他们在做什么?作为奖励,这个ps命令是否足以验证它isolcpus是否按我的预期工作?

注意:让我认为这可能行不通的是我已经读过它/sys/devices/system/cpu/isolated并且/sys/devices/system/cpu/present应该是彼此相反的。但我看到:

# cat /sys/devices/system/cpu/isolated
1
# cat /sys/devices/system/cpu/present
0-1

相关内容