struct thread

John Baldwin jhb at FreeBSD.org
Wed Apr 16 11:06:25 PDT 2003


On 16-Apr-2003 Julian Elischer wrote:
> 
> 
> On Wed, 16 Apr 2003, Jeff Roberson wrote:
> 
>> Is td_last_kse necessary?  What about td_lastcpu?  They don't really seem
>> to be used.
> td_last_kse and td_last_cpu were used in some experimental cpu affinity
> code that I gave up on (i.e. ran out of time).
> The idea was that the system would attempt to first schedule
> the thread on teh cpu it was last on , and if not available, on teh kse
> that it last ran on. I never removed the items but was hoping that
> someone, seeing  the names there would feel tempted to
> implement affinity.. (Alfred mumbled about trying it).

kg_slpq isn't used either.

>> 
>> Also, td_locks is unused, although it would be nice to have it
>> implemented.
> 
> I think ithis is a jhb field

It used to be p_locks in struct proc used in the lockmgr code as the
comment indicates and predates both SMPng and KSE:

        short           td_locks;       /* (k) DEBUG: lockmgr count of locks */

I have no attachment to it and it doesn't seem to be used anymore.
 
>> td_sleeplocks should be ifdefed with WITNESS.
> 
> ditto

Is struct thread's size and layout part of the ABI as struct proc's is?
I think it effectively is since libkvm is going to want to examine thread
structures, so I'm afraid a variant sized struct thread would be a bad
thing.  Other than that, td_sleeplocks could be #ifdef WITNESS.

-- 

John Baldwin <jhb at FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve!"  -  http://www.FreeBSD.org/


More information about the freebsd-threads mailing list