Merge to kernel-2.6.20-1.2949.fc6.vs2.2.0.1
[linux-2.6.git] / kernel / vserver / Kconfig
1 #
2 # Linux VServer configuration
3 #
4
5 menu "Linux VServer"
6
7 config  VSERVER_FILESHARING
8         bool    "(PLANETLAB) Disable Hidden File Module"
9         default y
10         help
11           This retains the module that when a vserver can
12           see a file, it can also stat and read it.  The
13           assumption is that chroot() works and vservers
14           are contained that way.
15
16 config  VSERVER_LEGACY
17         bool    "Enable Legacy Kernel API"
18         depends on EXPERIMENTAL
19         default n
20         help
21           This enables the legacy API used in vs1.xx, maintaining
22           compatibility with older vserver tools, and guest images
23           that are configured using the legacy method.
24
25 config  VSERVER_LEGACY_VERSION
26         bool    "Show a Legacy Version ID"
27         depends on VSERVER_LEGACY
28         default n
29         help
30           This shows a special legacy version to very old tools
31           which do not handle the current version correctly.
32
33           Warning: recent tools are not able to utilize the
34           newer APIs when this is enabled, so some features will
35           not be available. Better avoid it, unless you really,
36           really need it for backwards compatibility.
37
38 config  VSERVER_DYNAMIC_IDS
39         bool    "Enable dynamic context IDs"
40         depends on EXPERIMENTAL && VSERVER_LEGACY
41         default n
42         help
43           This enables support of in kernel dynamic context IDs,
44           which is deprecated and will probably be removed in the
45           next release.
46
47 config  VSERVER_LEGACYNET
48         bool    "Enable Legacy Networking Kernel API"
49         depends on EXPERIMENTAL
50         default n
51         help
52           This enables the legacy networking API which is used
53           by older tools (pre 0.30.210) to set up the network
54           context (chbind).
55
56 config  VSERVER_REMAP_SADDR
57         bool    "Remap Source IP Address"
58         depends on EXPERIMENTAL
59         default n
60         help
61           This allows to remap the source IP address of 'local'
62           connections from 127.0.0.1 to the first assigned
63           guest IP.
64
65 config  VSERVER_COWBL
66         bool    "Enable COW Immutable Link Breaking"
67         default y
68         help
69           This enables the COW (Copy-On-Write) link break code.
70           It allows you to treat unified files like normal files
71           when writing to them (which will implicitely break the
72           link and create a copy of the unified file)
73
74 config  VSERVER_VTIME
75         bool    "Enable Virtualized Guest Time"
76         depends on EXPERIMENTAL
77         default n
78         help
79           This enables per guest time offsets to allow for
80           adjusting the system clock individually per guest.
81           this adds some overhead to the time functions and
82           therefore should not be enabled without good reason.
83
84 config  VSERVER_PROC_SECURE
85         bool    "Enable Proc Security"
86         depends on PROC_FS
87         default y
88         help
89           This configures ProcFS security to initially hide
90           non-process entries for all contexts except the main and
91           spectator context (i.e. for all guests), which is a secure
92           default.
93
94           (note: on 1.2x the entries were visible by default)
95
96 config  VSERVER_HARDCPU
97         bool    "Enable Hard CPU Limits"
98         default y
99         help
100           Activate the Hard CPU Limits
101
102           This will compile in code that allows the Token Bucket
103           Scheduler to put processes on hold when a context's
104           tokens are depleted (provided that its per-context
105           sched_hard flag is set).
106
107           Processes belonging to that context will not be able
108           to consume CPU resources again until a per-context
109           configured minimum of tokens has been reached.
110
111 config  VSERVER_IDLETIME
112         bool    "Avoid idle CPUs by skipping Time"
113         depends on VSERVER_HARDCPU
114         default y
115         help
116           This option allows the scheduler to artificially
117           advance time (per cpu) when otherwise the idle
118           task would be scheduled, thus keeping the cpu
119           busy and sharing the available resources among
120           certain contexts.
121
122 config  VSERVER_IDLELIMIT
123         bool    "Limit the IDLE task"
124         depends on VSERVER_HARDCPU
125         default n
126         help
127           Limit the idle slices, so the the next context
128           will be scheduled as soon as possible.
129
130           This might improve interactivity and latency, but
131           will also marginally increase scheduling overhead.
132
133 choice
134         prompt  "Persistent Inode Tagging"
135         default TAGGING_ID24
136         help
137           This adds persistent context information to filesystems
138           mounted with the tagxid option. Tagging is a requirement
139           for per-context disk limits and per-context quota.
140
141
142 config  TAGGING_NONE
143         bool    "Disabled"
144         help
145           do not store per-context information in inodes.
146
147 config  TAGGING_UID16
148         bool    "UID16/GID32"
149         help
150           reduces UID to 16 bit, but leaves GID at 32 bit.
151
152 config  TAGGING_GID16
153         bool    "UID32/GID16"
154         help
155           reduces GID to 16 bit, but leaves UID at 32 bit.
156
157 config  TAGGING_ID24
158         bool    "UID24/GID24"
159         help
160           uses the upper 8bit from UID and GID for XID tagging
161           which leaves 24bit for UID/GID each, which should be
162           more than sufficient for normal use.
163
164 config  TAGGING_INTERN
165         bool    "UID32/GID32"
166         help
167           this uses otherwise reserved inode fields in the on
168           disk representation, which limits the use to a few
169           filesystems (currently ext2 and ext3)
170
171 endchoice
172
173 config  TAG_NFSD
174         bool    "Tag NFSD User Auth and Files"
175         default n
176         help
177           Enable this if you do want the in-kernel NFS
178           Server to use the tagging specified above.
179           (will require patched clients too)
180
181 config  PROPAGATE
182         bool    "Enable Inode Tag Propagation"
183         default n
184         depends on EXPERIMENTAL
185         help
186           This allows for the tagid= mount option to specify
187           a tagid which is to be used for the entire mount
188           tree.
189
190 config  VSERVER_PRIVACY
191         bool    "Honor Privacy Aspects of Guests"
192         default y
193         help
194           When enabled, most context checks will disallow
195           access to structures assigned to a specific context,
196           like ptys or loop devices.
197
198 config  VSERVER_CONTEXTS
199         int     "Maximum number of Contexts (1-65533)"  if EMBEDDED
200         range 1 65533
201         default "768"   if 64BIT
202         default "256"
203         help
204           This setting will optimize certain data structures
205           and memory allocations according to the expected
206           maximum.
207
208           note: this is not a strict upper limit.
209
210 config  VSERVER_WARN
211         bool    "VServer Warnings"
212         default y
213         help
214           This enables various runtime warnings, which will
215           notify about potential manipulation attempts or
216           resource shortage. It is generally considered to
217           be a good idea to have that enabled.
218
219 config  VSERVER_DEBUG
220         bool    "VServer Debugging Code"
221         default n
222         help
223           Set this to yes if you want to be able to activate
224           debugging output at runtime. It adds a very small
225           overhead to all vserver related functions and
226           increases the kernel size by about 20k.
227
228 config  VSERVER_HISTORY
229         bool    "VServer History Tracing"
230         depends on VSERVER_DEBUG
231         default n
232         help
233           Set this to yes if you want to record the history of
234           linux-vserver activities, so they can be replayed in
235           the event of a kernel panic or oops.
236
237 config  VSERVER_HISTORY_SIZE
238         int     "Per-CPU History Size (32-65536)"
239         depends on VSERVER_HISTORY
240         range 32 65536
241         default 64
242         help
243           This allows you to specify the number of entries in
244           the per-CPU history buffer.
245
246 config  VSERVER_MONITOR
247         bool    "VServer Scheduling Monitor"
248         depends on VSERVER_DEBUG
249         default n
250         help
251           Set this to yes if you want to record the scheduling
252           decisions, so that they can be relayed to userspace
253           for detailed analysis.
254
255 config  VSERVER_MONITOR_SIZE
256         int     "Per-CPU Monitor Queue Size (32-65536)"
257         depends on VSERVER_MONITOR
258         range 32 65536
259         default 1024
260         help
261           This allows you to specify the number of entries in
262           the per-CPU scheduling monitor buffer.
263
264 config  VSERVER_MONITOR_SYNC
265         int     "Per-CPU Monitor Sync Interval (0-65536)"
266         depends on VSERVER_MONITOR
267         range 0 65536
268         default 256
269         help
270           This allows you to specify the interval in ticks
271           when a time sync entry is inserted.
272
273 endmenu
274
275
276 config  VSERVER
277         bool
278         default y
279         select UTS_NS
280         select SYSVIPC
281         select IPC_NS
282
283 config  VSERVER_SECURITY
284         bool
285         depends on SECURITY
286         default y
287         select SECURITY_CAPABILITIES
288
289 config  VSERVER_NGNET
290         bool
291         depends on EXPERIMENTAL && !VSERVER_LEGACYNET
292         default y
293