Actual Sparc memory models? - SUN

This is a discussion on Actual Sparc memory models? - SUN ; Hallo, after reading from various sources about the Sparc memory model I am still left with some rather fundamental questions that I hope somebody here might be able to help with... - Do all Linux and Solaris versions on Sparc ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: Actual Sparc memory models?

  1. Actual Sparc memory models?

    Hallo,

    after reading from various sources about the Sparc memory model I am
    still left with some rather fundamental questions that I hope somebody
    here might be able to help with...

    - Do all Linux and Solaris versions on Sparc always use the TSO model?

    If no,
    - how do I find out which model is currently in use? Is this system-
    wide, process-wide, ...?
    - is there a comprehensiv table listing which Sparc implementations
    support which memory models?
    (Surely it can't be the case that every software developer must look
    at the manual for every single Sparc chip...)

    - ...but I did read some docs, one for some Ultra II, which supported
    all three of PSO, TSO and RMO, and one for some Ultra III which only
    supported TSO; does this mean that PSO and RMO are effectively dead on
    Sparc and need not be taken into consideration anyhow?

    Thank you, Colin


    PS: I am cross-posting this message to comp.sys.sun.hardware and
    comp.programming.threads; you can also reply privately and I will post
    a summary response when possible.

  2. Re: Actual Sparc memory models?


    "Colin" wrote in message
    news:24860d32-8d4f-4e02-8555-eab4c4f9d837@i12g2000prf.googlegroups.com...
    > Hallo,

    [...]
    > - ...but I did read some docs, one for some Ultra II, which supported
    > all three of PSO, TSO and RMO, and one for some Ultra III which only
    > supported TSO; does this mean that PSO and RMO are effectively dead on
    > Sparc and need not be taken into consideration anyhow?

    [...]

    AFAICT, TSO is the way things are in Solaris...

    IMVHO, the advise I would give to you is to program as if you are running
    under the weakest model. This is because the docs state that membar
    instructions are NOP's on memory models that do not need them. For instance,
    on TSO, the only membar instruction that is actually recognized is
    #StoreLoad; all the others are NOP's. Therefore, you can program something
    that makes use of all the proper barriers which means it has the ability to
    run on any SPARC memory model.

    Hope that helps you out a little bit.


+ Reply to Thread