Well, according to the man page:
```
       Cpusets are integrated with the sched_setaffinity(2) scheduling
       affinity mechanism and the mbind(2) and set_mempolicy(2) memory-
       placement mechanisms in the kernel.  Neither of these mechanisms let
       a process make use of a CPU or memory node that is not allowed by
       that process's cpuset.  If changes to a process's cpuset placement
       conflict with these other mechanisms, then cpuset placement is
       enforced even if it means overriding these other mechanisms.  The
       kernel accomplishes this overriding by silently restricting the CPUs
       and memory nodes requested by these other mechanisms to those allowed
       by the invoking process's cpuset.  This can result in these other
       calls returning an error, if for example, such a call ends up
       requesting an empty set of CPUs or memory nodes, after that request
       is restricted to the invoking process's cpuset.
```

The problem in your example is that I don't process the ```Cpus_allowed_list``` as a mask.