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