KSD/TSD take 2 (was: KSE critical regions)

David Xu davidxu at viatech.com.cn
Thu Jul 24 17:54:00 PDT 2003


----- Original Message ----- 
From: "Julian Elischer" <julian at elischer.org>
To: "David Xu" <davidxu at freebsd.org>
Cc: <deischen at freebsd.org>; <threads at freebsd.org>; <marcel at xcllnt.net>
Sent: Friday, July 25, 2003 8:45 AM
Subject: Re: KSD/TSD take 2 (was: KSE critical regions)


> 
> 
> On Fri, 25 Jul 2003, David Xu wrote:
> 
> > 
> > > 
> > 
> > Dan has two fields in kse_mailbox:
> > 
> > void      *km_ksdaddr;    /* KSE specific data address */
> > uint32_t  km_ksdsize;     /* KSE specific data size */
> > 
> > I think it is used to tell kernel to map start address 
> > of libkse's kse mailbox like above lib_kse_mailbox.
> > 
> > > presently it requires special code to do the segments..
> > > (in teh library)
> > > 
> > > 
> > Did you make some progresses in this area ?
> 
> It requires thatI rewrite the LDT code in WINE
> because wine just clobbers the LDT without looking to see if anyone else
> is using entries..
> 
> 
> My aim was to have a call i386_set_ldt that takes an addr and length
> and returns teh value that needs to be set into a segment register
> in order to access that segment (or error if no more segments
> available). Wine could use it from userland and kse_create could use it
> from inside the kernel to set up a segment that covers the mailbox.
> kse_create would set it into the %gs register of the newly created kse.
>
This sounds good to me.
 
> having it done by by the library with the 'shotgun' code
> is probably good enough for now
> 
> 
OK.




More information about the freebsd-threads mailing list