Overclock.net › Forums › Software, Programming and Coding › Operating Systems › Linux, Unix › Applying usergroup auto scheduler patch to 2.6.37rc2 kernel? ubuntu 10.10
New Posts  All Forums:Forum Nav:

Applying usergroup auto scheduler patch to 2.6.37rc2 kernel? ubuntu 10.10

post #1 of 8
Thread Starter 
alright, Not sure if you guys have heard, but there was a recent patch released on the linux kernel mailing list, that linus himself is praising for it's performance increases... so I'm wanting to splice it into my own kernel. I run Ubuntu 10.10 with kernel 2.6.37 rc2 and when I attempt to apply this patch I'm getting a bunch of errors:

Code:
root@H3ll:/usr/src/linux# cat sched.patch | patch -p1
patching file include/linux/sched.h
Hunk #1 FAILED at 509.
Hunk #2 FAILED at 576.
Hunk #3 FAILED at 1931.
3 out of 3 hunks FAILED -- saving rejects to file include/linux/sched.h.rej
patching file kernel/sched.c
Hunk #1 FAILED at 78.
Hunk #2 FAILED at 605.
Hunk #3 FAILED at 2006.
Hunk #4 FAILED at 7979.
Hunk #5 FAILED at 8509.
Hunk #6 FAILED at 8538.
6 out of 6 hunks FAILED -- saving rejects to file kernel/sched.c.rej
patching file kernel/fork.c
Hunk #1 FAILED at 174.
Hunk #2 FAILED at 904.
2 out of 2 hunks FAILED -- saving rejects to file kernel/fork.c.rej
patching file drivers/tty/tty_io.c
Hunk #1 FAILED at 3160.
patch: **** Can't create file drivers/tty/tty_io.c.orig : No such file or direct
ory
This is the patch:
Code:
Index: linux-2.6/include/linux/sched.h 
=================================================================== 
--- linux-2.6.orig/include/linux/sched.h 
+++ linux-2.6/include/linux/sched.h 
@@ -509,6 +509,8 @@ struct thread_group_cputimer { 
    spinlock_t lock; 
 }; 
  
+struct autogroup; 
+ 
 /* 
  * NOTE! "signal_struct" does not have it's own 
  * locking, because a shared signal_struct always 
@@ -576,6 +578,9 @@ struct signal_struct { 
  
    struct tty_struct *tty; /* NULL if no tty */ 
  
+#ifdef CONFIG_SCHED_AUTOGROUP 
+   struct autogroup *autogroup; 
+#endif 
    /* 
     * Cumulative resource counters for dead threads in the group, 
     * and for reaped dead child processes forked by this group. 
@@ -1931,6 +1936,20 @@ int sched_rt_handler(struct ctl_table *t 
  
 extern unsigned int sysctl_sched_compat_yield; 
  
+#ifdef CONFIG_SCHED_AUTOGROUP 
+extern unsigned int sysctl_sched_autogroup_enabled; 
+ 
+extern void sched_autogroup_create_attach(struct task_struct *p); 
+extern void sched_autogroup_detach(struct task_struct *p); 
+extern void sched_autogroup_fork(struct signal_struct *sig); 
+extern void sched_autogroup_exit(struct signal_struct *sig); 
+#else 
+static inline void sched_autogroup_create_attach(struct task_struct *p) { } 
+static inline void sched_autogroup_detach(struct task_struct *p) { } 
+static inline void sched_autogroup_fork(struct signal_struct *sig) { } 
+static inline void sched_autogroup_exit(struct signal_struct *sig) { } 
+#endif 
+ 
 #ifdef CONFIG_RT_MUTEXES 
 extern int rt_mutex_getprio(struct task_struct *p); 
 extern void rt_mutex_setprio(struct task_struct *p, int prio); 
Index: linux-2.6/kernel/sched.c 
=================================================================== 
--- linux-2.6.orig/kernel/sched.c 
+++ linux-2.6/kernel/sched.c 
@@ -78,6 +78,7 @@ 
  
 #include "sched_cpupri.h" 
 #include "workqueue_sched.h" 
+#include "sched_autogroup.h" 
  
 #define CREATE_TRACE_POINTS 
 #include <trace/events/sched.h> 
@@ -605,11 +606,14 @@ static inline int cpu_of(struct rq *rq) 
  */ 
 static inline struct task_group *task_group(struct task_struct *p) 
 { 
+   struct task_group *tg; 
    struct cgroup_subsys_state *css; 
  
    css = task_subsys_state_check(p, cpu_cgroup_subsys_id, 
          lockdep_is_held(&task_rq(p)->lock)); 
-   return container_of(css, struct task_group, css); 
+   tg = container_of(css, struct task_group, css); 
+ 
+   return autogroup_task_group(p, tg); 
 } 
  
 /* Change a task's cfs_rq and parent entity if it moves across CPUs/groups */ 
