Add cwd to the list of paths to exclude from namespace cleanup.
[util-vserver.git] / kernel / sched_def.h
1 #ifndef _VX_SCHED_DEF_H
2 #define _VX_SCHED_DEF_H
3
4 #include <linux/spinlock.h>
5 #include <linux/jiffies.h>
6 #include <linux/cpumask.h>
7 #include <asm/atomic.h>
8 #include <asm/param.h>
9
10
11 /* context sub struct */
12
13 struct _vx_sched {
14         spinlock_t tokens_lock;         /* lock for token bucket */
15
16         int tokens;                     /* number of CPU tokens */
17         int fill_rate[2];               /* Fill rate: add X tokens... */
18         int interval[2];                /* Divisor:   per Y jiffies   */
19         int tokens_min;                 /* Limit:     minimum for unhold */
20         int tokens_max;                 /* Limit:     no more than N tokens */
21
22         unsigned update_mask;           /* which features should be updated */
23         cpumask_t update;               /* CPUs which should update */
24
25         int prio_bias;                  /* bias offset for priority */
26         int vavavoom;                   /* last calculated vavavoom */
27 };
28
29 struct _vx_sched_pc {
30         int tokens;                     /* number of CPU tokens */
31         int flags;                      /* bucket flags */
32
33         int fill_rate[2];               /* Fill rate: add X tokens... */
34         int interval[2];                /* Divisor:   per Y jiffies   */
35         int tokens_min;                 /* Limit:     minimum for unhold */
36         int tokens_max;                 /* Limit:     no more than N tokens */
37
38         unsigned long norm_time;        /* last time accounted */
39         unsigned long idle_time;        /* non linear time for fair sched */
40         unsigned long token_time;       /* token time for accounting */
41         unsigned long onhold;           /* jiffies when put on hold */
42
43         uint64_t user_ticks;            /* token tick events */
44         uint64_t sys_ticks;             /* token tick events */
45         uint64_t hold_ticks;            /* token ticks paused */
46 };
47
48
49 #define VXSF_ONHOLD     0x0001
50 #define VXSF_IDLE_TIME  0x0100
51
52 #ifdef CONFIG_VSERVER_DEBUG
53
54 static inline void __dump_vx_sched(struct _vx_sched *sched)
55 {
56         printk("\t_vx_sched:\n");
57         printk("\t tokens: %4d/%4d, %4d/%4d, %4d, %4d\n",
58                 sched->fill_rate[0], sched->interval[0],
59                 sched->fill_rate[1], sched->interval[1],
60                 sched->tokens_min, sched->tokens_max);
61         printk("\t priority = %4d, %4d\n",
62                 sched->prio_bias, sched->vavavoom);
63 }
64
65 #endif
66
67 #endif  /* _VX_SCHED_DEF_H */