Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 08 Jun 2004 09:17:41 +0800
From:      David Xu <davidxu@freebsd.org>
To:        Peter Wemm <peter@wemm.org>
Cc:        freebsd-threads@freebsd.org
Subject:   Re: [tjr@FreeBSD.org: cvscommit:src/lib/libpthread/arch/amd64/amd 64 context.S]
Message-ID:  <40C513B5.8070406@freebsd.org>
In-Reply-To: <200406071810.23069.peter@wemm.org>
References:  <200406071810.23069.peter@wemm.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Peter Wemm wrote:

> On Monday 07 June 2004 06:10 pm, David Xu wrote:
> 
>>Is there any reason to use memory indirect jump ? did you
>>have benchmarked context switch speed before and after this commit ?
>>I won't use such indirect jump in speed sensitive case, it is
>>not CPU branch trace cache friendly, it is better to use
>>ret to match call in up level.
> 
> 
> Because the return address is already on the higher level stack frame, 
> and copying it (read/write/ret) is more awkward than the read+indirect 
> jump.  Unfortunately, we can't indirectly access the flags register.
> 
I would like someone to test it:
http://people.freebsd.org/~davidxu/kse/test/ctxswitch.c
tell me the result before and after this commit.


> 
>>David Xu
>>
>>Tim Robbins wrote:
>>
>>>Anyone who has resorted to using libc_r instead of libpthread on
>>>amd64 should update their sources (ensuring they get context.S
>>>revision 1.6), rebuild and reinstall libpthread (or world), then
>>>give it another try. The bug I just fixed looks to have been
>>>responsible for the mysterious crashes I was seeing in
>>>Mozilla/Firefox, XMMS and GNOME.
>>>
>>>
>>>Tim
>>>
>>>----- Forwarded message from "Tim J. Robbins" <tjr@FreeBSD.org>
>>>-----
>>>
>>>From: "Tim J. Robbins" <tjr@FreeBSD.org>
>>>Date: Mon, 7 Jun 2004 21:25:17 +0000 (UTC)
>>>To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org,
>>>	cvs-all@FreeBSD.org
>>>Subject: cvs commit: src/lib/libpthread/arch/amd64/amd64 context.S
>>>X-FreeBSD-CVS-Branch: HEAD
>>>Precedence: bulk
>>>X-Loop: FreeBSD.ORG
>>>X-Bogosity: No, tests=bogofilter, spamicity=0.000000,
>>>version=0.15.7
>>>
>>>tjr         2004-06-07 21:25:16 UTC
>>>
>>>  FreeBSD src repository
>>>
>>>  Modified files:
>>>    lib/libpthread/arch/amd64/amd64 context.S
>>>  Log:
>>>  Avoid clobbering the red zone when running on the new context's
>>>stack in _amd64_restore_context().
>>>
>>>  Revision  Changes    Path
>>>  1.6       +5 -0     
>>>src/lib/libpthread/arch/amd64/amd64/context.S
>>>
>>>----- End forwarded message -----
>>>_______________________________________________
>>>freebsd-threads@freebsd.org mailing list
>>>http://lists.freebsd.org/mailman/listinfo/freebsd-threads
>>>To unsubscribe, send any mail to
>>>"freebsd-threads-unsubscribe@freebsd.org"
>>
>>_______________________________________________
>>freebsd-amd64@freebsd.org mailing list
>>http://lists.freebsd.org/mailman/listinfo/freebsd-amd64
>>To unsubscribe, send any mail to
>>"freebsd-amd64-unsubscribe@freebsd.org"
> 
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?40C513B5.8070406>