4 ms·
The dream I always had with big.little designs was the ability to reduce context-switch related load. It seems like right now, we're interrupting the cores eve
by hakfoo 5y ago
The dream I always had with big.little designs was the ability to reduce context-switch related load.
It seems like right now, we're interrupting the cores every few tens to hundreds of milliseconds. Even if the scheduler says "Okay, nothing else worth running, resume what you're doing", you've still burned precious cache and branch predictor space.
If we knew that most of the "interactive" stuff that had to be snappy-- the OS, your UI threads, and any other tasks, were tossed on other "little" cores, you could reserve a "big" core with more "cooperative multitasking" semantics-- you'd only have to only yield to the scheduler when you're ready. Maybe add a (comparatively) very long watchdog to (maybe 30 seconds or a few minutes) to protect against someone reserving a core and promptly crashing. Then you can have a light-weight "pet the watchdog" operation instead of a full context switch run through the scheduler.