Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

DEC Alpha support is somehow still in the mainline Linux kernel...



To be fair, anything that does not support BWX is really painful to deal with.

Take, for example, an 8-bit/byte store. Without BWX the sequence would be something like:

        bic     a0, #3, t1
        and     a0, #3, t4
        ldl     t2, (t1)
        insbl   a1, t4, t3
        mskbl   t2, t4, t2
        bis     t2, t3, t2
        stl     t2, (t1)
        ret     zero, (ra)
But with BWX, it becomes:

        stb     a1, 0(a0)
        ret     zero, (ra)


The ghost of the Alpha's infamously weak memory model coming back to bite it's undead self.


Yeah m68k is still around too and it has more than a decade on alpha.

People use and maintain them and they have very little impact outside arch/ nowadays so they're on the happy side of cost/benefit I guess.


I guess the biggest difference is that Coldfire parts are still being produced (c.f: MCF52256CVN66).

I'm not sure if Alphas are even being made anymore, even 15-20 years ago.


M68k has the advantage that it has a fairly typical memory model.

Alpha's memory model has problems with providing atomic access to single bytes, which i'd imagine in a kernel is a bit annoying :-)

And then there's just the social aspect, m68k was used in the Amiga/Atari/Mac/QL/x68k, so there is a whole generation of us m68k fans who are willing to keep it alive.

Alpha has it's fans (me included!), but it's not exactly the same. So in a way it's no surprise it's slowly bitrotting away.


Since the C compiler can hide that, for core kernel code I think the more problematic thing was Alpha's memory consistency model where (data-)dependent loads accesses did not imply ordering, which is unusual and more burdensome to the programmer than any other ISA.

That required this smp_read_barrier_depends() through the kernel, but actually in recent years that has basically been subsumed by other concurrent access primitives that all the core kernel must use, so I think alpha is no longer much of a problem outside arch/alpha


Ah, my favorite instructions, 'hw_ldl/l', 'hw_stl/c', 'ldl_l', 'stl_c' and their quadword siblings.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: