diff options
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/filesystems/ext4.txt | 20 | ||||
-rw-r--r-- | Documentation/filesystems/proc.txt | 39 | ||||
-rw-r--r-- | Documentation/kbuild/kconfig-language.txt | 111 | ||||
-rw-r--r-- | Documentation/mips/00-INDEX | 2 | ||||
-rw-r--r-- | Documentation/mips/GT64120.README | 65 |
5 files changed, 163 insertions, 74 deletions
diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt index 6a4adcae9f9a..560f88dc7090 100644 --- a/Documentation/filesystems/ext4.txt +++ b/Documentation/filesystems/ext4.txt | |||
@@ -86,9 +86,21 @@ Alex is working on a new set of patches right now. | |||
86 | When mounting an ext4 filesystem, the following option are accepted: | 86 | When mounting an ext4 filesystem, the following option are accepted: |
87 | (*) == default | 87 | (*) == default |
88 | 88 | ||
89 | extents ext4 will use extents to address file data. The | 89 | extents (*) ext4 will use extents to address file data. The |
90 | file system will no longer be mountable by ext3. | 90 | file system will no longer be mountable by ext3. |
91 | 91 | ||
92 | noextents ext4 will not use extents for newly created files | ||
93 | |||
94 | journal_checksum Enable checksumming of the journal transactions. | ||
95 | This will allow the recovery code in e2fsck and the | ||
96 | kernel to detect corruption in the kernel. It is a | ||
97 | compatible change and will be ignored by older kernels. | ||
98 | |||
99 | journal_async_commit Commit block can be written to disk without waiting | ||
100 | for descriptor blocks. If enabled older kernels cannot | ||
101 | mount the device. This will enable 'journal_checksum' | ||
102 | internally. | ||
103 | |||
92 | journal=update Update the ext4 file system's journal to the current | 104 | journal=update Update the ext4 file system's journal to the current |
93 | format. | 105 | format. |
94 | 106 | ||
@@ -196,6 +208,12 @@ nobh (a) cache disk block mapping information | |||
196 | "nobh" option tries to avoid associating buffer | 208 | "nobh" option tries to avoid associating buffer |
197 | heads (supported only for "writeback" mode). | 209 | heads (supported only for "writeback" mode). |
198 | 210 | ||
211 | mballoc (*) Use the multiple block allocator for block allocation | ||
212 | nomballoc disabled multiple block allocator for block allocation. | ||
213 | stripe=n Number of filesystem blocks that mballoc will try | ||
214 | to use for allocation size and alignment. For RAID5/6 | ||
215 | systems this should be the number of data | ||
216 | disks * RAID chunk size in file system blocks. | ||
199 | 217 | ||
200 | Data Mode | 218 | Data Mode |
201 | --------- | 219 | --------- |
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index dec99455321f..4413a2d4646f 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -857,6 +857,45 @@ CPUs. | |||
857 | The "procs_blocked" line gives the number of processes currently blocked, | 857 | The "procs_blocked" line gives the number of processes currently blocked, |
858 | waiting for I/O to complete. | 858 | waiting for I/O to complete. |
859 | 859 | ||
860 | 1.9 Ext4 file system parameters | ||
861 | ------------------------------ | ||
862 | Ext4 file system have one directory per partition under /proc/fs/ext4/ | ||
863 | # ls /proc/fs/ext4/hdc/ | ||
864 | group_prealloc max_to_scan mb_groups mb_history min_to_scan order2_req | ||
865 | stats stream_req | ||
866 | |||
867 | mb_groups: | ||
868 | This file gives the details of mutiblock allocator buddy cache of free blocks | ||
869 | |||
870 | mb_history: | ||
871 | Multiblock allocation history. | ||
872 | |||
873 | stats: | ||
874 | This file indicate whether the multiblock allocator should start collecting | ||
875 | statistics. The statistics are shown during unmount | ||
876 | |||
877 | group_prealloc: | ||
878 | The multiblock allocator normalize the block allocation request to | ||
879 | group_prealloc filesystem blocks if we don't have strip value set. | ||
880 | The stripe value can be specified at mount time or during mke2fs. | ||
881 | |||
882 | max_to_scan: | ||
883 | How long multiblock allocator can look for a best extent (in found extents) | ||
884 | |||
885 | min_to_scan: | ||
886 | How long multiblock allocator must look for a best extent | ||
887 | |||
888 | order2_req: | ||
889 | Multiblock allocator use 2^N search using buddies only for requests greater | ||
890 | than or equal to order2_req. The request size is specfied in file system | ||
891 | blocks. A value of 2 indicate only if the requests are greater than or equal | ||
892 | to 4 blocks. | ||
893 | |||
894 | stream_req: | ||
895 | Files smaller than stream_req are served by the stream allocator, whose | ||
896 | purpose is to pack requests as close each to other as possible to | ||
897 | produce smooth I/O traffic. Avalue of 16 indicate that file smaller than 16 | ||
898 | filesystem block size will use group based preallocation. | ||
860 | 899 | ||
861 | ------------------------------------------------------------------------------ | 900 | ------------------------------------------------------------------------------ |
862 | Summary | 901 | Summary |
diff --git a/Documentation/kbuild/kconfig-language.txt b/Documentation/kbuild/kconfig-language.txt index 616043a6da99..649cb8799890 100644 --- a/Documentation/kbuild/kconfig-language.txt +++ b/Documentation/kbuild/kconfig-language.txt | |||
@@ -24,7 +24,7 @@ visible if its parent entry is also visible. | |||
24 | Menu entries | 24 | Menu entries |
25 | ------------ | 25 | ------------ |
26 | 26 | ||
27 | Most entries define a config option, all other entries help to organize | 27 | Most entries define a config option; all other entries help to organize |
28 | them. A single configuration option is defined like this: | 28 | them. A single configuration option is defined like this: |
29 | 29 | ||
30 | config MODVERSIONS | 30 | config MODVERSIONS |
@@ -50,7 +50,7 @@ applicable everywhere (see syntax). | |||
50 | 50 | ||
51 | - type definition: "bool"/"tristate"/"string"/"hex"/"int" | 51 | - type definition: "bool"/"tristate"/"string"/"hex"/"int" |
52 | Every config option must have a type. There are only two basic types: | 52 | Every config option must have a type. There are only two basic types: |
53 | tristate and string, the other types are based on these two. The type | 53 | tristate and string; the other types are based on these two. The type |
54 | definition optionally accepts an input prompt, so these two examples | 54 | definition optionally accepts an input prompt, so these two examples |
55 | are equivalent: | 55 | are equivalent: |
56 | 56 | ||
@@ -108,7 +108,7 @@ applicable everywhere (see syntax). | |||
108 | equal to 'y' without visiting the dependencies. So abusing | 108 | equal to 'y' without visiting the dependencies. So abusing |
109 | select you are able to select a symbol FOO even if FOO depends | 109 | select you are able to select a symbol FOO even if FOO depends |
110 | on BAR that is not set. In general use select only for | 110 | on BAR that is not set. In general use select only for |
111 | non-visible symbols (no promts anywhere) and for symbols with | 111 | non-visible symbols (no prompts anywhere) and for symbols with |
112 | no dependencies. That will limit the usefulness but on the | 112 | no dependencies. That will limit the usefulness but on the |
113 | other hand avoid the illegal configurations all over. kconfig | 113 | other hand avoid the illegal configurations all over. kconfig |
114 | should one day warn about such things. | 114 | should one day warn about such things. |
@@ -127,6 +127,27 @@ applicable everywhere (see syntax). | |||
127 | used to help visually separate configuration logic from help within | 127 | used to help visually separate configuration logic from help within |
128 | the file as an aid to developers. | 128 | the file as an aid to developers. |
129 | 129 | ||
130 | - misc options: "option" <symbol>[=<value>] | ||
131 | Various less common options can be defined via this option syntax, | ||
132 | which can modify the behaviour of the menu entry and its config | ||
133 | symbol. These options are currently possible: | ||
134 | |||
135 | - "defconfig_list" | ||
136 | This declares a list of default entries which can be used when | ||
137 | looking for the default configuration (which is used when the main | ||
138 | .config doesn't exists yet.) | ||
139 | |||
140 | - "modules" | ||
141 | This declares the symbol to be used as the MODULES symbol, which | ||
142 | enables the third modular state for all config symbols. | ||
143 | |||
144 | - "env"=<value> | ||
145 | This imports the environment variable into Kconfig. It behaves like | ||
146 | a default, except that the value comes from the environment, this | ||
147 | also means that the behaviour when mixing it with normal defaults is | ||
148 | undefined at this point. The symbol is currently not exported back | ||
149 | to the build environment (if this is desired, it can be done via | ||
150 | another symbol). | ||
130 | 151 | ||
131 | Menu dependencies | 152 | Menu dependencies |
132 | ----------------- | 153 | ----------------- |
@@ -162,9 +183,9 @@ An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2 | |||
162 | respectively for calculations). A menu entry becomes visible when it's | 183 | respectively for calculations). A menu entry becomes visible when it's |
163 | expression evaluates to 'm' or 'y'. | 184 | expression evaluates to 'm' or 'y'. |
164 | 185 | ||
165 | There are two types of symbols: constant and nonconstant symbols. | 186 | There are two types of symbols: constant and non-constant symbols. |
166 | Nonconstant symbols are the most common ones and are defined with the | 187 | Non-constant symbols are the most common ones and are defined with the |
167 | 'config' statement. Nonconstant symbols consist entirely of alphanumeric | 188 | 'config' statement. Non-constant symbols consist entirely of alphanumeric |
168 | characters or underscores. | 189 | characters or underscores. |
169 | Constant symbols are only part of expressions. Constant symbols are | 190 | Constant symbols are only part of expressions. Constant symbols are |
170 | always surrounded by single or double quotes. Within the quote, any | 191 | always surrounded by single or double quotes. Within the quote, any |
@@ -301,3 +322,81 @@ mainmenu: | |||
301 | 322 | ||
302 | This sets the config program's title bar if the config program chooses | 323 | This sets the config program's title bar if the config program chooses |
303 | to use it. | 324 | to use it. |
325 | |||
326 | |||
327 | Kconfig hints | ||
328 | ------------- | ||
329 | This is a collection of Kconfig tips, most of which aren't obvious at | ||
330 | first glance and most of which have become idioms in several Kconfig | ||
331 | files. | ||
332 | |||
333 | Adding common features and make the usage configurable | ||
334 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
335 | It is a common idiom to implement a feature/functionality that are | ||
336 | relevant for some architectures but not all. | ||
337 | The recommended way to do so is to use a config variable named HAVE_* | ||
338 | that is defined in a common Kconfig file and selected by the relevant | ||
339 | architectures. | ||
340 | An example is the generic IOMAP functionality. | ||
341 | |||
342 | We would in lib/Kconfig see: | ||
343 | |||
344 | # Generic IOMAP is used to ... | ||
345 | config HAVE_GENERIC_IOMAP | ||
346 | |||
347 | config GENERIC_IOMAP | ||
348 | depends on HAVE_GENERIC_IOMAP && FOO | ||
349 | |||
350 | And in lib/Makefile we would see: | ||
351 | obj-$(CONFIG_GENERIC_IOMAP) += iomap.o | ||
352 | |||
353 | For each architecture using the generic IOMAP functionality we would see: | ||
354 | |||
355 | config X86 | ||
356 | select ... | ||
357 | select HAVE_GENERIC_IOMAP | ||
358 | select ... | ||
359 | |||
360 | Note: we use the existing config option and avoid creating a new | ||
361 | config variable to select HAVE_GENERIC_IOMAP. | ||
362 | |||
363 | Note: the use of the internal config variable HAVE_GENERIC_IOMAP, it is | ||
364 | introduced to overcome the limitation of select which will force a | ||
365 | config option to 'y' no matter the dependencies. | ||
366 | The dependencies are moved to the symbol GENERIC_IOMAP and we avoid the | ||
367 | situation where select forces a symbol equals to 'y'. | ||
368 | |||
369 | Build as module only | ||
370 | ~~~~~~~~~~~~~~~~~~~~ | ||
371 | To restrict a component build to module-only, qualify its config symbol | ||
372 | with "depends on m". E.g.: | ||
373 | |||
374 | config FOO | ||
375 | depends on BAR && m | ||
376 | |||
377 | limits FOO to module (=m) or disabled (=n). | ||
378 | |||
379 | |||
380 | Build limited by a third config symbol which may be =y or =m | ||
381 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
382 | A common idiom that we see (and sometimes have problems with) is this: | ||
383 | |||
384 | When option C in B (module or subsystem) uses interfaces from A (module | ||
385 | or subsystem), and both A and B are tristate (could be =y or =m if they | ||
386 | were independent of each other, but they aren't), then we need to limit | ||
387 | C such that it cannot be built statically if A is built as a loadable | ||
388 | module. (C already depends on B, so there is no dependency issue to | ||
389 | take care of here.) | ||
390 | |||
391 | If A is linked statically into the kernel image, C can be built | ||
392 | statically or as loadable module(s). However, if A is built as loadable | ||
393 | module(s), then C must be restricted to loadable module(s) also. This | ||
394 | can be expressed in kconfig language as: | ||
395 | |||
396 | config C | ||
397 | depends on A = y || A = B | ||
398 | |||
399 | or for real examples, use this command in a kernel tree: | ||
400 | |||
401 | $ find . -name Kconfig\* | xargs grep -ns "depends on.*=.*||.*=" | grep -v orig | ||
402 | |||
diff --git a/Documentation/mips/00-INDEX b/Documentation/mips/00-INDEX index 3f13bf8043d2..8ae9cffc2262 100644 --- a/Documentation/mips/00-INDEX +++ b/Documentation/mips/00-INDEX | |||
@@ -2,5 +2,3 @@ | |||
2 | - this file. | 2 | - this file. |
3 | AU1xxx_IDE.README | 3 | AU1xxx_IDE.README |
4 | - README for MIPS AU1XXX IDE driver. | 4 | - README for MIPS AU1XXX IDE driver. |
5 | GT64120.README | ||
6 | - README for dir with info on MIPS boards using GT-64120 or GT-64120A. | ||
diff --git a/Documentation/mips/GT64120.README b/Documentation/mips/GT64120.README deleted file mode 100644 index 2d0eec91dc59..000000000000 --- a/Documentation/mips/GT64120.README +++ /dev/null | |||
@@ -1,65 +0,0 @@ | |||
1 | README for arch/mips/gt64120 directory and subdirectories | ||
2 | |||
3 | Jun Sun, jsun@mvista.com or jsun@junsun.net | ||
4 | 01/27, 2001 | ||
5 | |||
6 | MOTIVATION | ||
7 | ---------- | ||
8 | |||
9 | Many MIPS boards share the same system controller (or CPU companian chip), | ||
10 | such as GT-64120. It is highly desirable to let these boards share | ||
11 | the same controller code instead of duplicating them. | ||
12 | |||
13 | This directory is meant to hold all MIPS boards that use GT-64120 or GT-64120A. | ||
14 | |||
15 | |||
16 | HOW TO ADD A BOARD | ||
17 | ------------------ | ||
18 | |||
19 | . Create a subdirectory include/asm/gt64120/<board>. | ||
20 | |||
21 | . Create a file called gt64120_dep.h under that directory. | ||
22 | |||
23 | . Modify include/asm/gt64120/gt64120.h file to include the new gt64120_dep.h | ||
24 | based on config options. The board-dep section is at the end of | ||
25 | include/asm/gt64120/gt64120.h file. There you can find all required | ||
26 | definitions include/asm/gt64120/<board>/gt64120_dep.h file must supply. | ||
27 | |||
28 | . Create a subdirectory arch/mips/gt64120/<board> directory to hold | ||
29 | board specific routines. | ||
30 | |||
31 | . The GT-64120 common code is supplied under arch/mips/gt64120/common directory. | ||
32 | It includes: | ||
33 | 1) arch/mips/gt64120/pci.c - | ||
34 | common PCI routine, include the top-level pcibios_init() | ||
35 | 2) arch/mips/gt64120/irq.c - | ||
36 | common IRQ routine, include the top-level do_IRQ() | ||
37 | [This part really belongs to arch/mips/kernel. jsun] | ||
38 | 3) arch/mips/gt64120/gt_irq.c - | ||
39 | common IRQ routines for GT-64120 chip. Currently it only handles | ||
40 | the timer interrupt. | ||
41 | |||
42 | . Board-specific routines are supplied under arch/mips/gt64120/<board> dir. | ||
43 | 1) arch/mips/gt64120/<board>/pci.c - it provides bus fixup routine | ||
44 | 2) arch/mips/gt64120/<board>/irq.c - it provides enable/disable irqs | ||
45 | and board irq setup routine (irq_setup) | ||
46 | 3) arch/mips/gt64120/<board>/int-handler.S - | ||
47 | The first-level interrupt dispatching routine. | ||
48 | 4) a bunch of other "normal" stuff (setup, prom, dbg_io, reset, etc) | ||
49 | |||
50 | . Follow other "normal" procedure to modify configuration files, etc. | ||
51 | |||
52 | |||
53 | TO-DO LIST | ||
54 | ---------- | ||
55 | |||
56 | . Expand arch/mips/gt64120/gt_irq.c to handle all GT-64120 interrupts. | ||
57 | We probably need to introduce GT_IRQ_BASE in board-dep header file, | ||
58 | which is used the starting irq_nr for all GT irqs. | ||
59 | |||
60 | A function, gt64120_handle_irq(), will be added so that the first-level | ||
61 | irq dispatcher will call this function if it detects an interrupt | ||
62 | from GT-64120. | ||
63 | |||
64 | . More support for GT-64120 PCI features (2nd PCI bus, perhaps) | ||
65 | |||