]> git.pld-linux.org Git - packages/kernel.git/blame - 2.6.0-t8-cpuset-4of4-lkml.patch
- obsolete
[packages/kernel.git] / 2.6.0-t8-cpuset-4of4-lkml.patch
CommitLineData
d97c1442 1diff -Nru a/kernel/cpuset.c b/kernel/cpuset.c
2--- a/kernel/cpuset.c Tue Oct 21 15:53:11 2003
3+++ b/kernel/cpuset.c Tue Oct 21 15:53:11 2003
4@@ -661,29 +661,33 @@
5 */
6 #ifdef CONFIG_CPUSETS_PROC
7
8+static struct cpuset *proc_cpusets_idx(loff_t n)
9+{
10+ struct cpuset *set;
11+
12+ list_for_each_entry(set, &top_cpuset, list) {
13+ if (n-- == 0)
14+ return set;
15+ }
16+ return NULL;
17+}
18+
19 static void *proc_cpusets_start(struct seq_file *m, loff_t *pos)
20 {
21- loff_t n = *pos;
22- struct list_head *p;
23
24 read_lock(&cpuset_lock);
25- if (!n) seq_puts(m, "cpusets info \n");
26-
27- p = &top_cpuset.list;
28- while (n--) {
29- p = p->next;
30- if (p == &top_cpuset.list)
31- return NULL;
32- }
33- return list_entry(p, struct cpuset, list);
34+ return (*pos == 0) ? SEQ_START_TOKEN : proc_cpusets_idx(*pos);
35 }
36
37 static void *proc_cpusets_next(struct seq_file *m, void *p, loff_t *pos)
38 {
39- struct cpuset * cs = p;
40+ struct cpuset * cs;
41 ++*pos;
42- return cs->list.next == &top_cpuset.list ? NULL
43- : list_entry(cs->list.next, struct cpuset, list);
44+
45+ cs = (p == SEQ_START_TOKEN) ? top_cpuset.list.next
46+ : ((struct cpuset *)p)->list.next;
47+
48+ return (cs == &top_cpuset.list) ? NULL : cs;
49 }
50
51 /* How many chars needed to print a long (as a mask) ? */
52@@ -713,25 +717,28 @@
53 #else
54 char maskbuf[CFL + 1];
55 #endif
56+ if (p == SEQ_START_TOKEN)
57+ seq_puts(m, "cpusets info \n");
58+ else {
59+ seq_printf(m, "cpuset %d {\n"
60+ "\tparent = %d\n"
61+ "\tflags = %d\n"
62+ "\tcount = %d\n"
63+ "\thba = %d\n"
64+ "\tuid & suid = %d & %d\n",
65+ cs->id, cs->parent ? cs->parent->id : -1,
66+ cs->flags, atomic_read(&cs->count), cs->has_been_attached,
67+ cs->uid, cs->suid);
68+
69+ sprint_mask(maskbuf, cs->cpus_allowed);
70+ seq_printf(m,"\tcpus_allowed = %s\n", maskbuf);
71+ sprint_mask(maskbuf, cs->cpus_reserved);
72+ seq_printf(m,"\tcpus_reserved = %s\n", maskbuf);
73+ sprint_mask(maskbuf, cs->cpus_strictly_reserved);
74+ seq_printf(m,"\tcpus_strictly_reserved = %s\n", maskbuf);
75
76- seq_printf(m, "cpuset %d {\n"
77- "\tparent = %d\n"
78- "\tflags = %d\n"
79- "\tcount = %d\n"
80- "\thba = %d\n"
81- "\tuid & suid = %d & %d\n",
82- cs->id, cs->parent ? cs->parent->id : -1,
83- cs->flags, atomic_read(&cs->count), cs->has_been_attached,
84- cs->uid, cs->suid);
85-
86- sprint_mask(maskbuf, cs->cpus_allowed);
87- seq_printf(m,"\tcpus_allowed = %s\n", maskbuf);
88- sprint_mask(maskbuf, cs->cpus_reserved);
89- seq_printf(m,"\tcpus_reserved = %s\n", maskbuf);
90- sprint_mask(maskbuf, cs->cpus_strictly_reserved);
91- seq_printf(m,"\tcpus_strictly_reserved = %s\n", maskbuf);
92-
93- seq_printf(m, "}\n\n");
94+ seq_printf(m, "}\n\n");
95+ }
96
97 return 0;
98 }
This page took 0.117786 seconds and 4 git commands to generate.