[rvm-core] Thread TID in Linux when using -X:processors=all

View: New views
4 Messages — Rating Filter:   Alert me  

[rvm-core] Thread TID in Linux when using -X:processors=all

by frederick.ryckbosch-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi,

I'm Frederick Ryckbosch, a computer science student at the university  
of Gent. For my master thesis I'm trying to integrate the IBS  
(instruction based sampling) of AMD in Jikes RVM. I have a couple of  
questions about this.

I'm using a Linux 32 bit OS and jikes-3.0.0. The first thing I have to  
do is initialize the counters in each thread.
* Can I do this in GreenScheduler and GreenProcessor ?
* In the same way the affinity of the threads is set ?

There is one signal handler that will handle the overflow of the  
counters for all my threads. To read the correct counter, I use the  
thread's TID. Normally in Linux, when starting a number of threads,  
their TID is pid, pid+1, pid+2 and so on. This does not seem to be the  
case in the Jikes RVM. When starting with -X:processors=all (on  
QuadCore), 5 threads are started in stead of 4 thread. Only 4 threads  
are used by Java. The TIDS's are : pid, pid+12, pid+13, pid+14. Is  
this always the case ? What happend to the other 11 TID's ?

I hope somebody can answer these questions. Thanks in advance !
Greetings,
Frederick Ryckbosch

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Jikesrvm-core mailing list
Jikesrvm-core@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-core

Re: [rvm-core] Thread TID in Linux when using -X:processors=all

by David P Grove :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Frederick Ryckbosch <frederick.ryckbosch@...> wrote on 10/05/2008 09:06:12 AM:

> I'm using a Linux 32 bit OS and jikes-3.0.0. The first thing I have to  
> do is initialize the counters in each thread.
> * Can I do this in GreenScheduler and GreenProcessor ?
> * In the same way the affinity of the threads is set ?


My guess would be yes.  It might be useful to look at this old patch (http://sourceforge.net/tracker/index.php?func=detail&aid=1613215&group_id=128805&atid=723235) that was HPM support for AIX/PowerPC.  It's not likely to be directly useful, and it's a couple years out-of-date, but it might point to places in the code where you can might want to make changes for what you are doing.

--dave


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Jikesrvm-core mailing list
Jikesrvm-core@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-core


Re: [rvm-core] Thread TID in Linux when using -X:processors=all

by itkovian :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Frederik,

On 05 Oct 2008, at 15:06, Frederick Ryckbosch wrote:

> Hi,
>
> I'm Frederick Ryckbosch, a computer science student at the university
> of Gent. For my master thesis I'm trying to integrate the IBS
> (instruction based sampling) of AMD in Jikes RVM. I have a couple of
> questions about this.
>
> I'm using a Linux 32 bit OS and jikes-3.0.0. The first thing I have to
> do is initialize the counters in each thread.
> * Can I do this in GreenScheduler and GreenProcessor ?
> * In the same way the affinity of the threads is set ?
>
> There is one signal handler that will handle the overflow of the
> counters for all my threads. To read the correct counter, I use the
> thread's TID. Normally in Linux, when starting a number of threads,
> their TID is pid, pid+1, pid+2 and so on. This does not seem to be the
> case in the Jikes RVM. When starting with -X:processors=all (on
> QuadCore), 5 threads are started in stead of 4 thread. Only 4 threads
> are used by Java. The TIDS's are : pid, pid+12, pid+13, pid+14. Is
> this always the case ? What happend to the other 11 TID's ?

I might be wrong, but is there not an extra thread started that wakes  
up each time the RVM has to check for a threadswitch? This used to be  
the case in the VM back from April 10th, 2006 (the VM we used in our  
paper 'Using HPM-Sampling to Drive Dynamic Compilation'). This thread  
executes the libc nanosleep() fuction. Upon awakening it sets a bit  
that can be checked in a yieldpoint, thereby notifying the VM that it  
should execute a threadswitch.

At this moment, I have no idea why the tid's should be off 11 places.  
What configuration are you running?

-- Andy

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Jikesrvm-core mailing list
Jikesrvm-core@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-core

Re: [rvm-core] Thread TID in Linux when using -X:processors=all

by Andy Georges :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Frederik,

On 05 Oct 2008, at 15:06, Frederick Ryckbosch wrote:

> Hi,
>
> I'm Frederick Ryckbosch, a computer science student at the university
> of Gent. For my master thesis I'm trying to integrate the IBS
> (instruction based sampling) of AMD in Jikes RVM. I have a couple of
> questions about this.
>
> I'm using a Linux 32 bit OS and jikes-3.0.0. The first thing I have to
> do is initialize the counters in each thread.
> * Can I do this in GreenScheduler and GreenProcessor ?
> * In the same way the affinity of the threads is set ?
>
> There is one signal handler that will handle the overflow of the
> counters for all my threads. To read the correct counter, I use the
> thread's TID. Normally in Linux, when starting a number of threads,
> their TID is pid, pid+1, pid+2 and so on. This does not seem to be the
> case in the Jikes RVM. When starting with -X:processors=all (on
> QuadCore), 5 threads are started in stead of 4 thread. Only 4 threads
> are used by Java. The TIDS's are : pid, pid+12, pid+13, pid+14. Is
> this always the case ? What happend to the other 11 TID's ?

I might be wrong, but is there not an extra thread started that wakes  
up each time the RVM has to check for a threadswitch? This used to be  
the case in the VM back from April 10th, 2006 (the VM we used in our  
paper 'Using HPM-Sampling to Drive Dynamic Compilation'). This thread  
executes the libc nanosleep() fuction. Upon awakening it sets a bit  
that can be checked in a yieldpoint, thereby notifying the VM that it  
should execute a threadswitch.

At this moment, I have no idea why the tid's should be off 11 places.  
What configuration are you running?

-- Andy

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Jikesrvm-core mailing list
Jikesrvm-core@...
https://lists.sourceforge.net/lists/listinfo/jikesrvm-core