Pending MFC Reminder [cvs commit: src/sys/amd64/amd64 cpu_switch.S genassym.c src/sys/amd64/ia32 ia32_signal.c src/sys/amd64/include pcb.h src/sys/amd64/linux32 linux32_machdep.c]

John Baldwin jhb at freebsd.org
Wed Aug 13 20:26:13 UTC 2008


On Wednesday 13 August 2008 09:42:10 am Kostik Belousov wrote:
> On Wed, Aug 13, 2008 at 12:22:12AM +0000, MFC Notification Service wrote:
> > Dear Konstantin Belousov,
> > 
> > As you have requested, I would like to notify you that you have
> > committed a change that may be MFC'ed now, as a testing period
> > specified at the time of that commit is over.
> > 
> > For reference purposes following is a copy of your original
> > commit message.
> > 
> > Regards,
> > 
> > Maxim "MFC Reminder" Sobolev
> > P.S. Please contact Maxim Sobolev <sobomax at FreeBSD.org> if you
> > believe that you received this message due to an error.
> > 
> > kib         2008-07-30 11:30:55 UTC
> > 
> >   FreeBSD src repository
> > 
> >   Modified files:
> >     sys/amd64/amd64      cpu_switch.S genassym.c 
> >     sys/amd64/ia32       ia32_signal.c 
> >     sys/amd64/include    pcb.h 
> >     sys/amd64/linux32    linux32_machdep.c 
> >   Log:
> >   SVN rev 180992 on 2008-07-30 11:30:55Z by kib
> >   
> >   Bring back the save/restore of the %ds, %es, %fs and %gs registers for
> >   the 32bit images on amd64.
> >   
> >   Change the semantic of the PCB_32BIT pcb flag to request the context
> >   switch code to operate on the segment registers. Its previous meaning
> >   of saving or restoring the %gs base offset is assigned to the new
> >   PCB_GS32BIT flag.
> >   
> >   FreeBSD 32bit image activator sets the PCB_32BIT flag, while Linux 32bit
> >   emulation sets PCB_32BIT | PCB_GS32BIT.
> >   
> >   Reviewed by:    peter
> >   MFC after:      2 weeks
> >   
> >   Revision  Changes    Path
> >   1.162     +29 -18    src/sys/amd64/amd64/cpu_switch.S
> >   1.169     +1 -0      src/sys/amd64/amd64/genassym.c
> >   1.18      +1 -1      src/sys/amd64/ia32/ia32_signal.c
> >   1.65      +1 -0      src/sys/amd64/include/pcb.h
> >   1.47      +1 -1      src/sys/amd64/linux32/linux32_machdep.c
> 
> This appeared to be a not quite trivial MFC to perform. The reason for
> complication is that the HEAD code for amd64 context switch was changed,
> in particular by the r177535 by peter at .
> 
> The r177535 formally requires r177533 for the definition of the
> TDP_KTHREAD symbol for asm. The definition is needed for optimization
> of the context switch to the "pure kernel thread", introduced in
> r173004 that is not MFCed either, and possibly never be.
> 
> I do not want to backport the code to the old context switch, that would
> mean a rewrite from scratch. Instead, I merged the r177535 (optimization
> of context switch by peter@), and commented out corresponding test in
> the cpu_switch.S for the TDP_KTHREAD.
> 
> I would be glad to get an opinions on the approach taken, and especially
> for the wider testing on the RELENG_7/amd64. The problem better be
> solved for 7.1.
> 
> The patch:
> http://people.freebsd.org/~kib/misc/amd64_ctx.releng_7.4.patch

FYI, in 6.x and 7.x there is P_KTHREAD in p_flags that is what TDP_KTHREAD 
replaced.

-- 
John Baldwin


More information about the freebsd-stable mailing list