Re: [Gems-users] Running Transactional Workloads with LogTM


Date: Wed, 21 Mar 2007 11:55:10 -0400
From: "James Poe" <gemsmaillist@xxxxxxxxx>
Subject: Re: [Gems-users] Running Transactional Workloads with LogTM
Hi Enrique,

I'm not using Opal, but thanks for the quick reply as well as the advice on using the debugging system.  I actually had not used it before, and it seems as though it will be very beneficial in solving this problem.

James

On 3/20/07, Enrique Vallejo Gutiérrez <enrique@xxxxxxxxxxxxx> wrote:

Hi James,

 

            Are you using Opal? LogTM is designed to be used with the simple 1-cycle simics model, this is, without Opal. Also, you can try compiling Ruby with the "DEBUG_FLAGS += -DRUBY_DEBUG=true" option (see README.debugging in the Ruby directory) and display the debug messages for the LogTM module:

 

ruby0.debug-filter X

ruby0.debug-verb high

 

            If you do not see any output message (not even for the transaction start) you might probably have overwritten the callback function install in $GEMS/ruby/module/ruby.c. Make sure that the following line exists in the init_local function:

 

SIM_hap_add_callback("Core_Magic_Instruction", (obj_hap_func_t) magic_instruction_callback, NULL);

 

            Otherwise, the BEGIN_TRANSACTION and END_TRANSACTION instructions are considered as nops, and ignored by the simulator. In this case, the simulation works, but transaction properties (atomicity, isolation, etc) are not preserved.

 

            Regards,

 

Enrique Vallejo Gutiérrez

University of Cantabria

http://www.atc.unican.es/~enrique/

 


De: gems-users-bounces@xxxxxxxxxxx [mailto:gems-users-bounces@xxxxxxxxxxx] En nombre de James Poe
Enviado el: martes, 20 de marzo de 2007 3:52
Para: gems-users@xxxxxxxxxxx
Asunto: [Gems-users] Running Transactional Workloads with LogTM

 

Hi all,

This is my first attempt at gathering some transactional results with LogTM protocols, and I seem to be unable to get ruby to notice the transactions.  I am using Gems 1.4, Simics 3.0.21, and the simulated environment is an 8 processor Solaris 9/Sparc.

I have written a few benchmarks, and most of the normal result are as expected (e.g. instruction counts, etc), but all of the transactional specific results are always 0:

transactions_started: 0 [ 0 0 0 0 0 0 0 0 ]
transactions_ended: 0 [ 0 0 0 0 0 0 0 0 ]
instructions_per_transaction: 0 [ 0 0 0 0 0 0 0 0 ]
cycles_per_transaction: 0 [ 0 0 0 0 0 0 0 0 ]
misses_per_transaction: 0 [ 0 0 0 0 0 0 0 0 ]

To help debug, I've written an extremely simple benchmark (I've also written several pthread benchmarks that actually perform computations and have experienced similiar results):

#include <stdlib.h>
#include <stdio.h>
#include "magic-instruction.h"
#include "logtm.h"

int main(int argc, char*argv[])
{
        MAGIC_BREAKPOINT;
        BEGIN_TRANSACTION(0);
        printf("Transaction\n");
        COMMIT_TRANSACTION(0);
        MAGIC_BREAKPOINT;
        printf("Transaction Complete\n");
        return 0;
}

Where "logtm.h" contains:

#define NEW_RUBY_MAGIC_CALL( service )                      \
    __asm__ __volatile__                                    \
    ( "sethi %1, %%g0  !magic service\n\t"                  \
          : /* no outputs */                                \
      : "r" (0), "i" ((service)<<16)                        \
          : "l0" /* clobber register */                     \
        );

#define BEGIN_TRANSACTION(id) NEW_RUBY_MAGIC_CALL((id + 20))
#define COMMIT_TRANSACTION(id) NEW_RUBY_MAGIC_CALL((id + 40))


I believe I have all of the correct configuration settings for using LogTM, and I do not receive any errors and the simulation seems to execute and terminate properly, its just the transactional results are always 0.

Is there something that I am missing?  Anyone have any suggestions?

Thank you in advance,

James


_______________________________________________
Gems-users mailing list
Gems-users@xxxxxxxxxxx
https://lists.cs.wisc.edu/mailman/listinfo/gems-users
Use Google to search the GEMS Users mailing list by adding "site: https://lists.cs.wisc.edu/archive/gems-users/" to your search.



[← Prev in Thread] Current Thread [Next in Thread→]