These limits apply to the entire system:
On ARM platforms, the limit is actually on the number of separate address spaces; you could have more processes if they happen to be sharing an address space because of vfork() , but that's very unusual.
These limits apply to each process:
Priority 0 is used for the idle thread; by default, priorities of 64 and greater are privileged, so only processes with an effective user ID of 0 (that is, root) can use them. Non-root processes can use priorities from 1 through 63.
You can change the range of privileged priorities with the -P option for procnto . You can append an s or S to this option if you want out-of-range priority requests by default to saturate at the maximum allowed value instead of resulting in an error.