lkml.org 
[lkml]   [2006]   [Jul]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 2/2] i386 TIF flags for debug regs and io bitmap in ctxsw
In-Reply-To: <20060704072939.GC5902@frankl.hpl.hp.com>

On Tue, 4 Jul 2006 00:29:39 -0700, Stephane Eranian wrote:

> Following my discussion with Andi. Here is a patch that introduces
> two new TIF flags to simplify the context switch code in __switch_to().
> The idea is to minimize the number of cache lines accessed in the common
> case, i.e., when neither the debug registers nor the I/O bitmap are used.

I get a 5-10% speedup in task switch times with this patch.
Some very minor comments:


> <signed-off-by>: eranian@hpl.hp.com

Should be: Signed-off-by: Stephane Eranian <eranian@hpl.hp.com>


> + if (test_tsk_thread_flag(next_p, TIF_IO_BITMAP) == 0) {

preferred:

if (!test_tsk_thread_flag(next_p, TIF_IO_BITMAP)) {


> @@ -674,18 +692,9 @@ struct task_struct fastcall * __switch_t
> /*
> * Now maybe reload the debug registers
> */

/*
* Now maybe reload the debug registers and/or IO bitmap
*/


And this should be added to the patch:

--- 2.6.17-nb.orig/arch/i386/kernel/process.c
+++ 2.6.17-nb/arch/i386/kernel/process.c
@@ -360,13 +360,12 @@ EXPORT_SYMBOL(kernel_thread);
*/
void exit_thread(void)
{
- struct task_struct *tsk = current;
- struct thread_struct *t = &tsk->thread;
-
/* The process may have allocated an io port bitmap... nuke it. */
- if (unlikely(NULL != t->io_bitmap_ptr)) {
+ if (unlikely(test_thread_flag(TIF_IO_BITMAP))) {
int cpu = get_cpu();
struct tss_struct *tss = &per_cpu(init_tss, cpu);
+ struct task_struct *tsk = current;
+ struct thread_struct *t = &tsk->thread;

kfree(t->io_bitmap_ptr);
t->io_bitmap_ptr = NULL;
--
Chuck
"You can't read a newspaper if you can't read." --George W. Bush
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
\
 
 \ /
  Last update: 2006-07-04 23:31    [W:0.045 / U:0.124 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site