Continuing tweaking this patch...
authorSapan Bhatia <sapanb@cs.princeton.edu>
Thu, 9 Apr 2009 20:03:05 +0000 (20:03 +0000)
committerSapan Bhatia <sapanb@cs.princeton.edu>
Thu, 9 Apr 2009 20:03:05 +0000 (20:03 +0000)
linux-2.6-590-chopstix-intern.patch

index b09339f..d9a0c9a 100644 (file)
@@ -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 <linux/signal.h>
  #include <linux/personality.h>
@@ -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 <linux/cpu.h>
  #include <linux/blktrace_api.h>
@@ -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 <linux/oprofile.h>
  #include <linux/vmalloc.h>
@@ -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 <linux/workqueue.h>
  #include <linux/blktrace_api.h>
@@ -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 <linux/spinlock.h>
  #include <linux/interrupt.h>
@@ -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 <linux/swapops.h>
@@ -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      <linux/fault-inject.h>
  #include      <linux/rtmutex.h>
@@ -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);
+