Adrian Chadd posts about Nathan Whitehorn’s findings on FreeBSD on POWER8.
A post to freebsd-ppc from a couple of vmonths ago asked if we had support for POWER8 and offered to provide remote access to anyone interested in working on it. I was sufficiently intrigued that I approached the FreeBSD powerpc hackers to ask about it, and was informed that it’d be nice, but we didn’t have hardware.
After a bit of wrangling of hardware logistics and with the FreeBSD Foundation purchasing a box, a Tyan POWER8 evaluation server appeared. Nathan Whitehorn started poking at it and managed to get a basic “hello world” going, but stalled on issues with the Linux KVM virtualisation environment.
Fast forward a few weeks – he’s figured out the KVM issues, their lack of support for some mandated hypervisor APIs and other bugs – FreeBSD now boots inside of the hypervisor environment and seems stable enough to do development on.
He then found the existing powerpc pmap (physical memory management) code wasn’t very SMP friendly – it works fine on one and two CPU powerpc machines, but this POWER8 evaluation board is a 4-core, 32-thread CPU. So a few days of development went by and he rewrote most of the pmap code to be much more fine grained locked and scale much, much better than the existing code. (He also found the PS3 hypervisor layer isn’t thread-safe.)
What’s been done thus far?