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