With Upmpdcli, used the following to shift it
cset proc --move --toset=player --pid $(pgrep upmpdcli) --threads
The upmpdcli processes are successfully shifted to the player CPUset
$ cset proc -l -s player
cset: "player" cpuset of CPUSPEC(2) with 16 tasks running
USER PID PPID SPPr TASK NAME
-------- ----- ----- ---- ---------
upmpdcli 1139 1 Sr60 [upmpdcli]
upmpdcli 1141 1 Sr60 [upmpdcli]
upmpdcli 1145 1 Sr60 [upmpdcli]
upmpdcli 1149 1 Sr60 [upmpdcli]
upmpdcli 1150 1 Sr60 [MHD-listen]
upmpdcli 1151 1 Sr60 [MHD-listen]
upmpdcli 1153 1 Sr60 [upmpdcli]
upmpdcli 1597 1 Sr60 [upmpdcli]
upmpdcli 1599 1 Sr60 [upmpdcli]
upmpdcli 1689 1 Sr60 [upmpdcli]
upmpdcli 5595 1 Sr60 [upmpdcli]
upmpdcli 5638 1 Sr60 [upmpdcli]
upmpdcli 5797 1 Sr60 [upmpdcli]
upmpdcli 5798 1 Sr60 [upmpdcli]
upmpdcli 5840 1 Sr60 [upmpdcli]
upmpdcli 5843 1 Sr60 [MHD-connection]
Mpd have the following PIDs and should be in player CPUset (see above)
$ pgrep mpd
1139
1163
However, Top shows that Mpd can run in all the CPUs
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND P
87 root -86 0 0 0 0 S 10.0 0.0 2:18.91 irq/122-xhci_hc 1
1163 root -61 0 424452 23240 11960 S 6.0 0.1 1:29.56 mpd 3
1139 upmpdcli -61 0 1749136 10220 7796 S 0.7 0.0 0:02.04 upmpdcli 2
Note that Mpd running on its own can be assigned to a CPUset. It appears that the embedded Mpd process in upmpdcli cannot be locked into a CPUset. No idea why...