Why some processes(even they are user processes) could not be migrated to a certain cpu by `cpuset(7)`?

123 Views Asked by At

Why some processes could not be migrated to a certain cpu by cpuset(7) while some processes could?

I found that these processes could not be really migrated to a certain cpu(Though when you check the cpuset filesystem,it seems ok.But if check the affinity of these processes by top or htop, you could find the cpuset does not work for these processes indeed.):

     /sbin/init splash
     /usr/sbin/rpc.idmapd
     /lib/systemd/systemd-timesyncd
     /lib/systemd/systemd-timesyncd
     /usr/sbin/cups-browsed
     /usr/sbin/sshd -D
     /sbin/dhclient -d -q -sf /usr/lib/NetworkManager/nm-dhcp-helper -pf 
     /var/run/dhclient-
     /usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-
     sshd: john [priv]
     sshd: john [priv]
     sshd: john@notty
     /usr/lib/openssh/sftp-server
     lightdm --session-child 12 15
     upstart-file-bridge --daemon --user
     /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
     /usr/lib/at-spi2-core/at-spi-bus-launcher
     /usr/bin/dbus-daemon --config-file=/etc/at-spi2/accessibility.conf --nofork --print-addre
     /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
     /usr/lib/update-notifier/system-crash-notification
     /usr/lib/x86_64-linux-gnu/hud/hud-service
     /usr/lib/dconf/dconf-service
     /usr/lib/x86_64-linux-gnu/indicator-power/indicator-power-service
     /usr/lib/x86_64-linux-gnu/indicator-power/indicator-power-service
     /usr/lib/x86_64-linux-gnu/indicator-datetime/indicator-datetime-service
     /usr/lib/x86_64-linux-gnu/indicator-sound/indicator-sound-service
     /usr/lib/x86_64-linux-gnu/indicator-printers/indicator-printers-service
     /usr/lib/evolution/evolution-source-registry
     /usr/lib/evolution/evolution-source-registry
     /usr/lib/colord/colord
     /usr/lib/colord/colord
     /usr/lib/evolution/evolution-calendar-factory
     /usr/bin/gnome-software --gapplication-service
     /usr/lib/unity-settings-daemon/unity-fallback-mount-helper
     /usr/lib/gvfs/gvfs-udisks2-volume-monitor
     /usr/lib/gvfs/gvfs-udisks2-volume-monitor
     /usr/lib/udisks2/udisksd --no-debug
     /usr/lib/gvfs/gvfs-gphoto2-volume-monitor
     /usr/lib/evolution/evolution-calendar-factory-subprocess --factory contacts --bus-name or
     zeitgeist-datahub
1

There are 1 best solutions below

3
On

I think that may because your computer use NUMA model rather than SMP model. This can solve the problem, but I'm not sure if that is the reason.