From: Sapan Bhatia Date: Thu, 9 Apr 2009 20:03:05 +0000 (+0000) Subject: Continuing tweaking this patch... X-Git-Tag: linux-2.6-22-35~2 X-Git-Url: http://git.onelab.eu/?p=linux-2.6.git;a=commitdiff_plain;h=1c7cb80ccbb85fe1fbdaf5d2fdc3a461bce8fed4 Continuing tweaking this patch... --- diff --git a/linux-2.6-590-chopstix-intern.patch b/linux-2.6-590-chopstix-intern.patch index b09339f2a..d9a0c9ab0 100644 --- a/linux-2.6-590-chopstix-intern.patch +++ b/linux-2.6-590-chopstix-intern.patch @@ -1,6 +1,6 @@ -diff -Nurb linux-2.6.22-580/arch/i386/Kconfig linux-2.6.22-590/arch/i386/Kconfig ---- linux-2.6.22-580/arch/i386/Kconfig 2009-04-08 16:36:16.000000000 -0400 -+++ linux-2.6.22-590/arch/i386/Kconfig 2009-04-08 16:37:10.000000000 -0400 +diff -Nurb --exclude='*.cmd' --exclude='*.orig' --exclude='*.swp' --exclude=tags --exclude='*.patch' --exclude='*.diff' --exclude='*.svn*' linux-2.6.22-590/arch/i386/Kconfig linux-2.6.22-591/arch/i386/Kconfig +--- linux-2.6.22-590/arch/i386/Kconfig 2009-03-16 20:49:42.000000000 -0400 ++++ linux-2.6.22-591/arch/i386/Kconfig 2009-03-16 20:58:59.000000000 -0400 @@ -1217,6 +1217,14 @@ source "arch/i386/oprofile/Kconfig" @@ -16,9 +16,8 @@ diff -Nurb linux-2.6.22-580/arch/i386/Kconfig linux-2.6.22-590/arch/i386/Kconfig config KPROBES bool "Kprobes (EXPERIMENTAL)" depends on KALLSYMS && EXPERIMENTAL && MODULES -diff -Nurb linux-2.6.22-580/arch/i386/kernel/asm-offsets.c linux-2.6.22-590/arch/i386/kernel/asm-offsets.c ---- linux-2.6.22-580/arch/i386/kernel/asm-offsets.c 2007-07-08 19:32:17.000000000 -0400 -+++ linux-2.6.22-590/arch/i386/kernel/asm-offsets.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/arch/i386/kernel/asm-offsets.c 2007-07-08 19:32:17.000000000 -0400 ++++ linux-2.6.22-591/arch/i386/kernel/asm-offsets.c 2009-03-16 20:58:59.000000000 -0400 @@ -9,6 +9,7 @@ #include #include @@ -65,9 +64,44 @@ diff -Nurb linux-2.6.22-580/arch/i386/kernel/asm-offsets.c linux-2.6.22-590/arch OFFSET(TI_exec_domain, thread_info, exec_domain); OFFSET(TI_flags, thread_info, flags); OFFSET(TI_status, thread_info, status); -diff -Nurb linux-2.6.22-580/arch/i386/mm/fault.c linux-2.6.22-590/arch/i386/mm/fault.c ---- linux-2.6.22-580/arch/i386/mm/fault.c 2009-04-08 16:36:16.000000000 -0400 -+++ linux-2.6.22-590/arch/i386/mm/fault.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/arch/i386/kernel/entry.S 2009-03-16 20:49:07.000000000 -0400 ++++ linux-2.6.22-591/arch/i386/kernel/entry.S 2009-03-16 20:58:59.000000000 -0400 +@@ -374,6 +374,33 @@ + cmpl $(nr_syscalls), %eax + jae syscall_badsys + syscall_call: ++ /* Move Chopstix syscall probe here */ ++ /* Save and clobber: eax, ecx, ebp */ ++ pushl %eax ++ pushl %ecx ++ pushl %ebp ++ movl %esp, %ebp ++ subl $SPEC_EVENT_SIZE, %esp ++ movl rec_event, %ecx ++ testl %ecx, %ecx ++ jz carry_on ++ # struct event is first, just below %ebp ++ movl %eax, (SPEC_number-EVENT_SIZE)(%ebp) ++ leal -SPEC_EVENT_SIZE(%ebp), %eax ++ movl %eax, EVENT_event_data(%ebp) ++ movl $6, EVENT_event_type(%ebp) ++ movl rec_event, %edx ++ movl $1, 4(%esp) ++ leal -EVENT_SIZE(%ebp), %eax ++ movl %eax, (%esp) ++ call rec_event_asm ++carry_on: ++ addl $SPEC_EVENT_SIZE, %esp ++ popl %ebp ++ popl %ecx ++ popl %eax ++ /* End chopstix */ ++ + call *sys_call_table(,%eax,4) + movl %eax,PT_EAX(%esp) # store the return value + syscall_exit: +--- linux-2.6.22-590/arch/i386/mm/fault.c 2009-03-16 20:49:42.000000000 -0400 ++++ linux-2.6.22-591/arch/i386/mm/fault.c 2009-03-16 20:58:59.000000000 -0400 @@ -60,6 +60,15 @@ DIE_PAGE_FAULT, &args); } @@ -93,9 +127,8 @@ diff -Nurb linux-2.6.22-580/arch/i386/mm/fault.c linux-2.6.22-590/arch/i386/mm/f fastcall void __kprobes do_page_fault(struct pt_regs *regs, unsigned long error_code) { -diff -Nurb linux-2.6.22-580/block/ll_rw_blk.c linux-2.6.22-590/block/ll_rw_blk.c ---- linux-2.6.22-580/block/ll_rw_blk.c 2009-04-08 16:36:09.000000000 -0400 -+++ linux-2.6.22-590/block/ll_rw_blk.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/block/ll_rw_blk.c 2009-03-16 20:49:07.000000000 -0400 ++++ linux-2.6.22-591/block/ll_rw_blk.c 2009-03-16 20:58:59.000000000 -0400 @@ -30,6 +30,7 @@ #include #include @@ -143,9 +176,8 @@ diff -Nurb linux-2.6.22-580/block/ll_rw_blk.c linux-2.6.22-590/block/ll_rw_blk.c ret = q->make_request_fn(q, bio); } while (ret); } -diff -Nurb linux-2.6.22-580/drivers/oprofile/cpu_buffer.c linux-2.6.22-590/drivers/oprofile/cpu_buffer.c ---- linux-2.6.22-580/drivers/oprofile/cpu_buffer.c 2007-07-08 19:32:17.000000000 -0400 -+++ linux-2.6.22-590/drivers/oprofile/cpu_buffer.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/drivers/oprofile/cpu_buffer.c 2007-07-08 19:32:17.000000000 -0400 ++++ linux-2.6.22-591/drivers/oprofile/cpu_buffer.c 2009-03-16 20:58:59.000000000 -0400 @@ -21,6 +21,7 @@ #include #include @@ -209,9 +241,8 @@ diff -Nurb linux-2.6.22-580/drivers/oprofile/cpu_buffer.c linux-2.6.22-590/drive } void oprofile_add_pc(unsigned long pc, int is_kernel, unsigned long event) -diff -Nurb linux-2.6.22-580/fs/bio.c linux-2.6.22-590/fs/bio.c ---- linux-2.6.22-580/fs/bio.c 2007-07-08 19:32:17.000000000 -0400 -+++ linux-2.6.22-590/fs/bio.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/fs/bio.c 2007-07-08 19:32:17.000000000 -0400 ++++ linux-2.6.22-591/fs/bio.c 2009-03-16 20:58:59.000000000 -0400 @@ -27,6 +27,7 @@ #include #include @@ -268,7 +299,6 @@ diff -Nurb linux-2.6.22-580/fs/bio.c linux-2.6.22-590/fs/bio.c if (bio->bi_end_io) bio->bi_end_io(bio, bytes_done, error); } -diff -Nurb linux-2.6.22-580/fs/exec.c linux-2.6.22-590/fs/exec.c --- linux-2.6.22-580/fs/exec.c 2009-04-08 16:36:16.000000000 -0400 +++ linux-2.6.22-590/fs/exec.c 2009-04-08 16:40:34.000000000 -0400 @@ -27,6 +27,7 @@ @@ -313,9 +343,8 @@ diff -Nurb linux-2.6.22-580/fs/exec.c linux-2.6.22-590/fs/exec.c zap_other_threads(tsk); read_unlock(&tasklist_lock); -diff -Nurb linux-2.6.22-580/include/linux/arrays.h linux-2.6.22-590/include/linux/arrays.h ---- linux-2.6.22-580/include/linux/arrays.h 1969-12-31 19:00:00.000000000 -0500 -+++ linux-2.6.22-590/include/linux/arrays.h 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/include/linux/arrays.h 1969-12-31 19:00:00.000000000 -0500 ++++ linux-2.6.22-591/include/linux/arrays.h 2009-03-16 20:58:59.000000000 -0400 @@ -0,0 +1,36 @@ +#ifndef __ARRAYS_H__ +#define __ARRAYS_H__ @@ -353,9 +382,8 @@ diff -Nurb linux-2.6.22-580/include/linux/arrays.h linux-2.6.22-590/include/linu + struct task_struct *task; +}; +#endif -diff -Nurb linux-2.6.22-580/include/linux/mutex.h linux-2.6.22-590/include/linux/mutex.h ---- linux-2.6.22-580/include/linux/mutex.h 2007-07-08 19:32:17.000000000 -0400 -+++ linux-2.6.22-590/include/linux/mutex.h 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/include/linux/mutex.h 2007-07-08 19:32:17.000000000 -0400 ++++ linux-2.6.22-591/include/linux/mutex.h 2009-03-16 20:58:59.000000000 -0400 @@ -53,6 +53,10 @@ struct thread_info *owner; const char *name; @@ -367,9 +395,8 @@ diff -Nurb linux-2.6.22-580/include/linux/mutex.h linux-2.6.22-590/include/linux #endif #ifdef CONFIG_DEBUG_LOCK_ALLOC struct lockdep_map dep_map; -diff -Nurb linux-2.6.22-580/include/linux/sched.h linux-2.6.22-590/include/linux/sched.h ---- linux-2.6.22-580/include/linux/sched.h 2009-04-08 16:36:17.000000000 -0400 -+++ linux-2.6.22-590/include/linux/sched.h 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/include/linux/sched.h 2009-03-16 20:49:42.000000000 -0400 ++++ linux-2.6.22-591/include/linux/sched.h 2009-03-16 20:58:59.000000000 -0400 @@ -850,6 +850,10 @@ #endif unsigned long sleep_avg; @@ -381,9 +408,8 @@ diff -Nurb linux-2.6.22-580/include/linux/sched.h linux-2.6.22-590/include/linux unsigned long long sched_time; /* sched_clock time spent running */ enum sleep_type sleep_type; -diff -Nurb linux-2.6.22-580/kernel/mutex.c linux-2.6.22-590/kernel/mutex.c ---- linux-2.6.22-580/kernel/mutex.c 2007-07-08 19:32:17.000000000 -0400 -+++ linux-2.6.22-590/kernel/mutex.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/kernel/mutex.c 2007-07-08 19:32:17.000000000 -0400 ++++ linux-2.6.22-591/kernel/mutex.c 2009-03-16 20:58:59.000000000 -0400 @@ -18,6 +18,17 @@ #include #include @@ -498,9 +524,8 @@ diff -Nurb linux-2.6.22-580/kernel/mutex.c linux-2.6.22-590/kernel/mutex.c wake_up_process(waiter->task); } -diff -Nurb linux-2.6.22-580/kernel/sched.c linux-2.6.22-590/kernel/sched.c ---- linux-2.6.22-580/kernel/sched.c 2009-04-08 16:36:17.000000000 -0400 -+++ linux-2.6.22-590/kernel/sched.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/kernel/sched.c 2009-03-16 20:49:42.000000000 -0400 ++++ linux-2.6.22-591/kernel/sched.c 2009-03-16 20:58:59.000000000 -0400 @@ -10,7 +10,7 @@ * 1998-11-19 Implemented schedule_timeout() and related stuff * by Andrea Arcangeli @@ -700,9 +725,8 @@ diff -Nurb linux-2.6.22-580/kernel/sched.c linux-2.6.22-590/kernel/sched.c +EXPORT_SYMBOL(rec_event); +EXPORT_SYMBOL(in_sched_functions); +#endif -diff -Nurb linux-2.6.22-580/mm/memory.c linux-2.6.22-590/mm/memory.c ---- linux-2.6.22-580/mm/memory.c 2009-04-08 16:36:17.000000000 -0400 -+++ linux-2.6.22-590/mm/memory.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/mm/memory.c 2009-03-16 20:49:42.000000000 -0400 ++++ linux-2.6.22-591/mm/memory.c 2009-03-16 20:58:59.000000000 -0400 @@ -59,6 +59,7 @@ #include @@ -752,9 +776,8 @@ diff -Nurb linux-2.6.22-580/mm/memory.c linux-2.6.22-590/mm/memory.c return handle_pte_fault(mm, vma, address, pte, pmd, write_access); } -diff -Nurb linux-2.6.22-580/mm/slab.c linux-2.6.22-590/mm/slab.c ---- linux-2.6.22-580/mm/slab.c 2009-04-08 16:36:17.000000000 -0400 -+++ linux-2.6.22-590/mm/slab.c 2009-04-08 16:37:10.000000000 -0400 +--- linux-2.6.22-590/mm/slab.c 2009-03-16 20:49:42.000000000 -0400 ++++ linux-2.6.22-591/mm/slab.c 2009-03-16 21:00:27.000000000 -0400 @@ -110,11 +110,13 @@ #include #include @@ -912,3 +935,4 @@ diff -Nurb linux-2.6.22-580/mm/slab.c linux-2.6.22-590/mm/slab.c local_irq_restore(flags); } EXPORT_SYMBOL(kfree); +