Port-sparc64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

not exactly a ray of sunshine with new SPARC hardware



On 10/25/26 12:27, Tony Rodriguez wrote:


On Oct 25, 2026, at 7:10 AM, Dennis Clarke <dclarke%blastwave.org@localhost> wrote:

On 10/25/26 09:39, Palle Lyckegaard wrote:
On Sun, 25 Oct 2026, Dennis Clarke wrote:
I took a break from the NetBSD experiment and moved over to Gentoo
Linux. Well guess what? It makes a bit of progress and then just locks
up as frozen. Over and over I would reboot and go through the motions
and then Linux would just freeze.

Regarding Linux, once gain many of the patches for sparc64 should be in
 the Linux 7.4 kernel...
Yes, you know far better than I :

https://lore.kernel.org/lkml/20250724-vdso-sparc64-generic-2-v1-0-e376a3bd24d1%linutronix.de@localhost/

However I believe none of it because it clearly says :

    "Only tested on QEMU."

With both NetBSD and Linux people are plowing a field that will bring forth no crop. The vast differences between the older SUN4v hardware
and the new S7 and T7 and M8 are vast. So vast that only a manufacturer
could implement the required kernel level code. I have done a few tests
in the last year and they ALL fail. Either instantly or after only a few
hours of time wasted. Every time. No exceptions.

The problems are myriad. Virtual disk layers are a disaster. Compute
load causes virtual memory page faults and then those turn into a kernel
panic or the LDOM just hangs. If the hypervisor tries to flush the
cache or Translation Lookaside Buffer? ( I hd to research this one) on
the other vCPUs then the thing goes bonkers. We get a race condition
and the cpu cores wait for each other and whammo it all locks up. Dead.

The situation is a bloody mess on hardware that no one owns anyways. The
old SPARC machines and the old Niagara stuff likely works okay. However
the new gear? Not unless a manufacturer steps up to the plate and is
highly motivated. We are far far better to just get the IBM POWER9 or
POWER10 servers and then everything works.[1]

--
--
Dennis Clarke
RISC-V/SPARC/PPC/ARM/CISC
UNIX and Linux spoken

[1] I made no mention of :
https://www.kernel.org/doc/html/v7.3/arch/sparc/oradax/oracle-dax.html
    That seems to be a trivial bit from ORACLE to allow access to the
    snazzy Data Analytics Accelerator ( DAX ). This is trivial when we
    have Solaris 11.4 :

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <dax.h>

int main() {

    dax_context_t *ctx = NULL;
    dax_status_t status;
    uint32_t api_version = 0;

    printf("INFO : initialize native SPARC DAX context\n");

    /* TODO : see dax_thread_init(3DAX) for all return values */
    status = dax_thread_init(1, 1, 0, NULL, &ctx);

    if (status != DAX_SUCCESS) {
        fprintf(stderr, "FAIL : initialize DAX thread context\n");
        fprintf(stderr, "     : please verify DAX module is loaded\n");
        return EXIT_FAILURE;
    }
    printf("INFO : initialized DAX context success\n");

    status = dax_version(ctx, &api_version);
    if (status == DAX_SUCCESS) {
        printf("INFO : libdax API version v%u\n", api_version);
    } else {
        fprintf(stderr,"WARN : fail query hardware version property\n");
        fprintf(stderr,"     : status: %d\n", status);
    }

    /* Clean up the context allocation and release
     * the hardware thread queue
     */
    printf("INFO : releasing DAX hardware context\n");
    dax_thread_fini(ctx);

    printf("INFO : DAX hardware working\n");
    return EXIT_SUCCESS;

}

neptune $ echo $CC
/opt/developerstudio12.6/bin/cc
neptune $ echo $CFLAGS
-m64 -xtarget=S7 -xcache=16/32/4/8:256/64/8/16:8192/64/8/32 -g -xO0 -mc -xs -errfmt=error -erroff=%none -errshort=full -errtags=yes -errwarn=%none -ftrap=%none -xbuiltin=%none -xildoff -xlibmieee -xstrconst -xcode=pic32 -xmemalign=8s -xnolibmil -xunroll=1 -xdepend -xregs=no%appl -xdebugformat=dwarf
neptune $ echo $CPPFLAGS
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
neptune $

neptune $ $CC $CFLAGS $CPPFLAGS -o dax dax.c -ldax
neptune $
neptune $ ./dax
INFO : initialize native SPARC DAX context
INFO : initialized DAX context success
INFO : libdax API version v1
INFO : releasing DAX hardware context
INFO : DAX hardware working
neptune $
neptune $ uname -a
SunOS neptune 5.11 11.4.90.212.0 sun4v sparc sun4v non-virtualized
neptune $

I have no idea what you would get with Linux. Any BSD? nope. good luck.




Home | Main Index | Thread Index | Old Index