[Gems-users] Tourmaline and scheduling


Date: Fri, 28 Sep 2007 09:37:51 +0100 (BST)
From: horsnelm@xxxxxxxxxxxx
Subject: [Gems-users] Tourmaline and scheduling
Hi,

I've been looking at the code inside the tourmaline TM module of the gems
package. I'm trying to run some benchmarks, in particular the stamp-0.9.4
benchmarks, and wondered if you could comment on the scheduling policy and
how you have used tourmaline, or gems in general, to generate your
results.

I can see in the tourmaline code, that when you begin a transaction you
disable interrupts in the processor registers, which means that until the
transaction resolves it cannot be interrupted. You switch back on
interrupts when the transaction commits or aborts.

Is it not the case that the operating system threads will interleave with
the transactions, competing for the cpu time? Do you prevent this from
happening by changing the scheduling policy in the OS, or do you measure
your results in some other manner? The reason I ask, is that when running
say a 4 threaded application, on a 4 cpu architecture, transactions
infrequently overlap as they are scheduled according to the OS. Ideally
I'd like the transactional threads to run as concurrently as possible to
look at the interactions between them.

Thanks,

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