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]

Kostik Belousov kostikbel at gmail.com
Wed Aug 13 14:08:24 UTC 2008


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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-amd64/attachments/20080813/b85ccd64/attachment.pgp


More information about the freebsd-amd64 mailing list