]> git.pld-linux.org Git - packages/kernel.git/blob - 2.6.0-t8-cpuset-4of4-lkml.patch
- updated for 2.4.29
[packages/kernel.git] / 2.6.0-t8-cpuset-4of4-lkml.patch
1 diff -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.302069 seconds and 3 git commands to generate.