Skip to contentSkip to conversation

small optimization in ia64_leave_kernel

PATCH New Bob Picco 1 participant 1 message Jan 12, 2005

lore
Share & tools
lore

Bob Picco

author
#0 lore raw

PATCH 1/1 small optimization in ia64_leave_kernel

Hi Tony:

When returning to the kernel and not switching rbs, avoid fetching local_cpu_data. More could possibly be optimized here but limited registers are available and the number of bundles might increase. I didn't pursue any further than predicating two instructions which eliminates a memory fetch.

thanks,

bob

arch/ia64/kernel/entry.S +2 -2
diff -ruNp -X /home/picco/losl/dontdiff linux-2.6.10-orig/arch/ia64/kernel/entry.S linux-2.6.10/arch/ia64/kernel/entry.S
@@ -925,9 +925,9 @@ GLOBAL_ENTRY(ia64_leave_kernel)
 	shr.u r18=r19,16	// get byte size of existing "dirty" partition
 	;;
 	mov r16=ar.bsp		// get existing backing store pointer
-	addl r17=THIS_CPU(ia64_phys_stacked_size_p8),r0
+(pUStk) addl r17=THIS_CPU(ia64_phys_stacked_size_p8),r0
 	;;
-	ld4 r17=[r17]		// r17 = cpu_data->phys_stacked_size_p8
+(pUStk) ld4 r17=[r17]		// r17 = cpu_data->phys_stacked_size_p8
 (pKStk)	br.cond.dpnt skip_rbs_switch
 
 	/*