kernel-ark/arch
David Mosberger-Tang 1ba7be7d69 [IA64] Reschedule fsys_bubble_down().
Improvements come from eliminating srlz.i, not scheduling AR/CR-reads
too early (while there are others still pending), scheduling the
backing-store switch as well as possible, splitting the BBB bundle
into a MIB/MBB pair.

Why is it safe to eliminate the srlz.i?  Observe
that we used to clear bits ~PSR_PRESERVED_BITS in PSR.L.  Since
PSR_PRESERVED_BITS==PSR.{UP,MFL,MFH,PK,DT,PP,SP,RT,IC}, we
ended up clearing PSR.{BE,AC,I,DFL,DFH,DI,DB,SI,TB}.  However,

 PSR.BE : already is turned off in __kernel_syscall_via_epc()
 PSR.AC : don't care (kernel normally turns PSR.AC on)
 PSR.I  : already turned off by the time fsys_bubble_down gets invoked
 PSR.DFL: always 0 (kernel never turns it on)
 PSR.DFH: don't care --- kernel never touches f32-f127 on its own
	  initiative
 PSR.DI : always 0 (kernel never turns it on)
 PSR.SI : always 0 (kernel never turns it on)
 PSR.DB : don't care --- kernel never enables kernel-level breakpoints
 PSR.TB : must be 0 already; if it wasn't zero on entry to
	  __kernel_syscall_via_epc, the branch to fsys_bubble_down
	  will trigger a taken branch; the taken-trap-handler then
	  converts the syscall into a break-based system-call.

In other words: all the bits we're clearying are either 0 already or
are don't cares!  Thus, we don't have to write PSR.L at all and we
don't have to do a srlz.i either.

Good for another ~20 cycle improvement for EPC-based heavy-weight
syscalls.

Signed-off-by: David Mosberger-Tang <davidm@hpl.hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2005-04-27 21:20:51 -07:00
..
alpha [PATCH] alpha: key management syscalls 2005-04-21 11:28:26 -07:00
arm [PATCH] ARM: make entry*.S includes more logical 2005-04-26 15:21:02 +01:00
arm26 [PATCH] freepgt: arm26 FIRST_USER_ADDRESS PAGE_SIZE 2005-04-19 13:29:22 -07:00
cris
frv
h8300
i386 [PATCH] fix subarch breakage in amd dual core updates 2005-04-21 16:20:35 -07:00
ia64 [IA64] Reschedule fsys_bubble_down(). 2005-04-27 21:20:51 -07:00
m32r
m68k [PATCH] M68k: Update defconfigs for 2.6.12-rc2 2005-04-18 10:47:34 -07:00
m68knommu
mips
parisc
ppc [PATCH] ppc user annotations: debug_setconetext(2) 2005-04-25 07:55:59 -07:00
ppc64 [PATCH] ppc64: trivial user annotations 2005-04-26 11:26:53 -07:00
s390
sh
sh64
sparc [SPARC]: dump_stack for sparc 2005-04-24 20:46:49 -07:00
sparc64 [PATCH] mostek bogus sparse annotations fixed 2005-04-24 12:28:36 -07:00
um
v850
x86_64 [PATCH] amd64 rt_sigframe user annotation 2005-04-26 07:43:42 -07:00