@@ -2006,6 +2010,7 @@ static void sched_irq_time_avg_update(st 
 #include "sched_idletask.c" 
 #include "sched_fair.c" 
 #include "sched_rt.c" 
+#include "sched_autogroup.c" 
 #include "sched_stoptask.c" 
 #ifdef CONFIG_SCHED_DEBUG 
 # include "sched_debug.c" 
@@ -7979,7 +7984,7 @@ void __init sched_init(void) 
 #ifdef CONFIG_CGROUP_SCHED 
    list_add(&init_task_group.list, &task_groups); 
    INIT_LIST_HEAD(&init_task_group.children); 
- 
+   autogroup_init(&init_task); 
 #endif /* CONFIG_CGROUP_SCHED */ 
  
 #if defined CONFIG_FAIR_GROUP_SCHED && defined CONFIG_SMP 
@@ -8509,15 +8514,11 @@ void sched_destroy_group(struct task_gro 
 /* change task's runqueue when it moves between groups. 
  *   The caller of this function should have put the task in its new group 
  *   by now. This function just updates tsk->se.cfs_rq and tsk->se.parent to 
- *   reflect its new group. 
+ *   reflect its new group.  Called with the runqueue lock held. 
  */ 
-void sched_move_task(struct task_struct *tsk) 
+void __sched_move_task(struct task_struct *tsk, struct rq *rq) 
 { 
    int on_rq, running; 
-   unsigned long flags; 
-   struct rq *rq; 
- 
-   rq = task_rq_lock(tsk, &flags); 
  
    running = task_current(rq, tsk); 
    on_rq = tsk->se.on_rq; 
@@ -8538,7 +8539,15 @@ void sched_move_task(struct task_struct 
       tsk->sched_class->set_curr_task(rq); 
    if (on_rq) 
       enqueue_task(rq, tsk, 0); 
+} 
  
+void sched_move_task(struct task_struct *tsk) 
+{ 
+   struct rq *rq; 
+   unsigned long flags; 
+ 
+   rq = task_rq_lock(tsk, &flags); 
+   __sched_move_task(tsk, rq); 
    task_rq_unlock(rq, &flags); 
 } 
 #endif /* CONFIG_CGROUP_SCHED */ 
Index: linux-2.6/kernel/fork.c 
=================================================================== 
--- linux-2.6.orig/kernel/fork.c 
+++ linux-2.6/kernel/fork.c 
@@ -174,8 +174,10 @@ static inline void free_signal_struct(st 
  
 static inline void put_signal_struct(struct signal_struct *sig) 
 { 
-   if (atomic_dec_and_test(&sig->sigcnt)) 
+   if (atomic_dec_and_test(&sig->sigcnt)) { 
+      sched_autogroup_exit(sig); 
       free_signal_struct(sig); 
+   } 
 } 
  
 void __put_task_struct(struct task_struct *tsk) 
@@ -904,6 +906,7 @@ static int copy_signal(unsigned long clo 
    posix_cpu_timers_init_group(sig); 
  
    tty_audit_fork(sig); 
+   sched_autogroup_fork(sig); 
  
    sig->oom_adj = current->signal->oom_adj; 
    sig->oom_score_adj = current->signal->oom_score_adj; 
Index: linux-2.6/drivers/tty/tty_io.c 
=================================================================== 
--- linux-2.6.orig/drivers/tty/tty_io.c 
+++ linux-2.6/drivers/tty/tty_io.c 
@@ -3160,6 +3160,7 @@ static void __proc_set_tty(struct task_s 
    put_pid(tsk->signal->tty_old_pgrp); 
    tsk->signal->tty = tty_kref_get(tty); 
    tsk->signal->tty_old_pgrp = NULL; 
+   sched_autogroup_create_attach(tsk); 
 } 
  
 static void proc_set_tty(struct task_struct *tsk, struct tty_struct *tty) 
Index: linux-2.6/kernel/sched_autogroup.h 
=================================================================== 
--- /dev/null 
+++ linux-2.6/kernel/sched_autogroup.h 
@@ -0,0 +1,18 @@ 
+#ifdef CONFIG_SCHED_AUTOGROUP 
+ 
+static void __sched_move_task(struct task_struct *tsk, struct rq *rq); 
+ 
+static inline struct task_group * 
+autogroup_task_group(struct task_struct *p, struct task_group *tg); 
+ 
+#else /* !CONFIG_SCHED_AUTOGROUP */ 
+ 
+static inline void autogroup_init(struct task_struct *init_task) {  } 
+ 
+static inline struct task_group * 
+autogroup_task_group(struct task_struct *p, struct task_group *tg) 
+{ 
+   return tg; 
+} 
+ 
+#endif /* CONFIG_SCHED_AUTOGROUP */ 
Index: linux-2.6/kernel/sched_autogroup.c 
=================================================================== 
--- /dev/null 
+++ linux-2.6/kernel/sched_autogroup.c 
@@ -0,0 +1,140 @@ 
+#ifdef CONFIG_SCHED_AUTOGROUP 
+ 
+unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1; 
+ 
+struct autogroup { 
+   struct kref      kref; 
+   struct task_group   *tg; 
+}; 
+ 
+static struct autogroup autogroup_default; 
+ 
+static void autogroup_init(struct task_struct *init_task) 
+{ 
+   autogroup_default.tg = &init_task_group; 
+   kref_init(&autogroup_default.kref); 
+   init_task->signal->autogroup = &autogroup_default; 
+} 
+ 
+static inline void autogroup_destroy(struct kref *kref) 
+{ 
+   struct autogroup *ag = container_of(kref, struct autogroup, kref); 
+   struct task_group *tg = ag->tg; 
+ 
+   kfree(ag); 
+   sched_destroy_group(tg); 
+} 
+ 
+static inline void autogroup_kref_put(struct autogroup *ag) 
+{ 
+   kref_put(&ag->kref, autogroup_destroy); 
+} 
+ 
+static inline struct autogroup *autogroup_kref_get(struct autogroup *ag) 
+{ 
+   kref_get(&ag->kref); 
+   return ag; 
+} 
+ 
+static inline struct autogroup *autogroup_create(void) 
+{ 
+   struct autogroup *ag = kmalloc(sizeof(*ag), GFP_KERNEL); 
+ 
+   if (!ag) 
+      goto out_fail; 
+ 
+   ag->tg = sched_create_group(&init_task_group); 
+   kref_init(&ag->kref); 
+ 
+   if (!(IS_ERR(ag->tg))) 
+      return ag; 
+ 
+out_fail: 
+   if (ag) { 
+      kfree(ag); 
+      WARN_ON(1); 
+   } else 
+      WARN_ON(1); 
+ 
+   return autogroup_kref_get(&autogroup_default); 
+} 
+ 
+static inline struct task_group * 
+autogroup_task_group(struct task_struct *p, struct task_group *tg) 
+{ 
+   int enabled = ACCESS_ONCE(sysctl_sched_autogroup_enabled); 
+ 
+   enabled &= (tg == &root_task_group); 
+   enabled &= (p->sched_class == &fair_sched_class); 
+   enabled &= (!(p->flags & PF_EXITING)); 
+ 
+   if (enabled) 
+      return p->signal->autogroup->tg; 
+ 
+   return tg; 
+} 
+ 
+static void 
+autogroup_move_group(struct task_struct *p, struct autogroup *ag) 
+{ 
+   struct autogroup *prev; 
+   struct task_struct *t; 
+   struct rq *rq; 
+   unsigned long flags; 
+ 
+   rq = task_rq_lock(p, &flags); 
+   prev = p->signal->autogroup; 
+   if (prev == ag) { 
+      task_rq_unlock(rq, &flags); 
+      return; 
+   } 
+ 
+   p->signal->autogroup = autogroup_kref_get(ag); 
+   __sched_move_task(p, rq); 
+   task_rq_unlock(rq, &flags); 
+ 
+   rcu_read_lock(); 
+   list_for_each_entry_rcu(t, &p->thread_group, thread_group) { 
+      sched_move_task(t); 
+   } 
+   rcu_read_unlock(); 
+ 
+   autogroup_kref_put(prev); 
+} 
+ 
+void sched_autogroup_create_attach(struct task_struct *p) 
+{ 
+   struct autogroup *ag = autogroup_create(); 
+ 
+   autogroup_move_group(p, ag); 
+   /* drop extra refrence added by autogroup_create() */ 
+   autogroup_kref_put(ag); 
+} 
+EXPORT_SYMBOL(sched_autogroup_create_attach); 
+ 
+/* currently has no users */ 
+void sched_autogroup_detach(struct task_struct *p) 
+{ 
+   autogroup_move_group(p, &autogroup_default); 
+} 
+EXPORT_SYMBOL(sched_autogroup_detach); 
+ 
+void sched_autogroup_fork(struct signal_struct *sig) 
+{ 
+   sig->autogroup = autogroup_kref_get(current->signal->autogroup); 
+} 
+ 
+void sched_autogroup_exit(struct signal_struct *sig) 
+{ 
+   autogroup_kref_put(sig->autogroup); 
+} 
+ 
+static int __init setup_autogroup(char *str) 
+{ 
+   sysctl_sched_autogroup_enabled = 0; 
+ 
+   return 1; 
+} 
+ 
+__setup("noautogroup", setup_autogroup); 
+#endif 
Index: linux-2.6/kernel/sysctl.c 
=================================================================== 
--- linux-2.6.orig/kernel/sysctl.c 
+++ linux-2.6/kernel/sysctl.c 
@@ -382,6 +382,17 @@ static struct ctl_table kern_table[] = { 
       .mode      = 0644, 
       .proc_handler   = proc_dointvec, 
    }, 
+#ifdef CONFIG_SCHED_AUTOGROUP 
+   { 
+      .procname   = "sched_autogroup_enabled", 
+      .data      = &sysctl_sched_autogroup_enabled, 
+      .maxlen      = sizeof(unsigned int), 
+      .mode      = 0644, 
+      .proc_handler   = proc_dointvec, 
+      .extra1      = &zero, 
+      .extra2      = &one, 
+   }, 
+#endif 
 #ifdef CONFIG_PROVE_LOCKING 
    { 
       .procname   = "prove_locking", 
Index: linux-2.6/init/Kconfig 
=================================================================== 
--- linux-2.6.orig/init/Kconfig 
+++ linux-2.6/init/Kconfig 
@@ -728,6 +728,18 @@ config NET_NS 
  
 endif # NAMESPACES 
  
+config SCHED_AUTOGROUP 
+   bool "Automatic process group scheduling" 
+   select CGROUPS 
+   select CGROUP_SCHED 
+   select FAIR_GROUP_SCHED 
+   help 
+     This option optimizes the scheduler for common desktop workloads by 
+     automatically creating and populating task groups.  This separation 
+     of workloads isolates aggressive CPU burners (like build jobs) from 
+     desktop applications.  Task group autogeneration is currently based 
+     upon task tty association. 
+ 
 config MM_OWNER 
    bool 
  
Index: linux-2.6/Documentation/kernel-parameters.txt 
=================================================================== 
--- linux-2.6.orig/Documentation/kernel-parameters.txt 
+++ linux-2.6/Documentation/kernel-parameters.txt 
@@ -1622,6 +1622,8 @@ and is between 256 and 4096 characters. 
    noapic      [SMP,APIC] Tells the kernel to not make use of any 
          IOAPICs that may be present in the system. 
  
+   noautogroup   Disable scheduler automatic task group creation. 
+ 
    nobats      [PPC] Do not use BATs for mapping kernel lowmem 
          on "Classic" PPC cores.
I'm not pro @ kernel config stuff, but if anyone could help it'd be great, thanks the window for 2.6.37 patches and fixes is closed, so the first anyone will see of this patch is 2.6.38 in the official distributions... so I'd like to get it done before then lol...
SR2 PWNS J00
(22 items)
 
SL4V3
(16 items)
 
 
CPUMotherboardGraphicsRAM
2x intel Xeon X5650 @ 4Ghz Evga SR-2 SLi Evga GTX480s 18GB G.SKill Pi 1600 DDR3 
Hard DriveHard DriveHard DriveOptical Drive
60GB Vertex 3 2TB Western Digital Black 2TB External HDD (USB 2) 22x Sata Bluray/DVD Multi Drive 
CoolingCoolingCoolingCooling
Hardware Labs GTX 360 Radiator EK Supreme HF Copper Danger Den GTX480 Waterblock All Copper Natemandoo SR-2 Solid Copper Waterblock 
CoolingCoolingOSMonitor
Iwaki RD-30 D5 with DCThermo Top Windows 7 Ultimate 3x 24" LG LCDs (16:9) 
KeyboardPowerCaseMouse
Ducky Shine MX-Cherry Black Mechanical Keyboard... 1500W Silver stone Strider Mountain Mods Extended Ascension Horizon Razer Mamba 2012 (wired) 
Mouse PadAudio
Razer XactMat Asus Xonar SXT 
CPUMotherboardGraphicsRAM
intel Q6600 ASUS P5K-E Wifi AMD HD Radeon 6990 4GBs G.skill HZs 
Hard DriveOptical DriveCoolingOS
OCZ vertex 2 LG 22x combo drive Cooler Master hyper 212+ Windows 7 Ultimate x64 
MonitorMonitorKeyboardPower
LG FLATRON L1933TR LG FLATRON L1933TR Logitech G15 rev. 1 Silverstone Decathlon 750W modular PSU 
CaseMouseMouse PadAudio
Thermaltake Armor with 250mm side fan Logitech 2000dpi USB mouse Steel series QcK+ Auzentech X-Fi prelude 
  hide details  
Reply
SR2 PWNS J00
(22 items)
 
SL4V3
(16 items)
 
 
CPUMotherboardGraphicsRAM
2x intel Xeon X5650 @ 4Ghz Evga SR-2 SLi Evga GTX480s 18GB G.SKill Pi 1600 DDR3 
Hard DriveHard DriveHard DriveOptical Drive
60GB Vertex 3 2TB Western Digital Black 2TB External HDD (USB 2) 22x Sata Bluray/DVD Multi Drive 
CoolingCoolingCoolingCooling
Hardware Labs GTX 360 Radiator EK Supreme HF Copper Danger Den GTX480 Waterblock All Copper Natemandoo SR-2 Solid Copper Waterblock 
CoolingCoolingOSMonitor
Iwaki RD-30 D5 with DCThermo Top Windows 7 Ultimate 3x 24" LG LCDs (16:9) 
KeyboardPowerCaseMouse
Ducky Shine MX-Cherry Black Mechanical Keyboard... 1500W Silver stone Strider Mountain Mods Extended Ascension Horizon Razer Mamba 2012 (wired) 
Mouse PadAudio
Razer XactMat Asus Xonar SXT 
CPUMotherboardGraphicsRAM
intel Q6600 ASUS P5K-E Wifi AMD HD Radeon 6990 4GBs G.skill HZs 
Hard DriveOptical DriveCoolingOS
OCZ vertex 2 LG 22x combo drive Cooler Master hyper 212+ Windows 7 Ultimate x64 
MonitorMonitorKeyboardPower
LG FLATRON L1933TR LG FLATRON L1933TR Logitech G15 rev. 1 Silverstone Decathlon 750W modular PSU 
CaseMouseMouse PadAudio
Thermaltake Armor with 250mm side fan Logitech 2000dpi USB mouse Steel series QcK+ Auzentech X-Fi prelude 
  hide details  
Reply
post #2 of 8
Um, where exactly did you get the patch?
Underground
(14 items)
 
  
CPUMotherboardGraphicsRAM
Core i7 920 C0 ASUS P6T6 WS Revolution GTX 460 TR3X6G1600C8D 
Hard DriveOptical DriveCoolingOS
WD1001FALS SAMSUNG SH-S223F 22X DVD MULTI Corsair H50 Fedora 16 KDE x86_64 
MonitorKeyboardPowerCase
HP w19b Microsoft Comfort Curve Corsair CX600 Thermaltake Armor VA8003BWS 
MouseMouse Pad
Razer DeathAdder Black 
  hide details  
Reply
Underground
(14 items)
 
  
CPUMotherboardGraphicsRAM
Core i7 920 C0 ASUS P6T6 WS Revolution GTX 460 TR3X6G1600C8D 
Hard DriveOptical DriveCoolingOS
WD1001FALS SAMSUNG SH-S223F 22X DVD MULTI Corsair H50 Fedora 16 KDE x86_64 
MonitorKeyboardPowerCase
HP w19b Microsoft Comfort Curve Corsair CX600 Thermaltake Armor VA8003BWS 
MouseMouse Pad
Razer DeathAdder Black 
  hide details  
Reply
post #3 of 8
Thread Starter 
directly off the mailing list...
SR2 PWNS J00
(22 items)
 
SL4V3
(16 items)
 
 
CPUMotherboardGraphicsRAM
2x intel Xeon X5650 @ 4Ghz Evga SR-2 SLi Evga GTX480s 18GB G.SKill Pi 1600 DDR3 
Hard DriveHard DriveHard DriveOptical Drive
60GB Vertex 3 2TB Western Digital Black 2TB External HDD (USB 2) 22x Sata Bluray/DVD Multi Drive 
CoolingCoolingCoolingCooling
Hardware Labs GTX 360 Radiator EK Supreme HF Copper Danger Den GTX480 Waterblock All Copper Natemandoo SR-2 Solid Copper Waterblock 
CoolingCoolingOSMonitor
Iwaki RD-30 D5 with DCThermo Top Windows 7 Ultimate 3x 24" LG LCDs (16:9) 
KeyboardPowerCaseMouse
Ducky Shine MX-Cherry Black Mechanical Keyboard... 1500W Silver stone Strider Mountain Mods Extended Ascension Horizon Razer Mamba 2012 (wired) 
Mouse PadAudio
Razer XactMat Asus Xonar SXT 
CPUMotherboardGraphicsRAM
intel Q6600 ASUS P5K-E Wifi AMD HD Radeon 6990 4GBs G.skill HZs 
Hard DriveOptical DriveCoolingOS
OCZ vertex 2 LG 22x combo drive Cooler Master hyper 212+ Windows 7 Ultimate x64 
MonitorMonitorKeyboardPower
LG FLATRON L1933TR LG FLATRON L1933TR Logitech G15 rev. 1 Silverstone Decathlon 750W modular PSU 
CaseMouseMouse PadAudio
Thermaltake Armor with 250mm side fan Logitech 2000dpi USB mouse Steel series QcK+ Auzentech X-Fi prelude 
  hide details  
Reply
SR2 PWNS J00
(22 items)
 
SL4V3
(16 items)
 
 
CPUMotherboardGraphicsRAM
2x intel Xeon X5650 @ 4Ghz Evga SR-2 SLi Evga GTX480s 18GB G.SKill Pi 1600 DDR3 
Hard DriveHard DriveHard DriveOptical Drive
60GB Vertex 3 2TB Western Digital Black 2TB External HDD (USB 2) 22x Sata Bluray/DVD Multi Drive 
CoolingCoolingCoolingCooling
Hardware Labs GTX 360 Radiator EK Supreme HF Copper Danger Den GTX480 Waterblock All Copper Natemandoo SR-2 Solid Copper Waterblock 
CoolingCoolingOSMonitor
Iwaki RD-30 D5 with DCThermo Top Windows 7 Ultimate 3x 24" LG LCDs (16:9) 
KeyboardPowerCaseMouse
Ducky Shine MX-Cherry Black Mechanical Keyboard... 1500W Silver stone Strider Mountain Mods Extended Ascension Horizon Razer Mamba 2012 (wired) 
Mouse PadAudio
Razer XactMat Asus Xonar SXT 
CPUMotherboardGraphicsRAM
intel Q6600 ASUS P5K-E Wifi AMD HD Radeon 6990 4GBs G.skill HZs 
Hard DriveOptical DriveCoolingOS
OCZ vertex 2 LG 22x combo drive Cooler Master hyper 212+ Windows 7 Ultimate x64 
MonitorMonitorKeyboardPower
LG FLATRON L1933TR LG FLATRON L1933TR Logitech G15 rev. 1 Silverstone Decathlon 750W modular PSU 
CaseMouseMouse PadAudio
Thermaltake Armor with 250mm side fan Logitech 2000dpi USB mouse Steel series QcK+ Auzentech X-Fi prelude 
  hide details  
Reply
post #4 of 8
As much as I would like to see you succeed in patching, I'll wait for the 2.6.38 to show up in the arch repos. Why? You won't see any performance change unless you're really straining your processor while you're compiling something. If your sig rig is the one that has linux, then you won't see any difference whatsoever.

Honestly the CFS scheduler is debatable as to its actual quality, anyway. I'd suggest you try using BFS and see if that solves your issue before trying something that's brand new and not as well documented.
post #5 of 8
Thread Starter 
no it's for work (dual core PC, and I do alot of compiling) someone on phronix was kind enough to patch the current ubuntu 10.10 kernel

http://www.outrightsolutions.nl/~sander/ubuntu/kernel/

so I have the patch and it definitely makes a difference
SR2 PWNS J00
(22 items)
 
SL4V3
(16 items)
 
 
CPUMotherboardGraphicsRAM
2x intel Xeon X5650 @ 4Ghz Evga SR-2 SLi Evga GTX480s 18GB G.SKill Pi 1600 DDR3 
Hard DriveHard DriveHard DriveOptical Drive
60GB Vertex 3 2TB Western Digital Black 2TB External HDD (USB 2) 22x Sata Bluray/DVD Multi Drive 
CoolingCoolingCoolingCooling
Hardware Labs GTX 360 Radiator EK Supreme HF Copper Danger Den GTX480 Waterblock All Copper Natemandoo SR-2 Solid Copper Waterblock 
CoolingCoolingOSMonitor
Iwaki RD-30 D5 with DCThermo Top Windows 7 Ultimate 3x 24" LG LCDs (16:9) 
KeyboardPowerCaseMouse
Ducky Shine MX-Cherry Black Mechanical Keyboard... 1500W Silver stone Strider Mountain Mods Extended Ascension Horizon Razer Mamba 2012 (wired) 
Mouse PadAudio
Razer XactMat Asus Xonar SXT 
CPUMotherboardGraphicsRAM
intel Q6600 ASUS P5K-E Wifi AMD HD Radeon 6990 4GBs G.skill HZs 
Hard DriveOptical DriveCoolingOS
OCZ vertex 2 LG 22x combo drive Cooler Master hyper 212+ Windows 7 Ultimate x64 
MonitorMonitorKeyboardPower
LG FLATRON L1933TR LG FLATRON L1933TR Logitech G15 rev. 1 Silverstone Decathlon 750W modular PSU 
CaseMouseMouse PadAudio
Thermaltake Armor with 250mm side fan Logitech 2000dpi USB mouse Steel series QcK+ Auzentech X-Fi prelude 
  hide details  
Reply
SR2 PWNS J00
(22 items)
 
SL4V3
(16 items)
 
 
CPUMotherboardGraphicsRAM
2x intel Xeon X5650 @ 4Ghz Evga SR-2 SLi Evga GTX480s 18GB G.SKill Pi 1600 DDR3 
Hard DriveHard DriveHard DriveOptical Drive
60GB Vertex 3 2TB Western Digital Black 2TB External HDD (USB 2) 22x Sata Bluray/DVD Multi Drive 
CoolingCoolingCoolingCooling
Hardware Labs GTX 360 Radiator EK Supreme HF Copper Danger Den GTX480 Waterblock All Copper Natemandoo SR-2 Solid Copper Waterblock 
CoolingCoolingOSMonitor
Iwaki RD-30 D5 with DCThermo Top Windows 7 Ultimate 3x 24" LG LCDs (16:9) 
KeyboardPowerCaseMouse
Ducky Shine MX-Cherry Black Mechanical Keyboard... 1500W Silver stone Strider Mountain Mods Extended Ascension Horizon Razer Mamba 2012 (wired) 
Mouse PadAudio
Razer XactMat Asus Xonar SXT 
CPUMotherboardGraphicsRAM
intel Q6600 ASUS P5K-E Wifi AMD HD Radeon 6990 4GBs G.skill HZs 
Hard DriveOptical DriveCoolingOS
OCZ vertex 2 LG 22x combo drive Cooler Master hyper 212+ Windows 7 Ultimate x64 
MonitorMonitorKeyboardPower
LG FLATRON L1933TR LG FLATRON L1933TR Logitech G15 rev. 1 Silverstone Decathlon 750W modular PSU 
CaseMouseMouse PadAudio
Thermaltake Armor with 250mm side fan Logitech 2000dpi USB mouse Steel series QcK+ Auzentech X-Fi prelude 
  hide details  
Reply
post #6 of 8
Good link.

If anyone else is interested in this but doesn't want to a brand spanking new kernel here is a link to a 2.6.36 kernel with the patch.

And for the Arch users: the packages can be found here.

If anybody wants a really good understanding of what ACTUALLY gets improvement from this patch read through this thread and this mailing list.
Edited by Jimi - 11/19/10 at 3:04pm
post #7 of 8
There's no point for me, I'm using BFS/BFQ and so it doesn't help me at all. At first I was excited until I read it was for CFS, then I got all sad.
Current Rig
(14 items)
 
  
CPUMotherboardGraphicsRAM
FX-8350 4.6GHz@1.44v GA-990FXA-UD3 R4.0 HD 7950 (1100/1450) 8G Muskin DDR3 1866@8CLS 
Hard DriveOptical DriveOSMonitor
1TB WD LiteOn DVD-RW DL Linux/Windows 19" Phillips TV 1080p 
PowerCaseMouseMouse Pad
OCZ 600W Generic Junk Logitech MX400 Generic Junk 
Audio
SBL 5.1 
  hide details  
Reply
Current Rig
(14 items)
 
  
CPUMotherboardGraphicsRAM
FX-8350 4.6GHz@1.44v GA-990FXA-UD3 R4.0 HD 7950 (1100/1450) 8G Muskin DDR3 1866@8CLS 
Hard DriveOptical DriveOSMonitor
1TB WD LiteOn DVD-RW DL Linux/Windows 19" Phillips TV 1080p 
PowerCaseMouseMouse Pad
OCZ 600W Generic Junk Logitech MX400 Generic Junk 
Audio
SBL 5.1 
  hide details  
Reply
post #8 of 8
Just a heads up. Check out this link

You can now apply this your current kernel just by changing a few settings. No need to use a brand new kernel and patching it. You can quickly now just get the same benefit, but Linus Torvalds just claims that it should be put in the kernel so that it isn't the different distros' responsibility.
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Linux, Unix
Overclock.net › Forums › Software, Programming and Coding › Operating Systems › Linux, Unix › Applying usergroup auto scheduler patch to 2.6.37rc2 kernel? ubuntu 10.10