Re: processor affinity and GThread
- From: Sebastian Wilhelmi <seppi seppi de>
 
- To: Rick Jones <rick jones2 hp com>
 
- Cc: gtk-list gnome org
 
- Subject: Re: processor affinity and GThread
 
- Date: Wed, 08 Mar 2006 20:14:46 +0100
 
Hi Rick,
> Netperf4 is a multi-threaded network performance benchmark.  There is a 
> main thread in the netperf4 netserver that creates "test threads" which 
> run test-specific code that we really don't want to need/have any 
> platform-specific knowledge.
>
> One of those things is CPU binding - binding the test thread to a 
> specific CPU, CPU set or locality domain.  To "protect" the test thread 
> and its code from that platform-specific knowledge the main netserver 
> thread makes processor affinity calls to set the processor affinity of 
> the newly created test thread.
> 
> This is fine with pthreads under HP-UX and Linux - the main netserver 
> thread can go ahead and make the affinity call(s) and affect the 
> affinity of the test thread.  The affinity calls take platform native 
> thread id's and so the pthread_t is just passed-in.  The test thread 
> remains fat dumb and happy doing its test-specific thing.
> 
> Now, with the addition of the gthread abstraction to port netperf4 to 
> Windows, and ultimately I suppose use of gthreads on other platforms 
> (particularly when netperf4 goes gui with gtk+) I don't have the native 
> thread ID at my fingertips.
> 
> I know it is evil and a "don't do that!" sort of thing, but barring 
> plans to add affinity calls to gthread 
I do not think, this problem is common enough to warrant a GLib
functions.
> (and even then for the interim), 
> it seems I need to know how to peel-back the opaque veneer of the 
> GThread abstration to retrieve the native thread id contained therein.
On one hand you could simply cast the GThread to a pthread_t, but I
would strongly advise against that. What do you think of introducing a
callback, which the thread will call once created. This could do all it
wants with the currently running thread by means of
pthread_self/GetCurrentThread/whatever. That would be simple, working
and clean.
Bye,
Sebastian
-- 
Sebastian Wilhelmi                 |            här ovanför alla molnen
mailto:seppi seppi de              |      är himlen så förunderligt blå
http://seppi.de
[
Date Prev][
Date Next]   [
Thread Prev][
Thread Next]   
[
Thread Index]
[
Date Index]
[
Author Index]