The P cores are most likely the first cores - for example, if you have 8P + 8E, then the P cores will be the first 16 cores (8P cores + their hyperthreads), and the E cores will be the last 8 cores. Generally speaking, during normal desktop use, the programs which have opened GUI windows should be scheduled on P cores for the best responsiveness of user programs, whereas background tasks and services should be put on the E cores. During gaming, the game should be put on P cores and everything else should be on E cores. That's how I would do it if I were coding the scheduler.