Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/sys/arch/amd64/amd64



On Sun, Jun 23, 2019 at 09:17:26AM +0200, Maxime Villard wrote:
> Le 22/06/2019 à 22:29, maya%netbsd.org@localhost a écrit :
> > On Fri, Dec 01, 2017 at 09:22:45PM +0000, Maxime Villard wrote:
> > > Module Name:	src
> > > Committed By:	maxv
> > > Date:		Fri Dec  1 21:22:45 UTC 2017
> > > 
> > > Modified Files:
> > > 	src/sys/arch/amd64/amd64: machdep.c process_machdep.c
> > > 
> > > Log Message:
> > > Don't even bother with the trap frame, and force the default values.
> > 
> > 
> > What's the rationale?
> > Not getting the correct values for registers in getmcontext is
> > unexpected and weird.
> 
> FYI, in 64bit mode, x86 does not enforce segmentation. You can set whatever
> base/limit in the segregs, it doesn't get applied.
> 
> Moreover, certain instructions like 'syscall' force certain segregs to default
> values, regardless of what userland had set.
> 
> Also, if you look at the commit before, you can see I had found an info leak
> caused by the fact that we were fetching the segregs without masking them
> properly.
> 
> So, given that (1) these segregs have no functional change, (2) some are forced
> to default values anyway, and (3) the way we were fetching them had already
> proven to be buggy, I just dropped the thing and set the default values.
> 
> This is expected and normal, likely prevents future bugs, and also simplifies
> the understanding of USER_LDT.

I don't know what things meant for segmentation, but at least FS got
repurposed to be the thread pointer in the ABI programs linking with C
use (and programs not calling C code go wild with their register usage).


Home | Main Index | Thread Index | Old Index