SOURCES (LINUX_2_6): linux-2.6-cpuset_virtualization.patch - up to...
baggins
baggins at pld-linux.org
Wed Sep 20 17:26:59 CEST 2006
Author: baggins Date: Wed Sep 20 15:26:59 2006 GMT
Module: SOURCES Tag: LINUX_2_6
---- Log message:
- up to 2.6.18
---- Files affected:
SOURCES:
linux-2.6-cpuset_virtualization.patch (1.1.2.9 -> 1.1.2.10)
---- Diffs:
================================================================
Index: SOURCES/linux-2.6-cpuset_virtualization.patch
diff -u SOURCES/linux-2.6-cpuset_virtualization.patch:1.1.2.9 SOURCES/linux-2.6-cpuset_virtualization.patch:1.1.2.10
--- SOURCES/linux-2.6-cpuset_virtualization.patch:1.1.2.9 Tue Aug 1 14:04:42 2006
+++ SOURCES/linux-2.6-cpuset_virtualization.patch Wed Sep 20 17:26:54 2006
@@ -34,7 +34,7 @@
--- linux-2.6.14.3/arch/ia64/kernel/setup.c 2005-11-24 23:10:21.000000000 +0100
+++ linux-2.6.14.3-cpusetvirt/arch/ia64/kernel/setup.c 2005-11-25 19:28:28.090979016 +0100
@@ -43,6 +43,7 @@
- #include <linux/platform.h>
+ #include <linux/initrd.h>
#include <linux/pm.h>
#include <linux/cpufreq.h>
+#include <linux/cpuset.h>
@@ -42,7 +42,7 @@
#include <asm/ia32.h>
#include <asm/machvec.h>
@@ -476,6 +477,11 @@
- unsigned long mask;
+ unsigned long proc_freq;
int i;
+#ifdef CONFIG_CPUSETS
@@ -65,13 +65,12 @@
+#endif
+ c->vendor, family, c->model, c->revision, c->archrev,
features, c->ppn, c->number,
- c->proc_freq / 1000000, c->proc_freq % 1000000,
+ proc_freq / 1000, proc_freq % 1000,
c->itc_freq / 1000000, c->itc_freq % 1000000,
diff -ur linux-2.6.14.3/arch/x86_64/kernel/setup.c linux-2.6.14.3-cpusetvirt/arch/x86_64/kernel/setup.c
--- linux-2.6.14.3/arch/x86_64/kernel/setup.c 2005-11-24 23:10:21.000000000 +0100
+++ linux-2.6.14.3-cpusetvirt/arch/x86_64/kernel/setup.c 2005-11-25 19:37:48.755745016 +0100
-@@ -42,7 +42,8 @@
- #include <linux/cpufreq.h>
+@@ -42,6 +42,7 @@
#include <linux/dmi.h>
#include <linux/dma-mapping.h>
#include <linux/ctype.h>
@@ -113,7 +112,7 @@
#include <asm/uaccess.h>
#include <asm/pgtable.h>
@@ -353,6 +354,10 @@
- for_each_cpu(i) {
+ for_each_possible_cpu(i) {
int j;
+#ifdef CONFIG_CPUSETS
@@ -150,20 +149,20 @@
--- linux-2.6.14.3/include/linux/cpuset.h 2005-11-24 23:10:21.000000000 +0100
+++ linux-2.6.14.3-cpusetvirt/include/linux/cpuset.h 2005-11-25 19:28:28.093978560 +0100
@@ -28,6 +28,9 @@
- extern struct file_operations proc_cpuset_operations;
- extern char *cpuset_task_status_allowed(struct task_struct *task, char *buffer);
+ return current->flags & PF_SPREAD_SLAB;
+ }
+int cpu_visible_in_cpuset(int cpu, struct cpuset * cs);
+int cpuid_in_cpuset(int cpu, struct cpuset * cs);
+
#else /* !CONFIG_CPUSETS */
- static inline int cpuset_init(void) { return 0; }
+ static inline int cpuset_init_early(void) { return 0; }
diff -ur linux-2.6.14.3/include/linux/init_task.h linux-2.6.14.3-cpusetvirt/include/linux/init_task.h
--- linux-2.6.14.3/include/linux/init_task.h 2005-11-24 23:10:21.000000000 +0100
+++ linux-2.6.14.3-cpusetvirt/include/linux/init_task.h 2005-11-25 19:28:28.079980688 +0100
@@ -88,6 +88,7 @@
- .static_prio = MAX_PRIO-20, \
+ .normal_prio = MAX_PRIO-20, \
.policy = SCHED_NORMAL, \
.cpus_allowed = CPU_MASK_ALL, \
+ .cpus_virt_allowed = CPU_MASK_ALL, \
@@ -174,7 +173,7 @@
--- linux-2.6.14.3/include/linux/sched.h 2005-11-24 23:10:21.000000000 +0100
+++ linux-2.6.14.3-cpusetvirt/include/linux/sched.h 2005-11-25 19:28:28.081980384 +0100
@@ -808,6 +808,7 @@
- struct mempolicy *mempolicy;
+ struct mempolicy *mempolicy;
short il_next;
#endif
+ cpumask_t cpus_virt_allowed;
@@ -190,19 +189,19 @@
CS_MEMORY_MIGRATE,
+ CS_VIRTUALIZED,
CS_REMOVED,
- CS_NOTIFY_ON_RELEASE
- } cpuset_flagbits_t;
+ CS_NOTIFY_ON_RELEASE,
+ CS_SPREAD_PAGE,
@@ -98,6 +99,10 @@
- return !!test_bit(CS_MEM_EXCLUSIVE, &cs->flags);
+ return test_bit(CS_MEM_EXCLUSIVE, &cs->flags);
}
+static inline int is_virtualized(const struct cpuset *cs)
+{
-+ return !!test_bit(CS_VIRTUALIZED, &cs->flags);
++ return test_bit(CS_VIRTUALIZED, &cs->flags);
+}
static inline int is_removed(const struct cpuset *cs)
{
- return !!test_bit(CS_REMOVED, &cs->flags);
+ return test_bit(CS_REMOVED, &cs->flags);
@@ -590,6 +595,145 @@
is_mem_exclusive(p) <= is_mem_exclusive(q);
}
@@ -399,8 +398,8 @@
FILE_MEM_EXCLUSIVE,
+ FILE_VIRTUALIZE,
FILE_NOTIFY_ON_RELEASE,
- FILE_TASKLIST,
- } cpuset_filetype_t;
+ FILE_MEMORY_PRESSURE_ENABLED,
+ FILE_MEMORY_PRESSURE,
@@ -887,6 +1055,9 @@
case FILE_MEM_EXCLUSIVE:
retval = update_flag(CS_MEM_EXCLUSIVE, cs, buffer);
@@ -441,7 +440,7 @@
+ return err;
if ((err = cpuset_add_file(cs_dentry, &cft_notify_on_release)) < 0)
return err;
- if ((err = cpuset_add_file(cs_dentry, &cft_tasks)) < 0)
+ if ((err = cpuset_add_file(cs_dentry, &cft_memory_migrate)) < 0)
diff -ur linux-2.6.14.3/kernel/kthread.c linux-2.6.14.3-cpusetvirt/kernel/kthread.c
--- linux-2.6.14.3/kernel/kthread.c 2005-11-24 23:10:21.000000000 +0100
+++ linux-2.6.14.3-cpusetvirt/kernel/kthread.c 2005-11-25 19:28:28.094978408 +0100
@@ -464,7 +463,7 @@
diff -ur linux-2.6.14.3/kernel/sched.c linux-2.6.14.3-cpusetvirt/kernel/sched.c
--- linux-2.6.14.3/kernel/sched.c 2005-11-24 23:10:21.000000000 +0100
+++ linux-2.6.14.3-cpusetvirt/kernel/sched.c 2005-11-25 19:28:28.087979472 +0100
-@@ -3798,11 +3798,15 @@
+@@ -3798,9 +3798,13 @@
return retval;
}
@@ -475,14 +474,12 @@
+
long sched_setaffinity(pid_t pid, cpumask_t new_mask)
{
- task_t *p;
- int retval;
- cpumask_t cpus_allowed;
+ struct task_struct *p;
+ int retval;
- lock_cpu_hotplug();
- read_lock(&tasklist_lock);
@@ -3827,9 +3827,11 @@
- !capable(CAP_SYS_NICE))
+ if (retval)
goto out_unlock;
- cpus_allowed = cpuset_cpus_allowed(p);
@@ -497,9 +494,9 @@
out_unlock:
put_task_struct(p);
@@ -3897,7 +3904,12 @@
+ if (retval)
goto out_unlock;
- retval = 0;
- cpus_and(*mask, p->cpus_allowed, cpu_online_map);
+#ifdef CONFIG_CPUSETS
+ if (cpuset_get_cpus_virt_affinity(p, mask) < 0)
================================================================
---- CVS-web:
http://cvs.pld-linux.org/SOURCES/linux-2.6-cpuset_virtualization.patch?r1=1.1.2.9&r2=1.1.2.10&f=u
More information about the pld-cvs-commit
mailing list