Re: HMP scheduling on FreeBSD
- Reply: Mark Millard : "Re: HMP scheduling on FreeBSD"
- Reply: Minsoo Choo : "Re: HMP scheduling on FreeBSD"
- Reply: David Chisnall : "Re: HMP scheduling on FreeBSD"
- In reply to: Minsoo Choo : "Re: HMP scheduling on FreeBSD"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 16 Jan 2026 04:37:21 UTC
On Thu, 15 Jan 2026 at 18:05, Minsoo Choo <minsoochoo0122@proton.me> wrote: > > Hmm: https://www.nxp.com/docs/en/data-sheet/IMX7DCEC.pdf > > > > looks to be a counter example, mixing a pair of Cortex-A7 CPUs and a > > Cortex-M4 in the same SOC (my guess for "chip") --with separate > > connections to the AXI and AHB Switch Fabric, sharing External Memory > > and Internal Memory and everything else on that fabric. > > > > From second page: "Arm Cortex-A7 plus Arm Cortex-M4—Heterogeneous Multicore Processing architecture enables the device to run an open operating system like Linux/Android on the Cortex-A7 core and an RTOS like FreeRTOS™ on the Cortex-M4 core." This is not technically big.LITTLE. > Yeah. Linux has some memory FIFO/doorbell framework now for communication between chips on a shared AXI bus to support this style compute. Lots of vendors invented their own IPC layers for comms between MCUs, DSPs and the Cortex-A AP cores and then .. well, it's a mess. :-) > For big.LITTLE, manufacturers cannot make any combinations of arm cores and call it "heterogeneous". big and LITTLE cores have their pair since design stage, such as A7-A15 and A53-A57. Wikipedia's page on ARM big.LITTLE [1] shows three ways to arrange those cores for operating systems. My proposed design is the third (and the latest) one called heterogeneous multi-processing (or HMP) which lets all cores to work concurrently. There are systems shipping right now with three types of AP cores on one die. I've had to debug systems in the past with the big/little cores having different cache line sizes. It's a mess. Manufacturers will do whatever they can and patch linux to do whatever they need to. :-) I've also seen Linux software literally pass the output of "cat /proc/cpuinfo" to figure out this mess and then will do utterly baffling things like decide upon cache management, cpu workload scheduling, etc based on matching on the contents of said /proc/cpuinfo. I also believe there are some feature differences between the Intel power/efficiency cores? I haven't dug too deeply into it. That's why I'd like to figure out how to describe to userland and the rest of the kernel all these bits and pieces. The HMP stuff is a good move towards the scheduler side of stuff but I really don't want it wrapped up in some "the kernel will just do it magically" without letting some policy stuff be configured. -adrian