2.6.16 for linuxulator & 7.0 release

Tijl Coosemans tijl at ulyssis.org
Mon Mar 19 17:19:42 UTC 2007


On Monday 19 March 2007 17:13:28 Jung-uk Kim wrote:
> On Saturday 17 March 2007 09:29 am, Tijl Coosemans wrote:
> > On Friday 16 March 2007 12:00:38 Alexander Leidinger wrote:
> > > In p4 we have the futex/TLS stuff for amd64 but because of the
> > > futexes not completely right part it is not committed to current
> > > yet. As we already have the futex and TLS stuff for i386 on a
> > > similar level in current, I would say we should go ahead and sync
> > > the amd64 stuff. It is not used by default, so we don't break
> > > existing linux stuff and we get the benefit of more people being
> > > able to have a look at it and play with it. So what are your
> > > opinions, shall we give jkim@ the green light to MFp4 the
> > > futex/TLS stuff?
> >
> > You should let an amd64 guru review the tls part in imho. I don't
> > think you can remove these lines for instance: (from
> > linuxolator-p4.diff)
> >
> > ---  sys/amd64/amd64/cpu_switch.S.orig
> > +++  sys/amd64/amd64/cpu_switch.S
> > @@ -104,11 +104,12 @@
> >  	testl	$PCB_32BIT,PCB_FLAGS(%r8)
> >  	jz	1f				/* no, skip over */
> >
> > -	/* Save segment selector numbers */
> > -	movl	%ds,PCB_DS(%r8)
> > -	movl	%es,PCB_ES(%r8)
> > -	movl	%fs,PCB_FS(%r8)
> > [...]
> > -	/* Restore segment selector numbers */
> > -	movl	PCB_DS(%r8),%ds
> > -	movl	PCB_ES(%r8),%es
> > -	movl	PCB_FS(%r8),%fs
> 
> Actually it was dead code, i.e., PCB_32BIT flag was never set from 
> anywhere at all.  I believe it was part of peter's experiment, which
> was never materialized:
> 
> http://docs.freebsd.org/cgi/mid.cgi?200405162243.i4GMhvhh037147

Ah, thanks for clearing this up. So if I understand this correctly,
%fs is never preserved right? That's one big cause of trouble for
win32 programs then.

That log entry mentions to do it ``at user<->kernel transition'';
that's where it happens in the i386 kernel. Those 3 segment registers
are pushed on the stack there (in exception.s). Could something
similar be done on amd64 then?


More information about the freebsd-emulation mailing list