If you run command “cat /proc/cmdline” you will find this near the end of the kernel command line: isolcpus=1-2
…which means only tasks specifically scheduled on those cores will run (these are the Denver cores…core 0 is the first core, cores 1 and 2 are Denver).
In command line parameters, if those parameters are repeated, then in most cases the last version of the parameter is the one actually used. This means that if you see “isolcpus=1-2”, and this is the only occurrence of this, then you could simply edit this out of the “/boot/extlinux/extlinux.conf” file’s “APPEND” line and the parameter would no longer isolate those 2 cores; or, you could put this at the end of the APPEND line (which is a space-delimited line), and this would also disable that feature: isolcpus=
FYI, you would use “taskset” if you wanted to manually schedule something on one of those cores.
Originally (earlier L4T releases) isolcpus was not used. I don’t know the actual story behind adding this, but I will guess it went something like this: The Denver cores have advantages and disadvantages, such as lower power consumption for a given amount of work done, but higher latency at starting up, e.g., loading microcode. People would have been profiling over time to see about performance, and may have noticed the Denver cores had more latency. Those cores are best manually assigned to tasks appropriate for longer batch operations, and some people probably started manually assigning those tasks. On the other hand, it doesn’t help much to assign a task there if other processes are also randomly running there, so I will guess that this is when “isolcpus=1-2” was added. There just wasn’t much documentation to make it obvious of why it was there. Since it is just a kernel command line parameter it takes about 10 seconds of editing to remove it, but unless someone is aware of it, then it is a “big deal”.