Oracle Linux on SPARC

Last week there were news about Linux on SPARC. Oracle announced their Oracle Linux 6.7 as GA with the Oracle Enterprise Unbreakable Linux Kernel for SPARC T5 and T7 based servers.

This release supports the build in SPARC features like secure memory, the DAX engines and the crypto co processers on Oracle’s own CPUs. You could install it bare metal or in an OVM / LDOM guest. It also comes with support for the LDOM manager so you could use it as a primary domain.

I gave it try on my old T2 server but the installation failed installing grub on that old platform. I tried to manually install grub2 but got a lot of errors with the sun labed vdisk.

So I tried it on a T7-2 server in a LDOM and there everything worked fine.

[root@linux0 ~]# cat /etc/oracle-release
Oracle Linux Server release 6.7
[root@linux0 ~]#
[root@linux0 ~]# uname -a
Linux linux0 2.6.39-500.1.76.el6uek.sparc64 #1 SMP Fri Dec 16 10:47:54 EST 2016 sparc64 sparc64 sparc64 GNU/Linux

[root@linux0 ~]# cat /proc/cpuinfo
cpu             : SPARC-M7
fpu             : SPARC-M7 integrated FPU
pmu             : sparc-m7
prom            : OBP 4.40.1 2016/04/25 06:45
type            : sun4v
ncpus probed    : 16
ncpus active    : 16
D$ parity tl1   : 0
I$ parity tl1   : 0
cpucaps         : flush,stbar,swap,muldiv,v9,blkinit,n2,mul32,div32,v8plus,popc,vis,vis2,ASIBlkInit,fmaf,vis3,hpc,ima,pause,cbcond,adp,aes,des,camellia,md5,sha1,sha256,sha512,mpmul,montmul,montsqr,crc32c
Cpu0ClkTck      : 00000000f65c15b0
Cpu1ClkTck      : 00000000f65c15b0
Cpu2ClkTck      : 00000000f65c15b0
Cpu3ClkTck      : 00000000f65c15b0
Cpu4ClkTck      : 00000000f65c15b0
Cpu5ClkTck      : 00000000f65c15b0
Cpu6ClkTck      : 00000000f65c15b0
Cpu7ClkTck      : 00000000f65c15b0
Cpu8ClkTck      : 00000000f65c15b0
Cpu9ClkTck      : 00000000f65c15b0
Cpu10ClkTck     : 00000000f65c15b0
Cpu11ClkTck     : 00000000f65c15b0
Cpu12ClkTck     : 00000000f65c15b0
Cpu13ClkTck     : 00000000f65c15b0
Cpu14ClkTck     : 00000000f65c15b0
Cpu15ClkTck     : 00000000f65c15b0
MMU Type        : Hypervisor (sun4v)
MMU PGSZs       : 8K,64K,4MB,256MB,2GB,16GB
State:
CPU0:           online
CPU1:           online
CPU2:           online
CPU3:           online
CPU4:           online
CPU5:           online
CPU6:           online
CPU7:           online
CPU8:           online
CPU9:           online
CPU10:          online
CPU11:          online
CPU12:          online
CPU13:          online
CPU14:          online
CPU15:          online
[root@linux0 ~]#
[root@linux0 /]# lscpu
Architecture:          sparc64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Big Endian
CPU(s):                16
On-line CPU(s) list:   0-15
Thread(s) per core:    8
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
L0 cache:              16384
L1i cache:             16384
L2 cache:              262144
L3 cache:              8388608
NUMA node0 CPU(s):     0-15
[root@linux0 /]#


What did not work was the dynamic reconfiguration:

root@primary:~# ldm set-core 4 linux0
Domain linux0 is unable to dynamically reconfigure VCPUs. Please
verify the guest operating system is running and supports VCPU DR.
root@primary:~# ldm set-memory 6g linux0
The linux0 domain does not support the dynamic reconfiguration of memory.
root@primary:~#

I am not really sure why Oracle released “such an old version”. No UEK 3 or 4, just the 2.6, but at least the latest 2.6.39… I am running a beta SPARC linux from Oracle which was avaiable since 2015 and within this release you get 4.1. But the system uses silo (a SPARC lilo boot loader) not grub2 like OL 6.7 for SPARC.

[root@linux1 ~]# cat /etc/redhat-release
Linux for SPARC release 1.0
[root@linux1 ~]# uname -a
Linux linux1 4.1.12-32.el6uek.sparc64 #1 SMP Thu Dec 17 19:27:27 PST 2015 sparc64 sparc64 sparc64 GNU/Linux
[root@linux1 ~]#


[root@linux1 ~]# cat /proc/cpuinfo
cpu             : UltraSparc T2 (Niagara2)
fpu             : UltraSparc T2 integrated FPU
pmu             : niagara2
prom            : OBP 4.30.8.a 2010/05/13 10:36
type            : sun4v
ncpus probed    : 8
ncpus active    : 8
D$ parity tl1   : 0
I$ parity tl1   : 0
cpucaps         : flush,stbar,swap,muldiv,v9,blkinit,n2,mul32,div32,v8plus,popc,vis,vis2,ASIBlkInit
Cpu0ClkTck      : 00000000457646c0
Cpu1ClkTck      : 00000000457646c0
Cpu2ClkTck      : 00000000457646c0
Cpu3ClkTck      : 00000000457646c0
Cpu4ClkTck      : 00000000457646c0
Cpu5ClkTck      : 00000000457646c0
Cpu6ClkTck      : 00000000457646c0
Cpu7ClkTck      : 00000000457646c0
MMU Type        : Hypervisor (sun4v)
MMU PGSZs       : 8K,64K,4MB,256MB
State:
CPU0:           online
CPU1:           online
CPU2:           online
CPU3:           online
CPU4:           online
CPU5:           online
CPU6:           online
CPU7:           online
[root@linux1 ~]#
[root@linux1 ~]# lscpu
Architecture:
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Big Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    4
Core(s) per socket:    2
Socket(s):             1
NUMA node(s):          1
NUMA node0 CPU(s):     0-63
[root@linux1 ~]#

So let’s see what will happen. I am still not sure if I should like it or not 🙂