Home
last modified time | relevance | path

Searched refs:that (Results 1 – 200 of 3088) sorted by relevance

12345678910>>...16

/linux-4.1.27/Documentation/RCU/
Dtrace.txt5 output that summarizes counters and state. This information is useful for
21 Note that rcu/rcu_preempt is only present for CONFIG_PREEMPT_RCU.
23 so that activity for both appears in rcu/rcu_sched.
32 The first line shows the number of rcutorture tests that have completed
35 update cycles that the current test has started, or zero if there is
51 Displays counts of the reasons rcu_pending() decided that RCU had
74 no output for CPUs that have never been online, which can be
78 o "c" is the count of grace periods that this CPU believes have
83 Note that although the grace-period number is an unsigned long,
87 o "g" is the count of grace periods that this CPU believes have
[all …]
Dchecklist.txt5 that make use of RCU. Violating any of the rules listed below will
6 result in the same sorts of problems that leaving out a locking primitive
13 performance measurements show that RCU is nonetheless the right
42 information relating to itself that other tasks can read, there
61 any locks or atomic operations. This means that readers will
68 RCU-protected data structures that have been added to
74 locks (that are acquired by both readers and writers)
75 that guard per-element state. Of course, fields that
90 d. Carefully order the updates and the reads so that
99 a separate structure, so that the change may be made
[all …]
DUP.txt4 A common misconception is that, on UP systems, the call_rcu() primitive
6 is that since there is only one CPU, it should not be necessary to
10 This document presents three examples that demonstrate exactly how bad
16 Suppose that an RCU-based algorithm scans a linked list containing
18 this same list in softirq context. Suppose that the process-context scan
38 Suppose that an RCU-based algorithm again scans a linked list containing
39 elements A, B, and C in process contexts, but that it invokes a function
40 on each element as it is scanned. Suppose further that this function
46 underlying RCU, namely that call_rcu() defers invoking its arguments until
55 Suppose that call_rcu() is invoked while holding a lock, and that the
[all …]
Drcu_dereference.txt14 bugs due to games that compilers and DEC Alpha can play.
18 DEC Alpha can load a pointer, dereference that pointer, and
19 return data preceding initialization that preceded the store of
29 is within its right to assume that the value of an index into
32 that the array index no longer depended on the value returned
44 these expressions, so that subsequent accesses no longer depend
49 and "b" are integers that happen to be equal, the expression
61 Please note that single-bit operands to bitwise "&" can also
62 be dangerous. At this point, the compiler knows that the
68 o If you are using RCU to protect JITed functions, so that the
[all …]
DNMI-RCU.txt19 The dummy_nmi_callback() function is a "dummy" NMI handler that does
20 nothing, but returns zero, thus saying that it did nothing, allowing
44 in the same way that a hardware irq would, then increments the per-CPU
57 given that the code referenced by the pointer is read-only?
67 The set_nmi_callback() function registers an NMI handler. Note that any
68 data that is to be used by the callback must be initialized up -before-
69 the call to set_nmi_callback(). On architectures that do not order
70 writes, the rcu_assign_pointer() ensures that the NMI handler sees the
92 any preemption-disabled segments of code that they were executing.
104 that the code referenced by the pointer is read-only?
[all …]
Dlockdep.txt3 All flavors of RCU have lockdep checking available, so that lockdep is
6 that this is not the case in 2.6.32 and earlier). This allows lockdep's
10 In addition, RCU provides the following primitives that check lockdep's
36 rcu_read_lock_held(). This is useful in code that is
40 rcu_read_lock_bh_held(). This is useful in code that
44 rcu_read_lock_sched_held(). This is useful in code that
48 srcu_read_lock_held()(). This is useful in code that
53 This is useful in code that uses RCU-protected arrays
54 that is invoked by both RCU readers and updaters.
60 structure cannot change, for example, in code that is
[all …]
Drcu.txt5 operations into two parts, one that prevents anyone from seeing the data
6 item being destroyed, and one that actually carries out the destruction.
8 must be long enough that any readers accessing the item being deleted have
19 The advantage of RCU's two-part approach is that RCU readers need
22 barriers. The fact that these operations are quite expensive
24 in read-mostly situations. The fact that RCU readers need not
33 three states, we know that that CPU has exited any previous RCU
37 safely free up that item.
40 same effect, but require that the readers manipulate CPU-local
62 o What guidelines should I follow when writing code that uses RCU?
[all …]
DwhatisRCU.txt1 Please note that the "What is RCU?" LWN series is an excellent place
12 RCU is a synchronization mechanism that was added to the Linux kernel
13 during the 2.5 development effort that is optimized for read-mostly
15 getting there can sometimes be a challenge. Part of the problem is that
17 assumption that there is "one true way" to describe RCU. Instead,
18 the experience has been that different people must take different paths
33 some point. People who prefer to start with an API that they can then
41 So, start with the section that makes the most sense to you and your
44 that type of person, you have perused the source code and will therefore
54 The reason that it is safe to run the removal phase concurrently with
[all …]
Dstallwarn.txt4 detector, which detects conditions that unduly delay RCU grace periods.
13 that RCU will wait from the beginning of a grace period until it
65 For non-RCU-tasks flavors of RCU, when a CPU detects that it is stalling,
70 This message indicates that CPU 5 detected that it was causing a stall,
71 and that the stall was affecting RCU-sched. This message will normally be
83 This message indicates that CPU 2 detected that CPUs 3 and 5 were both
84 causing stalls, and that the stall was affecting RCU-bh. This message
85 will normally be followed by stack dumps for each CPU. Please note that
87 and that the tasks will be indicated by PID, for example, "P3421".
100 interact. Please note that it is not possible to entirely eliminate this
[all …]
Drcuref.txt4 Please note that the percpu-ref feature is likely your first
108 The key point is that the initial reference added by add() is not removed
109 until after a grace period has elapsed following removal. This means that
110 search_and_reference() cannot find this element, which means that the value
112 readers that can or ever will be able to reference the element. The
113 element can therefore safely be freed. This in turn guarantees that if
114 any reader finds the element, that reader may safely acquire a reference
118 delete(), so that el_free() can be subsumed into delete as follows:
Drcubarrier.txt5 RCU (read-copy update) is a synchronization mechanism that can be thought
7 very low-overhead readers that are immune to deadlock, priority inversion,
12 This means that RCU writers are unaware of the presence of concurrent
13 readers, so that RCU updates to shared data must be undertaken quite
20 given that readers might well leave absolutely no trace of their
21 presence? There is a synchronize_rcu() primitive that blocks until all
33 another pointer to a function that may be invoked later to free that
75 callbacks to complete. Please note that rcu_barrier() does -not- imply
88 the flavor of rcu_barrier() with that of call_rcu(). If your module
90 flavors of rcu_barrier() when unloading that module. For example, if
[all …]
/linux-4.1.27/Documentation/filesystems/
Ddirectory-locking7 that "inode pointer" order in the following.
18 4) rename() that is _not_ cross-directory. Locking rules: caller locks
20 it. If source is a non-directory, lock it. If that means we need to
25 * check that source is not a directory
39 it. In case that means we need to lock both source and target,
44 The rules above obviously guarantee that all directories that are going to be
84 blocked on source and it means that it doesn't hold any locks.
87 has a child that is also contended. Indeed, suppose that it is held by
89 is blocked on belongs to child of that object due to (1).
91 It means that one of the operations is cross-directory rename.
[all …]
Ddax.txt11 For block devices that are memory-like, the page cache pages would be
31 that identifies the physical page for the memory. It also returns a
32 kernel virtual address that can be used to access the memory.
34 The direct_access method takes a 'size' parameter that indicates the
36 of bytes that can be contiguously accessed at that offset. It may also
66 - ensuring that there is sufficient locking between reads, writes,
70 uninitialised extents. If it does, it must ensure that simultaneous
82 Even if the kernel or its modules are stored on a filesystem that supports
83 DAX on a block device that supports DAX, they will still be copied into RAM.
88 Calling get_user_pages() on a range of user memory that has been mmaped
[all …]
Dxfs-delayed-logging-design.txt12 required for objects that are frequently logged. Some parts of inodes are more
17 The reason that this is such a concern is that XFS allows multiple separate
21 "re-logging". Conceptually, this is quite simple - all it requires is that any
23 changes in the new transaction that is written to the log.
43 that an object being relogged does not prevent the tail of the log from ever
56 progresses, ensuring that current operation never gets blocked by itself if the
59 Hence it can be seen that the relogging operation is fundamental to the correct
63 the log over and over again. Worse is the fact that objects tend to get
67 Another feature of the XFS transaction subsystem is that most transactions are
70 forces the log buffers holding the transactions to disk. This means that XFS is
[all …]
Dhpfs.txt16 Set owner/group/mode for files that do not have it specified in extended
19 that for files mode is anded with 0666. If you want files to have 'x'
26 text file than to damage binary file). If you want to change that list,
28 heuristic algorithm that I removed. I thing it's danger to let the
34 danger. I tried to write it so that it won't crash if check=normal on
41 When to mark filesystem dirty so that OS/2 checks it.
54 As in OS/2, filenames are case insensitive. However, shell thinks that names
56 'cat FOO', 'cat Foo', 'cat foo' or 'cat F*' but not 'cat f*'. Note, that you
70 an ascii string identifying that attribute and value is any string of bytes of
75 that extended attributes those value differs from defaults specified in mount
[all …]
Dseq_file.txt11 Virtual files can provide human-readable output that is easy to get at
13 script writers. It is not surprising that the use of virtual files has
17 however. It is not that hard to make a virtual file which returns a
21 position within the virtual file - that position is, likely as not, in the
23 implementations that got this wrong.
45 better to do. The file is seekable, in that one can do something like the
59 Note that the above article uses create_proc_entry which was removed in
70 iterator object that allows stepping through the data of interest.
72 implement - but the interpretation of that position is up to the iterator
73 itself. A seq_file implementation that is formatting firewall rules, for
[all …]
Dporting37 Keep in mind that now you need explicit initialization of private data
40 At some point that will become mandatory.
49 Turn your foo_read_super() into a function that would return 0 in case of
79 ->rmdir() and ->rename()). If you used to need that exclusion and do
89 - that will guarantee the same locking you used to have. If your method or its
91 unlock_kernel() so that they would protect exactly what needs to be
125 FS_SINGLE is gone (actually, that had happened back when ->get_sb()
133 watch for ->i_mutex-grabbing code that might be used by your ->setattr().
149 It is planned that this will be required for exporting once the code
169 'test' is an additional function that can be used when the inode
[all …]
Dlocks.txt17 been totally removed, so that we don't need to carry this baggage
34 file with flock(). With pre 1.3.96 kernels this could result in deadlocks that,
46 race and deadlock conditions that the current solution was the only
48 4.1.x and several other commercial Unices. The only OS's that support
49 cooperative flock()/fcntl() are those that emulate flock() using
50 fcntl(), with all the problems that implies.
58 general configuration option that was valid for all mounted filesystems. This
65 The default is to disallow mandatory locking. The intention is that
Dxfs-self-describing-metadata.txt11 is this very scalability that causes the verification problem.
23 manual task of verifying that things like single bit errors or misplaced writes
29 to analyse and so that analysis blows out towards weeks/months of forensic work.
31 up, the more likely that the cause will be lost in the noise. Hence the primary
39 One of the problems with the current metadata format is that apart from the
46 verification of metadata values, looking for values that are in range (and hence
56 ensure that common types of errors are easily detectable. Hence the concept of
59 The first, fundamental requirement of self describing metadata is that the
76 integrity checking. We cannot trust the metadata if we cannot verify that it has
85 fast. So while CRC32c is not the strongest of possible integrity checks that
[all …]
Dhfsplus.txt20 Specifies the user/group that owns all files on the filesystem
21 that have uninitialized permissions structures.
26 that have uninitialized permissions structures.
31 leaving that decision to the CDROM driver. This option will fail
47 Used to force write access to volumes that are marked as journalled
/linux-4.1.27/Documentation/
DManagementStyle11 to do with reality. It started as a lark, but that doesn't mean that it
24 making it painfully obvious to the questioner that we don't have a clue
32 Everybody thinks managers make decisions, and that decision-making is
42 competent to make that decision for them.
46 Namely that you are in the wrong job, and that _they_ should be managing
55 It helps to realize that the key difference between a big decision and a
57 can be made small by just always making sure that if you were wrong (and
62 And people will even see that as true leadership (*cough* bullshit
66 things that can't be undone. Don't get ushered into a corner from which
70 It turns out that since nobody would be stupid enough to ever really let
[all …]
DBUG-HUNTING11 - Finding patch that caused a bug
20 not confident in doing that please report the bug to your distribution vendor
25 MAINTAINERS for who that is for the subsystem you have worked on.
32 Often this is caused by udev. Check that first before blaming it on the
35 Finding patch that caused a bug
62 . All the kernel tar files from a revision that worked to the
63 revision that doesn't
67 . Rebuild a revision that you believe works, install, and verify that.
70 you know that 1.3.69 does. Pick a kernel in the middle and build
71 that, like 1.3.50. Build & test; if it works, pick the mid point
[all …]
DDMA-attributes.txt4 This document describes the semantics of the DMA attributes that are
20 useful, suppose that a device does a DMA write to indicate that data is
28 DMA_ATTR_WEAK_ORDERING specifies that reads and writes to the mapping
29 may be weakly ordered, that is that reads and writes may pass each other.
32 those that do not will simply ignore the attribute and exhibit default
38 DMA_ATTR_WRITE_COMBINE specifies that writes to the mapping may be
42 those that do not will simply ignore the attribute and exhibit default
50 you are guaranteeing to the platform that you have all the correct and
62 that you won't dereference the pointer returned by dma_alloc_attr(). You
63 can treat it as a cookie that must be passed to dma_mmap_attrs() and
[all …]
DSubmitChecklist4 Here are some basic things that developers should do if they want to see their
7 These are all above and beyond the documentation that is provided in
12 1: If you use a facility then #include the file that defines/declares
13 that facility. Don't depend on other header files pulling in ones
14 that you use.
32 You should be able to justify all violations that remain in
46 that they find. Note: checkstack does not point out problems explicitly,
47 but any one function that uses more than 512 bytes on the stack is a
76 Patches that change userspace interfaces should be CCed to
79 20: Check that it all passes `make headers_check'.
[all …]
Dstable_api_nonsense.txt8 realize that this article describes the _in kernel_ interfaces, not the
10 the one that application programs use, the syscall interface. That
12 programs that were built on a pre 0.9something kernel that still work
14 that users and application programmers can count on being stable.
21 you get that only if your driver is in the main kernel tree. You also
31 It's only the odd person who wants to write a kernel driver that needs
38 that describes kernel drivers that do not have their source code
51 Assuming that we had a stable kernel source interface for the kernel, a
58 isn't that important, but the different data structure padding is
68 There is no way that binary drivers from one architecture will run
[all …]
Dthis_cpu_ops.txt11 specific per cpu base and encode that operation in the instruction
14 This means that there are no atomicity issues between the calculation of
16 necessary to disable preemption or interrupts to ensure that the
21 processors have special lower latency instructions that can operate
30 processor should be accessing that variable and therefore there are no
33 Please note that accesses by remote processors to a per cpu area are
82 from that address which occurs with the per cpu operations. Before
106 Note that these operations can only be used on per cpu data that is
108 surrounding code this_cpu_inc() will only guarantee that one of the
110 guarantee that the OS will not move the process directly before or
[all …]
DSubmittingPatches41 Note, however, that you may not want to develop against the mainline tree
44 in the MAINTAINERS file to find that tree, or simply ask the maintainer if
48 in the next section), but that is the hard way to do kernel development.
61 change is in - that makes the resultant diff a lot easier to read.
110 5000 lines of a new feature, there must be an underlying problem that
111 motivated you to do this work. Convince the reviewer that there is a
112 problem worth fixing and that it makes sense for them to read past the
116 pretty convincing, but not all bugs are that blatant. Even if the
118 it can have on users. Keep in mind that the majority of Linux
120 vendor/product-specific trees that cherry-pick only specific patches
[all …]
Dunaligned-memory-access.txt6 unaligned accesses, why you need to write code that doesn't cause them,
14 from an address that is not evenly divisible by N (i.e. addr % N != 0).
39 writing code that satisfies natural alignment requirements is the easiest way
59 silently perform a different memory access to the one that was requested,
60 resulting in a subtle code bug that is hard to detect!
62 It should be obvious from the above that if your code causes unaligned
67 Code that does not cause unaligned access
75 ensures that things will work for you. For example, take the following
84 Let us assume that an instance of the above structure resides in memory
86 not be unreasonable to expect that accessing field2 would cause an unaligned
[all …]
Drobust-futex-ABI.txt6 Robust_futexes provide a mechanism that is used in addition to normal
34 A thread that anticipates possibly using robust_futexes should first
51 setup that list.
60 be called the 'lock word', from that 'lock entry'. The 'lock word'
80 waiting for a lock on a threads exit if that next thread used the futex
81 mechanism to register the address of that 'lock word' with the kernel.
84 robust_futex support for exit cleanup of that lock, it should have one
89 that lock using the futex mechanism.
93 pointer for that task. The task may retrieve that value later on by
100 It is anticipated that threads will use robust_futexes embedded in
[all …]
Dmodule-signing.txt27 signature checking is done by the kernel so that it is not necessary to have
34 hash algorithms that can be used are SHA-1, SHA-224, SHA-256, SHA-384, and
51 This specifies how the kernel should deal with a module that has a
52 signature for which the key is not known or a module that is unsigned.
55 available and modules that are unsigned are permitted, but the kernel will
59 If this is on (ie. "restrictive"), only modules that have a valid
60 signature that can be verified by a public key in the kernel's possession
63 Irrespective of the setting here, if the module has a signature block that
88 than being a module) so that modules signed with that algorithm can have
100 kernel so that it can be used to check the signatures as the modules are
[all …]
Dkernel-per-CPU-kthreads.txt4 options to control their OS jitter. Note that non-per-CPU kthreads are
39 that does not require per-CPU kthreads. This will prevent these
45 3. Rework the eHCA driver so that its per-CPU kthreads are
83 from being initiated from tasks that might run on the CPU to
90 from being initiated from tasks that might run on the CPU to
97 from being initiated from tasks that might run on the CPU to
101 1. Avoid use of drivers that use tasklets. (Such drivers will contain
103 2. Convert all drivers that you must use from tasklets to workqueues.
108 for example, ensure that at most one runnable kthread is present
109 on that CPU. If a thread that expects to run on the de-jittered
[all …]
Datomic_ops.txt12 be made opaque such that any kind of cast to a normal C integer type
35 The initializer is atomic in that the return values of the atomic operations
56 The setting is atomic in that the return values of the atomic operations by
57 all threads are guaranteed to be correct reflecting either the value that has
67 The read is atomic in that the return value is guaranteed to be one of the
71 interface operations. atomic_read does not guarantee that the runtime
73 interface must take care of that with a proper implicit or explicit memory
82 C statements that may be reordered or optimized away entirely by the compiler
84 barrier for each use case. Failure to do so will result in code that may
95 that might otherwise optimize accesses out of existence on the one hand,
[all …]
Dmemory-barriers.txt101 Each CPU executes a program that generates memory access operations. In the
163 Note that CPU 2 will never try and load C into D because the CPU will load P
173 registers that are accessed through an address port register (A) and a data
192 There are some minimal guarantees that may be expected of a CPU:
195 respect to itself. This means that for:
203 and always in that order. On most systems, smp_read_barrier_depends()
205 is required to prevent compiler mischief. Please note that you
210 ordered within that CPU. This means that for:
229 And there are a number of things that _must_ or _must_not_ be assumed:
231 (*) It _must_not_ be assumed that the compiler will do what you want with
[all …]
Dparport.txt29 to tell the parport code that you want three PC-style ports, one at
51 Note that these are example lines only! You shouldn't in general need
62 port is detected, the devices that are connected to it are analysed,
82 command-line will make parport use any IRQ lines or DMA channels that
93 describing that parallel port.
135 devices/active A list of the device drivers using that port. A "+"
138 string "none" means that there are no device drivers
139 using that port.
164 Note that the current implementation will only take
168 autoprobe Any IEEE-1284 device ID information that has been
[all …]
Dassoc_array.txt38 Rather, the array is made up of metadata blocks that point to objects.
66 The implementation uses a tree of 16-pointer nodes internally that are indexed
91 The insertion and deletion functions produce an 'edit script' that can later be
93 preallocated metadata blocks that will be installed in the internal tree and
94 keeps track of the metadata blocks that will be removed from the tree when the
98 script has been applied so that they can be freed later. The freeing is done
177 Free the specified object. Note that this may be called an RCU grace
203 This inserts the given object into the array. Note that the least
207 If an object already exists for that key then it will be replaced with the
214 an edit script that must be applied. -ENOMEM is returned in the case of
[all …]
Dlogo.txt2 ("currently unofficial" just means that there has been no paperwork and
3 that I have not really announced it yet). It was created by Larry Ewing,
7 Note that there are black-and-white versions of this available that
Dkmemcheck.txt25 is a dynamic checker that detects and warns about some uses of uninitialized
29 difference between memcheck and kmemcheck is that memcheck works for userspace
33 programmer errors that the compiler is not able to find through static
36 Enabling kmemcheck on a kernel will probably slow it down to the extent that
60 Without this, gcc will use certain optimizations that usually lead to
77 function at the beginning of every function. This means that when the
80 modifies memory that was tracked by kmemcheck, the result is an
147 will get lost in that way instead. Try setting this to 10 or so on
158 bytes that will be saved. So if you pick for example 5 here, kmemcheck
166 This option (when enabled) works around certain GCC optimizations that
[all …]
Dcachetlb.txt12 implementation, and what is to happen on that single processor. The
13 SMP cases are a simple extension, in that you just extend the
14 definition such that the side effect for a particular interface occurs
18 if it can be proven that a user address space has never executed
20 for this address space on that cpu.
25 page tables. Meaning that if the software page tables change, it is
43 the TLB. After running, this interface must make sure that
57 interface must make sure that any previous page table
66 The interface is provided in hopes that the port can find
82 After running, this interface must make sure that any previous
[all …]
Dkobject.txt12 abstraction upon which it is built - is that there is no obvious starting
16 adding detail as we go. To that end, here are some quick definitions of
32 - A ktype is the type of object that embeds a kobject. Every structure
33 that embeds a kobject needs a corresponding ktype. The ktype controls
39 safely ignore that implementation detail as the kset core code handles
67 So, for example, the UIO code in drivers/uio/uio.c has a structure that
76 just a matter of using the kobj member. Code that works with kobjects will
79 (such as assuming that the kobject is at the beginning of the structure)
116 Code which creates a kobject must, of course, initialize that object. Some
144 There is a function called kobject_set_name() but that is legacy cruft and
[all …]
Drobust-futexes.txt6 what are robust futexes? To answer that, we first need to understand
7 what futexes are: normal futexes are special types of locks that in the
14 that says "there's a waiter pending", and the sys_futex(FUTEX_WAIT)
16 creates a 'futex queue' internally, so that it can later on match up the
19 value) that there were waiter(s) pending, and does the
23 completely forgets that there ever was a futex at that address. This
27 process exits prematurely while holding a pthread_mutex_t lock that is
29 pthread_mutex_t, or yum is kill -9-ed), then waiters for that lock need
30 to be notified that the last owner of the lock exited in some irregular
39 the kernel that destroys the owner task (e.g. due to a SEGFAULT), but
[all …]
Dbus-virt-phys-mapping.txt19 that is, normal RAM--see later about other details):
32 things any more complex than necessary, so you can assume that all
36 address, and things are very simple indeed. However, they are that simple
37 because the memory and the devices share the same address space, and that is
47 Now, that looks simple enough. However, when you look at the same thing from
84 You want the _virtual_ address when you are actually going to access that
106 on the other hand, you want the bus address when you have a buffer that
116 use that from the CPU (the CPU only uses translated virtual addresses), and
128 only talks about "real memory", that is, CPU memory (RAM).
130 There is a completely different type of memory too, and that's the "shared
[all …]
DCodingStyle6 views on anybody, but this is what goes for anything that I have to be
19 There are heretic movements that try to make indentations 4 (or even 2!)
20 characters deep, and that is akin to trying to define the value of PI to
28 Now, some people will claim that having 8-character indentations makes
30 80-character terminal screen. The answer to that is that if you need
36 Heed that warning.
87 printk messages, because that breaks the ability to grep for them.
92 The other issue that always comes up in C styling is the placement of
124 Heretic people all over the world have claimed that this inconsistency
125 is ... well ... inconsistent, but all right-thinking people know that
[all …]
Doops-tracing.txt3 the Oops" or "running it through ksymoops". If you post an Oops from 2.6 that
9 Find the Oops and send it to the maintainer of the kernel area that seems to be
28 If the machine has crashed so badly that you cannot enter commands or
36 may find that booting with a higher resolution (eg, vga=791)
63 Actually, there are things you can do that make this easier. I have two
71 information of which function and the offset in the function that it
74 Oh, it helps if the report happens on a kernel that is compiled with the
86 and do a replace of spaces to "\x" - that's what I do, as I'm too lazy
92 The hex bytes that follow "Code:" may (in some architectures) have a series
93 of bytes that precede the current instruction pointer as well as bytes at and
[all …]
DDMA-ISA-LPC.txt23 Kconfig to be dependent on ISA_DMA_API (not ISA) so that nobody tries
40 In order to allocate a piece of memory that satisfies all these
47 (This scarcity also means that you should allocate the buffer as
55 thing. The reason for this is that the function isa_virt_to_phys()
57 is really all you need. Remember that even though the DMA controller
72 This means that of the four 16-bits channels only three are usable.)
89 using claim_dma_lock(). The reason is that some DMA operations are
95 controller that is used for the non-atomic operations. As long as you
105 transfer. Note that it's _bytes_. The DMA routines will do all the
106 required translation to values that the DMA controller understands.
[all …]
Drfkill.txt24 - hard block: read-only radio block that cannot be overridden by software
25 - soft block: writable radio block (need not be readable) that is set by
42 the system know about hardware-disabled states that may be implemented on
64 that, a button. If that button influences the hardware then you need to
68 For some platforms, it is possible that the hardware state changes during
82 rfkill drivers that control devices that can be hard-blocked unless they also
91 character device that allows userspace to obtain and set the state of rfkill
93 and removal. The API is a simple read/write API that is defined in
94 linux/rfkill.h, with one ioctl that allows turning off the deprecated input
DHOWTO8 but will help point you in the right direction for that.
28 you plan to do low-level development for that architecture. Though they
36 adheres to the ISO C89 standard, it uses a number of extensions that are
42 and the extensions that it uses, and unfortunately there is no
46 Please remember that you are trying to learn how to work with the
73 The Linux kernel source tree has a large range of documents that are
75 new features are added to the kernel, it is recommended that new
77 When a kernel change causes the interface that the kernel exposes to
78 userspace to change, it is recommended that you send the information or
83 Here is a list of files that are in the kernel source tree that are
[all …]
Dirqflags-tracing.txt6 that it gives interested subsystems an opportunity to be notified of
7 every hardirqs-off/hardirqs-on, softirqs-off/softirqs-on event that
14 are locking APIs that are not used in IRQ context. (the one exception
22 Architectures that want to support this need to do a couple of
45 implementation in an architecture: lockdep will detect that and will
48 changes break other code by modifying conditions or registers that
/linux-4.1.27/Documentation/vm/
Dactive_mm.txt6 Cc'd to linux-kernel, because I don't write explanations all that often,
19 difference is that an anonymous address space doesn't care about the
24 The obvious use for a "anonymous address space" is any thread that
26 this category, but even "real" threads can temporarily say that for
28 and that the scheduler might as well try to avoid wasting time on
30 sync does that.
33 tsk->mm will be NULL, for the logical reason that an anonymous process
37 "stole" for such an anonymous user. For that, we have "tsk->active_mm",
40 The rule is that for a process with a real address space (ie tsk->mm is
49 To support all that, the "struct mm_struct" now has two counters: a
[all …]
Dhighmem.txt26 exceeds the maximum size of virtual memory. At that point it becomes
29 the pieces of physical memory that it wants to access.
33 where exactly that border lies.
36 VM space so that we don't have to pay the full TLB invalidation costs for
51 This means that the kernel can at most map 1GiB of physical memory at any one
56 Other architectures that have mm context tagged TLBs can have separate kernel
77 page. Since the mapping is restricted to the CPU that issued it, it
78 performs well, but the issuing task is therefore required to stay on that
84 It may be assumed that k[un]map_atomic() won't fail.
92 wants to access the contents of a page that might be allocated from high memory
[all …]
Dpage_migration5 nodes in a numa system while the process is running. This means that the
6 virtual addresses that the process sees do not change. However, the
10 by moving pages near to the processor where the process accessing that memory
18 process that are located on the from nodes to the destination nodes.
32 through user space processes that move pages. A special function call
43 a new cpuset then also all its pages are moved with it so that the
68 so that it cannot vanish while the page migration occurs.
72 2. We need to have a function of type new_page_t that can be
78 the new page for each page that is considered for
87 is increased so that the page cannot be freed while page migration occurs.
[all …]
Dunevictable-lru.txt42 and the rationale for some of the design decisions that drove the
45 details - the "what does it do?" - by reading the code. One hopes that the
46 descriptions below add value by provide the answer to "why does it do that?".
63 of pages that are evictable. This can result in a situation where all CPUs are
75 The infrastructure may also be able to handle other conditions that make pages
84 indicate that the page is being managed on the unevictable list.
87 PG_active flag in that it indicates on which LRU list a page resides when
100 can only migrate pages that it can successfully isolate from the LRU
138 reclaim process can be more efficient, dealing only with pages that have a
175 Note that SHM_LOCK is not required to page in the locked pages if they're
[all …]
Dnuma_memory_policy.txt15 programming interface that a NUMA-aware application can take advantage of. When
27 is the policy that governs all page allocations that aren't controlled
37 on behalf of the task that aren't controlled by a more specific scope.
38 If a task does not define a task policy, then all page allocations that
46 executable image that has no awareness of memory policy. See the
48 that a task may use to set/change its task/process policy.
51 [Linux kernel task] that installs the policy and any threads
52 subsequently created by that thread. Any sibling threads existing
67 A VMA policy will govern the allocation of pages that back this region of
68 the address space. Any regions of the task's address space that don't
[all …]
Dfrontswap.txt31 to refuse further stores with that swap type.
47 Note that if a page is stored and the page already exists in transcendent memory
70 "transcendent memory" that is otherwise not directly addressable to the kernel.
85 that can be safely kept in RAM. Zcache essentially trades off CPU
137 device that is swapon'd. This is added to the EIGHT bits (which
138 was sixteen until about 2.6.34) that the kernel already allocates
139 for every swap page for every swap device that is swapon'd. (Hugh
140 Dickins has observed that frontswap could probably steal one of
141 the existing eight bits, but let's worry about that minor optimization
146 out to disk, there is a side effect that this may create more memory
[all …]
Dzswap.txt3 Zswap is a lightweight compressed cache for swap pages. It takes pages that are
12 potential configurations and workloads that exist. For this reason, zswap
18 * Overcommitted guests that share a common I/O resource can
36 the backing swap device in the case that the compressed pool is full.
40 returned by the allocation routine and that handle must be mapped before being
46 handle that references that compressed swap page. This mapping is achieved
50 During a page fault on a PTE that is a swap entry, frontswap calls the zswap
60 * max_pool_percent - The maximum percentage of memory that the compressed
Dnuma8 From the hardware perspective, a NUMA system is a computer platform that
49 "closer" nodes--nodes that map to closer cells--will generally experience
54 physical cell that has no memory attached, and reassign any CPUs attached to
55 that cell to a node representing a cell that does have memory. Thus, on
56 these architectures, one cannot assume that all CPUs that Linux associates with
78 memory, Linux must decide whether to order the zonelists such that allocations
89 node to which the CPU that executes the request is assigned. Specifically,
94 that can satisfy the request.
99 later migrate away from that memory. The Linux scheduler is aware of the
114 System administrators can restrict the CPUs and nodes' memories that a non-
[all …]
/linux-4.1.27/Documentation/locking/
Drt-mutex-design.txt10 It doesn't describe the reasons why rtmutex.c exists. For that please see
12 that happen without this code, but that is in the concept to understand
16 inheritance (PI) algorithm that is used, as well as reasons for the
17 decisions that were made to implement PI in the manner that was done.
26 to use a resource that a lower priority process has (a mutex for example),
36 that C owns and must wait and lets C run to release the lock. But in the
70 inherited priority, and A then can continue with the resource that C had.
75 Here I explain some terminology that is used in this document to help describe
76 the design that is used to implement PI.
78 PI chain - The PI chain is an ordered series of locks and processes that cause
[all …]
Dlockdep-design.txt12 A class of locks is a group of locks that are logically the same with
15 struct is one class, while each inode has its own instantiation of that
20 rolling proof that the state and the dependencies are correct.
24 and all subsequent uses of that lock-class will be attached to this
75 The validator detects and reports lock usage that violate these
106 The above rules are enforced for any locking sequence that occurs in the
125 (Again, we do these checks too on the basis that an interrupt context
127 could lead to a lock inversion deadlock - even if that lock scenario did
140 An example of such an object hierarchy that results in "nested locking"
141 is that of a "whole disk" block-dev object and a "partition" block-dev
[all …]
Dspinlocks.txt14 spinlock itself will guarantee the global lock, so it will guarantee that
15 there is only one thread-of-control within the region(s) protected by that
28 sequences that you _know_ need to be split up: avoid it at all cost if you
35 easily added to places that are completely independent of other code (for
36 example, internal driver data structures that nobody else ever touches).
39 to do locking across CPU's, which implies that EVERYTHING that
64 .. critical section that only reads the info ...
73 itself. The read lock allows many concurrent readers. Anything that
92 are the most safe ones, and the ones that work under all circumstances,
100 cheaper versions of the spinlocks. IFF you know that the spinlocks are
[all …]
Dmutex-design.txt10 that enforces serialization on shared memory systems, and not only to
15 of advantages, including simpler interfaces, and at that time smaller
26 transitions that can occur during the lifetime of a lock:
33 that serializes access to it. CONFIG_SMP systems can also include
37 When acquiring a mutex, there are three possible paths that can be
58 to run that have higher priority (need_resched). The rationale is
59 that if the lock owner is running, it is likely to release the lock
60 soon. The mutex spinners are queued up using MCS lock so that only
66 cacheline bouncing that common test-and-set spinlock implementations
69 MCS lock is that it has the extra property that spinners are able to exit
[all …]
Dww-mutex-design.txt9 GPU's do operations that commonly involve many buffers. Those buffers
16 there is no way to guarantee that buffers appear in a execbuf/batch in
18 userspace, and a result of the sequence of GL calls that an application
20 more complex when you consider that the kernel may need to migrate the
26 The algorithm that the TTM graphics subsystem came up with for dealing with
27 this problem is quite simple. For each group of buffers (execbuf) that need
32 younger task) unlocks all of the buffers that it has already locked, and then
71 has a void return type. Note that since ww mutex code needs loops/retries
74 - When full debugging is enabled ww_mutex_lock_slow checks that all acquired
75 ww mutex have been released (preventing deadlocks) and makes sure that we
[all …]
/linux-4.1.27/Documentation/driver-model/
Dbinding.txt5 driver that can control it. Bus drivers have typically handled this
14 The bus type structure contains a list of all devices that are on that bus
17 list of all drivers of that bus type. When driver_register is called
26 to find one that supports it. In order to determine that, the device
27 ID of the device must match one of the device IDs that the driver
38 chance to verify that it really does support the hardware, and that
46 class, and that is set in the driver's devclass field.
62 A symlink is created in the bus's 'devices' directory that points to
65 A symlink is created in the driver's 'devices' directory that points
69 symlink is created in that directory that points to the device's
[all …]
Dporting.txt19 In a nutshell, the driver model consists of a set of objects that can
104 It is recommended that the generic device not be the first item in
120 that are performed (which is Good).
129 The bus_id is an ASCII string that contains the device's address on
133 parent is the physical parent of the device. It is important that
136 The driver model maintains an ordered list of devices that it uses
137 for power management. This list must be in order to guarantee that
143 device's parent. sysfs exports a directory structure that mirrors
144 the device hierarchy. Accurately setting the parent guarantees that
148 belongs to. This should be set to the bus_type that was declared
[all …]
Ddesign-patterns.txt6 It is likely that subsystem maintainers will ask driver developers to
16 While the kernel contains a few device drivers that assume that they will
18 that the device the driver binds to will appear in several instances. This
19 means that the probe() function and all callbacks need to be reentrant.
43 state around to all functions that need access to the state and its members.
102 The design pattern is the same for an hrtimer or something similar that will
111 Notice that the contained member must not be a pointer, but an actual member
114 We can see here that we avoid having global pointers to our struct foo *
Ddriver.txt11 be multiple devices in a system that a driver supports, struct
43 bus-specific fields that cannot be generalized.
46 typically defines an array of device IDs that it supports. The format
59 A definition that included bus-specific fields would look like
82 The driver registers the structure on startup. For drivers that have
90 It is important that drivers register their driver structure as early as
103 define generic callbacks that forward the call to the bus-specific
109 complexity and code size, it is recommended that they are converted as
121 The devices field is a list of all the devices that have been bound to
155 given device. That includes verifying that the device is present, that
[all …]
Dclass.txt14 that devices of that class adhere to. Device drivers are the
15 implementation of that programming interface for a particular device on
52 that the driver belongs to. Before the driver model core, this would
67 list of devices that it supports. The device class has a list of
68 drivers of that particular class. To access all of the devices in the
93 that points to the driver's directory (under its bus directory):
102 Each device gets a symlink in the devices/ directory that points to the
120 Class drivers can export attributes using the DEVCLASS_ATTR macro that works
146 to every interface that is registered with the device class.
/linux-4.1.27/Documentation/power/
Dfreezing-of-tasks.txt12 There are three per-task flags used for that, PF_NOFREEZE, PF_FROZEN
13 and PF_FREEZER_SKIP (the last one is auxiliary). The tasks that have
23 sets this variable. After this, it executes try_to_freeze_tasks() that sends a
25 All freezable tasks must react to that by calling try_to_freeze(), which
28 it loop until PF_FROZEN is cleared for it. Then, we say that the task is
35 try_to_freeze() function (defined in include/linux/freezer.h), that checks
42 that combine interruptible sleep with checking if the task is to be frozen and
64 order to clear the PF_FROZEN flag for each frozen task. Then, the tasks that
95 IV. Why do we do that?
104 filesystem-related information that must be consistent with the state of the
[all …]
Ds2ram.txt9 2) If that does not help, try reading tricks.txt and
19 always it's a driver that is buggy. Thank God for the suspend/resume
20 debugging - the thing that Chuck tried to disable. That's often the _only_
23 driver that doesn't resume and recompile and reboot).
26 machine that doesn't boot) is:
47 which means that the last trace event was just before trying to resume
48 device 0000:01:00.0. Then figure out what driver is controlling that
53 the culprit may be a device from a loadable kernel module that is not loaded
61 that "radeonfb" simply cannot resume that device - it tries to set the
68 Reason for this is that the RTC is the only reliably available piece of
[all …]
Dsuspend-and-interrupts.txt11 suspend after the "late" phase of suspending devices (that is, after all of the
15 The rationale for doing so is that after the "late" phase of device suspend
19 interrupt handlers for shared IRQs that device drivers implementing them were
28 of resuming devices (that is, before starting to execute ->resume_early
29 callbacks for devices). The function doing that is resume_device_irqs().
35 There are interrupts that can legitimately trigger during the entire system
41 The IRQF_NO_SUSPEND flag is used to indicate that to the IRQ subsystem when
44 expected during the suspend-resume cycle, but does not guarantee that the
48 Note that the IRQF_NO_SUSPEND flag affects the entire IRQ and not just one
64 (such as an SoC) so that signals from a given line are routed in a different way
[all …]
Dbasic-pm-debugging.txt12 the command prompt where you have started the transition. If that happens,
43 there is the file /sys/power/pm_test that can be used to make the hibernation
89 contains a space-separated list of all available tests (including "none" that
99 to make sure that any random factors are avoided).
101 If the "freezer" test fails, there is a task that cannot be frozen (in that case
104 that there is a problem with the tasks freezer subsystem that should be
107 If the "devices" test fails, most likely there is a driver that cannot suspend
109 after the test, so please take that into consideration). To find this driver,
112 (that would probably involve rebooting the system, so always note what drivers
118 them), you have to unload it every time before hibernation. In that case please
[all …]
Dswsusp.txt45 should not do that.]
64 that this be done prior to remounting any filesystems (even as
74 Nowadays it is common in several laptops that they have a suspend button. It
79 are real high when running from batteries. The other gain is that we don't have to
80 interrupt our programs so processes that are calculating something for a long
137 * assume we had special "polling" ide driver that only uses memory
138 between 0-640KB. That way, I'd have to make sure that 0-640KB is free
143 advance. That means that the limitation goes away in practice.
154 highmem and preemption. It also has a extensible architecture that
183 A: Do selective suspend during runtime power management, that's okay. But
[all …]
Dswsusp-dmcrypt.txt17 an initrd that does your current crypto setup already.
20 be able to suspend using swsusp. This, however, means that you
21 have to be able to either enter a passphrase or that you read
23 or an usb stick prior to resume. So you need an initrd, that sets
27 The most important thing is that you set up dm-crypt in such
28 a way that the swap device you suspend to/resume from has
31 to always set up this swap device first with dmsetup, so that
51 you create an initrd that reads the required dm-crypt setup
62 /dev/hda1 contains an unencrypted mini system that sets up all
65 initrd that allows you to resume from encrypted swap and that
[all …]
Dpci.txt41 approach, that is referred to as the native PCI power management (native PCI PM)
44 approach requires the platform firmware to provide special methods that may be
50 to put the device that sent it into the full-power state. However, the PCI Bus
53 It is assumed that the platform firmware will perform this task and therefore,
60 preparing the device to generate wakeup signals. In that case, however, it
63 that.
83 in that state. However, the higher the number, the longer the latency for
88 programmed to go into it. The second one, D3cold, is the state that PCI devices
97 Note that every PCI device can be in the full-power state (D0) or in D3cold,
99 that, if the PCI PM Spec is implemented by the device, it must support D3hot
[all …]
/linux-4.1.27/Documentation/powerpc/
Dqe_firmware.txt31 the particular license, please see the license text that is distributed with
45 integers that compose the actual QE microcode.
47 The term 'firmware' refers to a binary blob that contains the microcode as
48 well as other data that
55 Firmware files are binary files that contain only a firmware.
70 needs split I-RAM. Split I-RAM is only meaningful for SOCs that have
80 5) If necessary, device drivers that need the virtual traps and extended mode
91 This structure contains 6 words that the application should copy to some
119 This is a double word bit array (64 bits) that defines special functionality
127 | 0 | General | Indicates that prior to each host command |
[all …]
Dpci_iov_resource_on_powernv.txt17 to freeze a device that is causing errors in order to limit the possibility
20 There is thus, in HW, a table of PE states that contains a pair of "frozen"
25 return all 1's value. MSIs are also blocked. There's a bit more state that
26 captures things like the details of the error that caused the freeze etc., but
27 that's not critical.
33 (IODA2). Keep in mind that this is all per PHB (PCI host bridge). Each PHB
34 is a completely separate HW entity that replicates the entire logic, so has
44 memory but accessed in HW by the chip) that provides a direct
48 - For DMA we then provide an entire address space for each PE that can
59 the RTT to "authorize" the device to emit that specific interrupt.
[all …]
Dbootwrapper.txt8 be adaptable for each kind of image that needs to be built.
11 Makefile in that directory has targets for all the available image types.
25 U-Boot (for versions that don't understand the device
29 with boot wrapper code that extracts data from the old
48 dtbImages are similar to simpleImages except that
57 simpleImage.%: Firmware independent compressed image that does not
59 a device tree blob. This image is a flat binary that
67 the Xilinx Virtex platform). The only assumption that
68 simpleImage makes is that RAM is correctly initialized
69 and that the MMU is either off or has RAM mapped to
[all …]
Dhvcs.txt51 Sysfs must be mounted on the system so that the user can determine which
110 There is a maximum number of dev entries that can be specified on insmod.
111 We think that 1024 is currently a decent maximum number of server adapters
128 The modules.dep file indicates that hvcserver.ko needs to be inserted
182 minor numbers that the tty layer has allocated for this driver's use. Most
202 NOTE: Just because there is a device node present doesn't mean that there
203 is a vty-server device configured for that node.
208 Since this driver controls devices that provide a tty interface a user can
212 which requires the use of applications that provide bi-directional,
215 Applications (e.g. "minicom" and "screen") that act as terminal emulators
[all …]
Deeh-pci-error-recovery.txt13 controller chips that have extended capabilities for detecting and
26 the idea behind EEH is that the operating system can become more
43 The most common software bug, is one that causes the device to
44 attempt to DMA to a location in system memory that has not been
45 reserved for DMA access for that card. This is a powerful feature,
85 uniform abstraction layer that will work with all pSeries
88 If the OS or device driver suspects that a PCI slot has been
91 into a consistent state (given that it won't be able to complete any
100 do not need to know that the PCI card has been "rebooted" in this
105 kernel/device driver should assume the worst-case scenario, that the
[all …]
/linux-4.1.27/Documentation/i2c/
Dfault-codes9 faults. There may be fancier recovery schemes that are appropriate in
14 result for an operation ... it doesn't indicate that anything is wrong
15 at all, just that the outcome wasn't on the "golden path".
19 the right fault code, so that it can (in turn) behave correctly.
29 Note that the descriptions here are not exhaustive. There are other
30 codes that may be returned, and other cases where these codes should
44 atomic context, when some task is already using that I2C bus
53 host. Note that even if PECs are in use, you should not rely
60 or that the reset was attempted but failed.
81 Returned by any component that can't allocate memory when
[all …]
Dwriting-clients67 Each client structure has a special `data' field that can point to any
76 Note that starting with kernel 2.6.34, you don't have to set the `data' field
91 but many chips have some kind of register-value idea that can easily
121 that were more appropriate to SMBus (and PCs) than to I2C. One of these
122 assumptions was that most adapters and devices drivers support the SMBUS_QUICK
123 protocol to probe device presence. Another was that devices and their drivers
128 problematic. Drivers for I2C devices that issue interrupts need more (and
130 that can't be distinguished by protocol probing, or which need some board
152 Remember that the i2c_driver does not create those client handles. The
158 matches the device's name. It is passed the entry that was matched so
[all …]
/linux-4.1.27/Documentation/development-process/
D6.Followthrough5 patches. One of the biggest mistakes that even experienced kernel
6 developers can make is to conclude that their work is now done. In truth,
10 It is a rare patch which is so good at its first posting that there is no
13 code. You, as the author of that code, will be expected to work with the
14 kernel community to ensure that your code is up to the kernel's quality
28 value and why you went to the trouble of writing it. But that value
32 to substantial rewrites - come from the understanding that Linux will
45 be working on the kernel years from now, but they understand that their
50 What all of this comes down to is that, when reviewers send you comments,
51 you need to pay attention to the technical observations that they are
[all …]
D1.Intro16 and the kinds of frustrations that developers and their employers can
36 which can help to ensure that kernel patches are correct.
45 done at that point. Working with reviewers is a crucial part of the
48 assuming that the job is done when a patch is merged into the mainline.
69 vendors want to ensure that Linux supports their products well, making
78 One of the most compelling features of Linux is that it is accessible to
88 that notwithstanding, many potential contributors have experienced
93 surprising that Linux kernel development process differs greatly from
104 It is hoped that those who read this document will be able to avoid that
132 matter is that keeping code separate ("out of tree") is a false economy.
[all …]
D4.Coding11 will shift toward doing things right and the tools which can help in that
20 Documentation/CodingStyle. For much of that time, the policies described
21 in that file were taken as being, at most, advisory. As a result, there is
23 style guidelines. The presence of that code leads to two independent
26 The first of these is to believe that the kernel coding standards do not
27 matter and are not enforced. The truth of the matter is that adding new
28 code to the kernel is very difficult if that code is not coded according to
29 the standard; many developers will request that the code be reformatted
41 The other trap is to assume that code which is already in the kernel is
63 But experience has shown that excessive or premature abstraction can be
[all …]
D5.Posting17 completely "ready." For simple patches, that is not a problem. If the
21 that interested developers can catch up with your work at any time.
27 with the idea that they can help you drive the work in the right direction.
35 - Test the code to the extent that you can. Make use of the kernel's
36 debugging tools, ensure that the kernel will build with all reasonable
47 - Be sure that you have the right to post the code. If this work was done
76 out how to do it in the way that the community expects. There are a few
96 good chance that it will be passed over and the important fix will be
113 patches, but to leave that infrastructure unused until the final patch
115 avoided if possible; if that series adds regressions, bisection will
[all …]
/linux-4.1.27/Documentation/namespaces/
Dresource-control.txt1 There are a lot of kinds of objects in the kernel that don't have
2 individual limits or that have limits that are ineffective when a set
7 Therefore it is recommended that memory control groups be enabled in
8 kernels that enable user namespaces, and it is further recommended
9 that userspace configure memory control groups to limit how much
/linux-4.1.27/Documentation/ABI/testing/
Dsysfs-firmware-memmap6 kernel reads. The resources from that memory map are registered
10 However, on most architectures that firmware-provided memory
12 the kernel merges that memory map with other information or
13 just because the user overwrites that memory map via command
17 parameter segment of the kernel that should be booted with
19 that reason, /sys/firmware/memmap is an interface that provides
32 by the firmware. The order is just the order that the firmware
59 Following shell snippet can be used to display that memory
Dsysfs-bus-event_source-devices-format6 Attribute group to describe the magic bits that go into
9 we want to export, so that userspace can deal with sane
12 Userspace must be prepared for the possibility that attributes
19 Defines contents of attribute that occupies bits 1,6-10,44 of
Dsysfs-block44 integrity of read requests serviced by devices that
70 devices that support receiving integrity metadata.
76 Storage devices may report a physical block size that is
87 Storage devices may report a physical block size that is
108 drives with 4KB sectors that expose a 512-byte logical
158 Devices that support discard functionality may
159 internally allocate space in units that are bigger than
169 Devices that support discard functionality may
170 internally allocate space in units that are bigger than
180 Devices that support discard functionality may
[all …]
Dsysfs-platform-dell-laptop8 illumination mode on some systems that have an ambient
27 This file allows to control the input triggers that
28 turn on the keyboard backlight illumination that is
42 Note that not all the available triggers can be configured.
63 Note that when this file is read, the returned value might be
67 Also note that only some timeouts are supported and that
Dsysfs-driver-toshiba_acpi11 Note that from kernel 3.16 onwards this file accepts all listed
14 Also note that toggling this value on type 1 devices, requires
25 Note that the kernel 3.15 only had support for the first
58 Note that not all keyboard types support the listed modes.
82 Note that from kernel 4.1 onwards this file accepts all listed
84 Note that this feature only works when connected to power, if
101 Note that when the value is set to disabled, the sleep function
112 Note that toggling this value requires a reboot for changes to
123 Note that this feature only works when connected to power, if
156 Note that toggling this value requires a reboot for changes to
[all …]
Dsysfs-power5 The /sys/power directory will contain files that will
43 'firmware' - means that the memory image will be saved to disk
44 by some firmware, in which case we also assume that the
78 supports that.
86 string representing a non-negative integer that will be used
102 last PM event point in the RTC across reboots, so that you can
103 debug a machine that just hangs during suspend (or more
115 positives), it is possible that the last PM event point
136 kernel log (see /sys/power/pm_trace), is that it includes
140 possible that more than one device matches the hash, in which
[all …]
Dsysfs-devices-system-cpu19 Description: CPU topology files that describe kernel limits related to
25 offline: cpus that are not online because they have been
29 online: cpus that are online and being scheduled.
31 possible: cpus that have been allocated resources and can be
34 present: cpus that have been identified as being present in
61 When CONFIG_NUMA is enabled, a symbolic link that points
78 Description: CPU topology files that describe a logical CPU's relationship
115 Various CPUs today support multiple idle levels that are
152 freqdomain_cpus is the list of CPUs (online+offline) that share
172 disabled index for that node. There is one L3 structure per
[all …]
/linux-4.1.27/Documentation/filesystems/caching/
Dobject.txt25 FS-Cache maintains an in-kernel representation of each object that a netfs is
29 FS-Cache also maintains a separate in-kernel representation of the objects that
98 object->state. A cookie may point to a set of objects that are in different
101 Each state has an action associated with it that is invoked when the machine
102 wakes up in that state. There are four logical sets of states:
104 (1) Preparation: states that wait for the parent objects to become ready. The
105 representations are hierarchical, and it is expected that an object must
108 (2) Initialisation: states that perform lookups in the cache and validate
109 what's found and that create on disk any missing metadata.
111 (3) Normal running: states that allow netfs operations on objects to proceed
[all …]
Dcachefiles.txt34 CacheFiles is a caching backend that's meant to use as a cache a directory on
42 filesystem providing the backing services. Note that CacheFiles does not
46 CacheFiles creates a misc character device - "/dev/cachefiles" - that is used
78 It is strongly recommended that the "dir_index" option is enabled on Ext3
131 configures the cache and tells it to begin caching. At that point the cache
163 kernel module contains its own very cut-down path walking facility that ignores
187 discarding objects from the cache that have been used less recently than
220 Note that these are percentages of available space and available files, and do
241 kernel module moves any retired or culled objects that it can't simply unlink
245 anything that appears therein.
[all …]
Dbackend-api.txt31 (*) "ops" is a pointer to the table of operations that the backend supports on
79 (1) that of the userspace process that issued the netfs operation that caused
82 (2) that of one of the processes in the FS-Cache thread pool.
117 The fields that might be of use to the backend describe the object
143 The debug_id is a simple integer that can be used in debugging messages
144 that refer to a particular object. In such a case it should be printed
147 Each object contains a pointer to the cookie that represents the object it
165 FS-Cache has a pool of threads that it uses to give CPU time to the
166 various asynchronous operations that need to be done as part of driving
219 The cache backend provides FS-Cache with a table of operations that can be
[all …]
Dfscache.txt33 Or to look at it another way, FS-Cache is a module that provides a caching
34 facility to a network filesystem such that the cache is transparent to the
72 then serving the pages out of that cache rather than the netfs inode because:
97 (3) The netfs is provided with an interface that allows either party to
108 desires, though it must be aware that the index search function is
113 indicates that page A is at index B of the data-file represented by cookie
114 C, and that it should be read or written. The cache backend may or may
115 not start I/O on that page, but if it does, a netfs callback will be
120 them as obsolete and the index hierarchy rooted at that point will get
124 saying whether a match was made or not, this can also specify that an
[all …]
Dnetfs-api.txt94 However, since it's unlikely that any two netfs's are going to want to define
183 parent for the non-index object will be queried. Any indices above that
185 need to be supplied for any non-index object or any index that will only
189 cache in the parent's list will be chosen, or failing that, the first
194 This function will be called with the netfs data that was passed to the
195 cookie acquisition function and the maximum length of key data that it may
201 This function will be called with the netfs data that was passed to the
210 This function will be called with the netfs data that was passed to the
211 cookie acquisition function and the maximum length of auxiliary data that
223 This function will be called to check that a match found in the cache for
[all …]
/linux-4.1.27/Documentation/cgroups/
Dcpusets.txt42 an on-line node that contains memory.
56 policy, are both filtered through that task's cpuset, filtering out any
57 CPUs or Memory Nodes not in that cpuset. The scheduler will not
58 schedule a task on a CPU that is not allowed in its cpus_allowed
60 node that is not allowed in the requesting task's mems_allowed vector.
124 allowed in that task's cpuset.
126 those Memory Nodes allowed in that task's cpuset.
133 - A cpuset may be marked exclusive, which ensures that no other
144 allowed in that task's cpuset.
148 Memory Nodes by what's allowed in that task's cpuset.
[all …]
Dcgroups.txt49 A *subsystem* is a module that makes use of the task grouping
51 particular ways. A subsystem is typically a "resource controller" that
53 anything that wants to act on a group of processes, e.g. a
56 A *hierarchy* is a set of cgroups arranged in a tree, such that
69 associated with that instance of the cgroup file system.
72 tracking. The intention is that other subsystems hook into the generic
99 complex combinations of tasks that would be present if several
108 that can benefit from multiple hierarchies, consider a large
120 that they can run anywhere) with a limit of 20%
148 Also let's say that the administrator would like to give enhanced network
[all …]
/linux-4.1.27/Documentation/block/
Ddeadline-iosched.txt5 In particular, it will clarify the meaning of the exposed tunables that may be
23 a deadline that is the current time + the read_expire value in units of
53 how many times we give preference to reads over writes. When that has been
61 Sometimes it happens that a request enters the io scheduler that is contiguous
62 with a request that is already on the queue. Either it fits in the back of that
66 may even know that it is a waste of time to spend any time attempting to
69 that comes at basically 0 cost we leave that on. We simply disable the
Dqueue-sysfs.txt4 This text file will detail the queue files that are located in the sysfs tree
5 for each block device. Note that stacked devices typically do not export
25 Devices that support discard functionality may have internal limits on
26 the number of bytes that can be trimmed or unmapped in a single operation.
28 number of bytes that can be discarded in a single operation. Discard
30 value of 0 means that the device does not support discard functionality.
61 This is the maximum number of kilobytes that the block layer will allow
88 read or write requests. Note that the total allocated number may be twice
120 cpu "group" that originally submitted the request. For some workloads this
123 For storage configurations that need to maximize distribution of completion
[all …]
Dwriteback_cache_control.txt15 The Linux block layer provides two simple mechanisms that let filesystems
26 guarantees that previously completed write requests are on non-volatile
37 filesystem and will make sure that I/O completion for this request is only
57 drivers that do not have a volatile cache the REQ_FLUSH and REQ_FUA bits
67 For devices that do not support volatile write caches there is no driver
70 requests that have a payload. For devices with volatile write caches the
71 driver needs to tell the block layer that it supports flushing caches by
76 and handle empty REQ_FLUSH requests in its prep_fn/request_fn. Note that
79 layer. For devices that also support the FUA bit the block layer needs
84 and the driver must handle write requests that have the REQ_FUA bit set
Ddata-integrity.txt7 after the data was written. At that point the original data that the
10 The solution is to ensure that the disk is actually storing what the
16 checksum for each sector as well as an incrementing counter that
18 for some protection schemes also that the I/O is written to the right
25 DIF and the other integrity extensions is that the protection format
53 read. This means that Linux can DMA the data buffers to and from
57 is somewhat heavy to compute in software. Benchmarks found that
82 to be pinned to I/Os and sent to/received from controllers that
85 The advantage to the integrity extensions in SCSI and SATA is that
88 disadvantage. It means that the protection information must be in a
[all …]
/linux-4.1.27/Documentation/acpi/
Dscan_handlers.txt7 is scanned in search of device objects that generally represent various pieces
25 bridge, its registration should cause the PCI bus under that bridge to be
26 enumerated and PCI devices on that bus to be registered with the driver core.
28 to configure that link so that the kernel can use it.
52 callback is executed for the given device node. If that callback returns 1,
53 that means that the handler has claimed the device node and is now responsible
55 be responsible for preparing the device node for unregistration in that case.
57 handler that has claimed it.
59 If the .attach() callback returns 0, it means that the device node is not
61 handler in the list. If it returns a (negative) error code, that means that
[all …]
Dgpio-properties.txt41 ref - The device that has _CRS containing GpioIo()/GpioInt() resources,
52 resource, second pin in that resource with the GPIO number of 31.
62 available to the driver can be used to identify the device and that is supposed
66 once it has identified the device. Having done that, it can simply assign names
70 To do that, the driver needs to define a mapping table as a NULL-terminated
71 array of struct acpi_gpio_mapping objects that each contain a name, a pointer
72 to an array of line data (struct acpi_gpio_params) objects and the size of that
76 line in that resource starting from zero, and the active-low flag for that line,
92 acpi_dev_add_driver_gpios() that will register it with the ACPI device object
95 calling acpi_dev_remove_driver_gpios() on the ACPI device object where that
/linux-4.1.27/drivers/block/paride/
DTransition-notes5 under ps_spinlock. There are three places where that can happen:
15 ps_tq_int() are sandwiched between {A,C} and B in that sequence,
41 on the path that returns 0
45 * in pi_wake_up() called for PIA that belongs to pd.c, everything from
49 1) at any time at most one thread of execution can be in that area or
52 that thread.
54 held by that thread.
60 (1) can become not true if some thread enters that area while another is there.
64 mean that (2) was already not true.
69 ps_spinlock and ps_tq_active is 1 (due to Lemma 1). It means that
[all …]
/linux-4.1.27/Documentation/ia64/
Dmca.txt2 free to update it with notes about any area that is not clear.
9 asking for deadlock. Also the state of structures that are protected
24 * Slave cpus that receive the MCA interrupt call down into SAL, they
29 sends an unmaskable INIT event to the slave cpus that have not
36 (and does) modify TP. It is allowed to do that as long as it resets
42 assume that the kernel stack is in a fit state to be used. Mainly
50 the kernel stack[1]. So switching to a new kernel stack means that
52 assume that current points into the struct task, switching to a new
60 tasks. The only way to do that on ia64 is to call the unwinder,
66 knows how to start unwinding it. The tasks that received an MCA or
[all …]
/linux-4.1.27/Documentation/dvb/
Dudev.txt4 This means that only the basic information like module loading parameters
5 are presented through sysfs. Other things that might be interesting are
8 Nevertheless it's now possible to add proper udev rules so that the
11 We assume that you have udev already up and running and that have been
31 1. You need to create a proper udev rule that will create the device nodes
36 Create a new rule file in that directory called "dvb.rule" and add the following line:
44 For every device that registers to the sysfs subsystem with a "dvb" prefix,
Dci.txt13 (Common Interface, that holds the CAM (Conditional Access Module)
29 same ones that szap uses.
42 * Cards that fall in this category
44 At present the cards that fall in this category are the Twinhan and its
48 * CI modules that are supported
52 nothing much that can be done in order to make additional CI modules
55 Modules that have been tested by this driver at present are
71 The disadvantage is that the driver/hardware has to manage the rest. For
104 This CI interface is quite different in the case that it tries to
105 accommodate all other CI based devices, that fall into the other categories.
[all …]
/linux-4.1.27/Documentation/devicetree/bindings/i2c/
Di2c-arb-gpio-challenge.txt8 the case where there is a device on the bus that has errata and/or bugs
9 that makes standard multimaster mode not feasible.
11 Note that this scheme works well enough but has some downsides:
20 All masters on the bus have a 'bus claim' line which is an output that the
24 - OUR_CLAIM: output from us signaling to other hosts that we want the bus
25 - THEIR_CLAIMS: output from others signaling that they want the bus
28 sure that the other side doesn't want it also. A detailed explanation is best
44 - our-claim-gpio: The GPIO that we use to claim the bus.
45 - their-claim-gpios: The GPIOs that the other sides use to claim the bus.
46 Note that some implementations may only support a single other master.
/linux-4.1.27/Documentation/laptops/
Ddisk-shock-protection.txt29 Please note, however, that other components have to be set up on your
32 that).
73 A word of caution: The fact that the interface operates on a basis of
74 milliseconds may raise expectations that cannot be satisfied in
75 reality. In fact, the ATA specs clearly state that the time for an
77 that this will typically be within 500 milliseconds apparently has
80 There is a technical detail of this implementation that may cause some
84 to say, any other device that may be connected to the same port will
85 be affected too. The only exception is that a subsequent head unload
86 request to that other device will be executed immediately. Further
[all …]
Dlaptop-mode.txt11 Laptop mode is used to minimize the time that the hard disk needs to be spun up,
43 laptops that don't have ACPI. On those laptops, you need to start laptop
46 has experimental support for APM, you might want to try that first.)
52 * The downside of laptop mode is that you have a chance of losing up to 10
55 so that you won't lose any data at the end of your battery life.
68 the control script will not recognize them as filesystems that need remounting.
71 * It has been reported that some versions of the mutt mail client use file access
81 present for all kernels that have the laptop mode patch, regardless of any
82 configuration options. When the knob is set, any physical disk I/O (that might
84 result of this is that after a disk has spun down, it will not be spun up
[all …]
/linux-4.1.27/Documentation/networking/
Dradiotap-headers.txt18 There is a fixed portion at the start which contains a u32 bitmap that defines
19 if the possible argument associated with that bit is present or not. So if b0
20 of the it_present member of ieee80211_radiotap_header is set, it means that
29 we run out of space in the u32 it_present member, it is defined that b31 set
30 indicates that there is another u32 bitmap following (shown as "possible
34 Note also that the it_len member __le16 is set to the total number of bytes
57 the first byte of the radiotap header. The absolute alignment of that first
62 - the above point that there may be no absolute alignment for multibyte
63 entities in the fixed radiotap header or the argument region means that you
66 dereference, eg, a u16 pointer that is pointing to an odd address. Instead
[all …]
DLICENSE.qlge32 price. Our General Public Licenses are designed to make sure that you
34 this service if you wish), that you receive source code or can get it
35 if you want it, that you can change the software or use pieces of it
36 in new free programs; and that you know you can do these things.
38 To protect your rights, we need to make restrictions that forbid
44 gratis or for a fee, you must give the recipients all the rights that
45 you have. You must make sure that they, too, receive or can get the
54 that everyone understands that there is no warranty for this free
56 want its recipients to know that what they have is not the original, so
57 that any problems introduced by others will not reflect on the original
[all …]
DLICENSE.qlcnic32 price. Our General Public Licenses are designed to make sure that you
34 this service if you wish), that you receive source code or can get it
35 if you want it, that you can change the software or use pieces of it
36 in new free programs; and that you know you can do these things.
38 To protect your rights, we need to make restrictions that forbid
44 gratis or for a fee, you must give the recipients all the rights that
45 you have. You must make sure that they, too, receive or can get the
54 that everyone understands that there is no warranty for this free
56 want its recipients to know that what they have is not the original, so
57 that any problems introduced by others will not reflect on the original
[all …]
Dnetdev-FAQ.txt11 Note that some subsystems (e.g. wireless drivers) which have a high volume
20 Aside from subsystems like that mentioned above, all network-related Linux
49 Relating that to netdev: At the beginning of the 2-week merge window,
57 sent to netdev, but knowing the above, you can predict that in advance.
70 is fed back to Linus at regular (~weekly) intervals. Meaning that the
88 Then once decided, assuming that you use git, use the prefix flag, i.e.
121 There is a patchworks queue that you can see here:
145 Before you jump to go do the above, do note that the normal stable rules
148 impacted. In addition, you need to convince yourself that you _really_
152 the better the odds that it is an OK candidate for stable. So scrambling
[all …]
Dopenvswitch.txt13 table" that userspace populates with "flows" that map from keys based
34 protocols that have become obsolete. Therefore, the Netlink interface
40 flow key that it parsed from the packet. Userspace then extracts its
59 that the kernel considers part of the flow must go to userspace,
61 determine that the values of the extra fields would not affect
73 information about a packet that cannot be extracted from the packet
83 corresponding to a TCP packet that arrived on vport 1:
111 that the kernel does not implement will simply result in additional flow setups.
112 The kernel module will also work with user space programs that neither support
128 responsibility of the user space program to ensure that any incoming packet
[all …]
Dscaling.txt26 applying a filter to each packet that assigns it to one of a small number
32 that is not the focus of these techniques.
55 one for each memory domain, where a memory domain is a set of CPUs that
71 that can route each interrupt to a particular CPU. The active mapping
77 will be running irqbalance, a daemon that dynamically optimizes IRQ
92 Per-cpu load can be observed using the mpstat utility, but note that on
104 Whereas RSS selects the queue and hence CPU that will run the hardware
116 selects the queue that should process a packet.
132 and the packet is queued to the tail of that CPU’s backlog queue. At
158 interrupting CPU from the map since that already performs much work.
[all …]
Daltera_tse.txt19 components that can be assembled and built into an FPGA using the Altera
20 Quartus toolchain. Quartus 13.1 and 14.0 were used to build the design that
115 e.g. using: ethtool -S ethX (that shows the statistics counters)
136 Section 5.2.2.1.2. This statistics is the count of frames that are successfully
140 Section 5.2.2.1.5. This statistic is the count of frames that are successfully
145 802.3-2012, Section 5.2.2.1.6. This statistic is the count of frames that are
150 Section 5.2.2.1.7. This statistic is the count of frames that are not an
171 a count of the number of packets received containing errors that prevented the
175 is a count of the number of packets that could not be transmitted due to errors.
178 statistic is a count of the number of packets received that were not addressed
[all …]
/linux-4.1.27/Documentation/devicetree/bindings/powerpc/fsl/
Dpamu.txt5 The PAMU is an I/O MMU that provides device-to-memory access control and
18 PAMU v1.0, on an SOC that has five PAMU devices, the size
44 a bitmask which selects the bits that should be set if
49 Each child node represents one PAMU controller. Each SOC device that is
51 that links to the corresponding specific child PAMU controller.
61 Two cells that specify the geometry of the primary PAMU
67 Two cells that specify the geometry of the secondary PAMU
74 Devices that have LIODNs need to specify links to the parent PAMU controller
75 (the actual PAMU controller that this device is connected to) and a pointer to
82 the device tree to assist code that dynamically determines the
[all …]
/linux-4.1.27/Documentation/security/
DSmack.txt8 control that includes simplicity in its primary design goals.
23 works best with file systems that support extended attributes,
29 access to systems that use them as Smack does.
66 The extended attributes that Smack uses are:
71 of the process that created it.
73 The Smack label of a process that execs a program file with
83 the Smack rule (more below) that permitted the write access
169 permissions that are not allowed. The string "r-x--" would
181 permissions that are not allowed. The string "r-x--" would
204 that have Smack write access to the host label. All packets
[all …]
Dkeys-request-key.txt46 The main difference between the access points is that the in-kernel interface
52 calls, except that they permit auxiliary data to be passed to the upcaller (the
53 default is NULL). This is only useful for those key types that define their
56 The two async in-kernel calls may return keys that are still in the process of
65 The following example assumes that the key types involved don't define their
84 (3) request_key() sees that A doesn't have the desired key yet, so it creates
89 (b) An authorisation key V that refers to key U and notes that process A
94 keyring that contains a link to auth key V.
103 search notes that the session keyring has auth key V in its bottom level.
113 (9) Upon instantiating key U, auth key V is automatically revoked so that it
[all …]
Dcredentials.txt37 Objects are things in the system that may be acted upon directly by
53 Amongst the credentials of most objects, there will be a subset that
54 indicates the ownership of that object. This is used for resource
62 Also amongst the credentials of those objects, there will be a subset that
63 indicates the 'objective context' of that object. This may or may not be
67 The objective context is used as part of the security calculation that is
72 A subject is an object that is acting upon another object.
80 given to it by a task that called fcntl(F_SETOWN) upon it. In this case,
87 is used as part of the security calculation that is carried out when a
92 from the real UID and GID that normally form the objective context of the
[all …]
/linux-4.1.27/Documentation/prctl/
Dno_new_privs.txt1 The execve system call can grant a newly-started program privileges that
5 careful to prevent the parent from doing anything that could subvert the
12 /etc/passwd to be replaced from the point of view of a process that
19 execution environment in a manner that persists across execve. Any task
22 promises not to grant the privilege to do anything that could not have
31 in no_new_privs mode. (This means that setting up a general-purpose
35 Note that no_new_privs does not prevent privilege changes that do not
48 given uid has no_new_privs set, then that uid will be unable to
/linux-4.1.27/Documentation/devicetree/bindings/
Dopen-pic.txt5 based on the binding defined for Open PIC in [1] and is a superset of that
31 - pic-no-reset: The presence of this property indicates that the PIC
33 be defined. The presence of this property also mandates that any
42 - <1st-cell>: The interrupt-number that identifies the interrupt source.
61 // No address cells so that 'interrupt-map' nodes which reference
81 * An interrupt generating device that is wired to an Open PIC.
84 // Interrupt source '42' that is active high level-sensitive.
85 // Note that there are only two cells as specified in the interrupt
89 // The interrupt controller that this device is wired to.
/linux-4.1.27/Documentation/gpio/
Dgpio-legacy.txt5 These calls use the gpio_* naming prefix. No other calls should use that
16 which GPIOs. Drivers can be written generically, so that board setup code
24 also "GPIO Expander" chips that connect using the I2C or SPI serial busses.
31 options about how that value is driven, so that for example only one
58 Note that this is called a "convention" because you don't need to do it this
61 glue logic that may even change between board revisions, and can't ever be
62 used on a board that's wired differently. Only least-common-denominator
64 and that can be critical for glue logic.
76 ARCH_WANT_OPTIONAL_GPIOLIB in their Kconfig. Drivers that can't work without
86 Note that these operations include I/O barriers on platforms which need to
[all …]
Dconsumer.txt4 This document describes the consumer interface of the GPIO framework. Note that
12 Drivers that can't work without standard GPIO calls should have Kconfig entries
13 that depend on GPIOLIB. The functions that allow a driver to obtain and use
18 All the functions that work with the descriptor-based GPIO interface are
27 non-forgeable handler that must be obtained through a call to one of the
29 device that will use the GPIO and the function the requested GPIO is supposed to
36 device that displays digits), an additional index argument can be specified:
164 Be aware that there is no default direction for GPIOs. Therefore, **using a GPIO
186 reported earlier from gpiod_direction_*(). However, note that not all platforms
187 can read the value of output pins; those that can't should always return zero.
[all …]
/linux-4.1.27/tools/perf/scripts/perl/Perf-Trace-Util/
DREADME7 that the core perf support for Perl calls on and should always be
9 that scripts may want to use. Context.pm contains the Perl->C
10 interface that allows scripts to access data in the embedding perf
11 executable; scripts wishing to do that should 'use Context.pm'.
14 want to add new Perl functions that end up accessing C data in the
17 that you want to access - it's passed as the second parameter,
20 After you do that:
28 You can delete the Makefile, object files and anything else that was
/linux-4.1.27/Documentation/fmc/
DAPI.txt4 The FMC core exports the usual 4 functions that are needed for a bus to
23 The data structure that describe a device is detailed in *note FMC
24 Device::, the one that describes a driver is detailed in *note FMC
25 Driver::. Please note that structures of type fmc_device must be
28 count reaches zero - actually, the device model does that in lieu of us.
31 by carriers that host more than one mezzanine. The devices must all be
37 If a carrier hosts slots that are driven by different FPGA devices, it
38 should register as a group only mezzanines that are driven by the same
/linux-4.1.27/Documentation/timers/
DNO_HZ.txt4 This document describes Kconfig options and boot parameters that can
21 3. Omit scheduling-clock ticks on CPUs that are either idle or that
34 are incapable of omitting scheduling-clock ticks. It turns out that
37 that use short bursts of CPU, where there are very frequent idle
75 1,500 OS instances might find that half of its CPU time was consumed by
90 An idle CPU that is not receiving scheduling-clock interrupts is said to
94 There is also a boot parameter "nohz=" that can be used to disable
104 Note that omitting scheduling-clock ticks for CPUs with only one runnable
121 "nohz_full=1,6-8" says that CPUs 1, 6, 7, and 8 are to be adaptive-ticks
122 CPUs. Note that you are prohibited from marking all of the CPUs as
[all …]
/linux-4.1.27/Documentation/video4linux/
DREADME.pvrusb235 activities that ensure correct operation of the device.
46 lot of work went into the driver to ensure that any kind of
48 driver internally leverages V4L to do its work but that really has
52 about APIs and also feel that it is a good design principle to keep
57 possible to produce a DVB high level interface that can sit right
71 to link things up with that source tree. Please see the Makefile
72 here for comments that explain how to do that.
81 pvrusb2-audio.[ch] - This is glue logic that resides between this
98 messages that can be enabled within the driver.
106 pvrusb2-eeprom.[ch] - This is glue logic that resides between this
[all …]
Dv4l2-controls.txt8 After all, the only part that a driver developer is interested in is:
18 All the rest is something that can be done centrally.
24 Note that the control framework relies on the presence of a struct v4l2_device
36 v4l2_ctrl_handler is the object that keeps track of controls. It maintains a
37 list of v4l2_ctrl objects that it owns and another list of references to
110 Note: this is a temporary solution only. Once all V4L2 drivers that depend
196 controls. There is no min argument since that is always 0 for menu controls,
202 v4l2_ctrl_new_std_menu in that it doesn't have the mask argument and takes
203 as the last argument an array of signed 64-bit integers that form an exact
209 control is the test pattern control for capture/display/sensors devices that
[all …]
/linux-4.1.27/Documentation/dmaengine/
Dprovider.txt15 entities that will be doing the copy, and requests what endpoints are
21 asserting that request line.
33 that requires data to be written exactly 16 or 24 bits at a time. This
41 using a parameter called the burst size, that defines how many single
46 that involve a single contiguous block of data. However, some of the
53 quite simple DMA controller that doesn't support it, and we'll have to
55 that implements in hardware scatter-gather.
59 over that collection, doing whatever we programmed there.
74 The one last thing is that usually, slave devices won't issue DRQ by
80 support other kind of transfers or memory operations that dmaengine
[all …]
/linux-4.1.27/tools/testing/ktest/examples/
DREADME7 and commented to show more generic use cases that are more helpful for
19 kvm.conf - A example of a config that is used to test a virtual guest running
22 snowball.conf - An example config that was used to demo ktest.pl against
25 include/ - The include directory holds default configs that can be
26 included into other configs. This is a real use example that shows how
29 options and variables that will make the included config work for the
/linux-4.1.27/Documentation/spi/
Dspidev13 * Prototyping in an environment that's not crash-prone; stray pointers
19 Of course there are drivers that can never be written in userspace, because
21 of the driver stack) that are not accessible to userspace.
36 When you do that, the sysfs node for the SPI device will include a child
37 device node with a "dev" attribute that will be understood by udev or mdev.
44 that userspace programs will open, created by "udev" or "mdev".
50 binds to that device. (Directory or symlink, based on whether
57 If you unbind the "spidev" driver from that device, those two "spidev" nodes
88 Note that this request is limited to SPI mode flags that fit in a
93 not limited to the bits that fit in one byte.
[all …]
Dspi-summary89 Many microcontrollers that can run Linux integrate one or more I/O
108 implies that its data is written half a clock before the first
117 trailing clock edge (CPHA=1), that's SPI mode 1.
119 Note that the clock mode is relevant as soon as the chipselect goes
130 main source code, and you should certainly read that chapter of the
171 /sys/bus/spi/devices/spiB.C ... symlink to that physical
175 that should be used with this device (for hotplug/coldplug)
184 Note that the actual location of the controller's class state depends
194 chips that do support some of automated discovery/enumeration.
205 maybe coupling it with code to initialize pin configurations, so that
[all …]
/linux-4.1.27/Documentation/usb/
Dbulk-streams.txt5 device driver to overload a bulk endpoint so that multiple transfers can be
18 an out-of-band mechanism on another endpoint) that data is ready for that stream
21 device can refuse that transfer. Devices can switch between streams at any
32 Device drivers will call this API to request that the host controller driver
34 pass an array of usb_host_endpoints that need to be setup with similar stream
35 IDs. This is to ensure that a UASP driver will be able to use the same stream
63 Note that new API to choose the next stream ID will have to be added if the xHCI
78 ensure that drivers that don't support streams will be able to use the endpoint.
Dehci.txt20 high speed "split transactions" that don't waste transfer bandwidth.
34 Note that USB 2.0 support involves more than just EHCI. It requires
47 It's believed to do all the right PCI magic so that I/O works even on
57 at this writing no Linux drivers have been using that support.
60 is not yet available. Note that split transaction support for ISO
67 Transfers of all types can be queued. This means that control transfers
69 ones from another driver, and that interrupt transfers can use periods
74 drivers; a OHCI or UHCI driver that works already doesn't need to change
82 limits on the number of periodic transactions that can be scheduled,
99 remove its module and then the driver for that companion controller will
[all …]
Dhotplug.txt7 - Find a driver that can handle the device. That may involve
11 - Bind a driver to that device. Bus frameworks do that using a
20 be immediately usable means that any user mode actions can't wait for an
27 shell scripts that dispatch to more familiar administration tools.
30 that is currently available only when the drivers are dynamically linked,
41 reaction to a configuration change, from a thread in that subsystem.
45 the subsystem making that invocation.
51 Mailing list information is also available at that site.
72 alternate interfaces that complicate driver selection. By design, USB
74 of USB device setup without using that filesystem, and without running a
[all …]
Dfunctionfs.txt7 that kernel level composite functions provide when they are added to
10 This in particular means that the composite initialisation functions
15 write descriptors and strings to that file. It does not need
26 numbers and changing of the configuration (which means that
33 What I also want to mention is that the FunctionFS is designed in such
34 a way that it is possible to mount it several times so in the end
35 a gadget could use several FunctionFS functions. The idea is that
39 One can imagine a gadget that has an Ethernet, MTP and HID interfaces
DWUSB-Design-overview.txt11 This program is distributed in the hope that it will be useful,
56 UWB is a wide-band communication protocol that is to serve also as the
91 *WUSB*: the layer that sits on top of UWB to provide Wireless USB.
99 mere terms is a USB dongle that enables your PC to have UWB and Wireless
118 controller that is connected via USB instead of PCI.
133 eye, it looks like a hub that connects upstream wirelessly.
136 code with the HWA-RC driver; there is a bunch of factorization work that
137 has been done to support that in upcoming releases.
142 This is your usual PCI device that implements WHCI. Similar in concept
162 each device that pops up in radio presence (ie: the UWB host receives a
[all …]
/linux-4.1.27/Documentation/scheduler/
Dsched-deadline.txt26 system behavior. As for -rt (group) scheduling, it is assumed that root users
36 that makes it possible to isolate the behavior of tasks between each other.
50 earliest scheduling deadline is selected for execution). Notice that the
56 that each task runs for at most its runtime every period, avoiding any
59 to be executed next. Thanks to this feature, tasks that do not strictly comply
125 scheduling discipline, even if it must be said that it is particularly
126 suited for periodic or sporadic real-time tasks that need guarantees on their
147 Note that total utilisation is defined as the sum of the utilisations
159 More precisely, it can be proven that using a global EDF scheduler the
175 (notice that this condition is only sufficient, and not necessary).
[all …]
/linux-4.1.27/tools/perf/
Ddesign.txt10 thus be used to profile the code that runs on that CPU.
111 These are standardized types of events that work relatively uniformly
112 on all CPUs that implement Performance Counters support under Linux,
150 counters. A "counting" counter is one that is used for counting the
151 number of events that occur, and is characterised by having
160 * Bits that can be set in hw_event.read_format to request that
174 A "sampling" counter is one that is set up to generate an interrupt
180 * Bits that can be set in hw_event.record_type to request information
199 The 'inherit' bit, if set, specifies that this counter should count
205 The 'pinned' bit, if set, specifies that the counter should always be
[all …]
/linux-4.1.27/Documentation/devicetree/bindings/ata/
Dsata_highbank.txt16 SATA port to a combophy and a lane within that
19 which indicates that the driver supports SGPIO
21 - calxeda,led-order : a u32 array that map port numbers to offsets within the
23 - calxeda,tx-atten : a u32 array that contains TX attenuation override
26 - calxeda,pre-clocks : a u32 that indicates the number of additional clock
28 - calxeda,post-clocks: a u32 that indicates the number of additional clock
/linux-4.1.27/tools/perf/Documentation/
Dperf-buildid-cache.txt26 Add specified kcore file to the cache. For the current host that is
27 /proc/kcore which requires root permissions to read. Be aware that
30 Note that the copied file contains only code sections not the whole core
31 image. Note also that files "kallsyms" and "modules" must also be in the
34 kcore in the cache (with the same build-id) that has the same modules at
50 Update specified file of the cache. Note that this doesn't remove
53 exactly same build-id, that is replaced by new one. It can be used
Dperf-sched.txt23 'perf sched script' to see a detailed trace of the workload that
26 'perf sched replay' to simulate the workload that was recorded
28 that mimic the workload based on the events in the trace. These
35 individual CPUs, and the two-letter shortcuts stand for tasks that
36 are running on a CPU. A '*' denotes the CPU that had the event, and
/linux-4.1.27/Documentation/early-userspace/
DREADME7 "Early userspace" is a set of libraries and programs that provide
8 various pieces of functionality that are important enough to be
9 available while a Linux kernel is coming up, but that don't need to be
14 - gen_init_cpio, a program that builds a cpio-format archive
17 - initramfs, a chunk of code that unpacks the compressed cpio image
19 - klibc, a userspace C library, currently packaged separately, that is
30 You can create a cpio archive that contains the early userspace image.
50 INITRAMFS_ROOT_UID can be set to a user ID that needs to be mapped to
51 user root (0). INITRAMFS_ROOT_GID can be set to a group ID that needs
69 scripts/gen_initramfs_list.sh. This means that CONFIG_INITRAMFS_SOURCE
[all …]
/linux-4.1.27/Documentation/devicetree/bindings/powerpc/fsl/cpm_qe/
Dqe.txt2 This represents qe module that is installed on PowerQUICC II Pro.
7 Basically, it is a bus of devices, that could act more or less
29 that contains the firmware that should be uploaded for this QE.
57 bus that can be allocated as data/parameter
74 This node defines a firmware binary that is embedded in the device tree, for
80 inside a QE node that needs it. Doing so eliminates the need for a
81 fsl,firmware-phandle property. Other QE nodes that need the same firmware
82 should define an fsl,firmware-phandle property that points to the firmware node
92 Definition: A standard property. Specify a string that indicates what
/linux-4.1.27/Documentation/nfc/
Dnfc-hci.txt36 of proprietary gates that must be part of the session. HCI will ensure all
39 can pass that information to HCI core.
45 a service, one must create a pipe to that gate and open it. In this
54 the HCI management. This makes it easier to maintain a driver for a chip that
88 - hci_ready() is an optional entry point that is called right after the hci
90 that must be performed using HCI commands.
92 - start_poll() is an optional entrypoint that shall set the hardware in polling
96 the p2p connection setup with hardware parameters that need to be passed back
111 - check_presence() is an optional entry point that will be called regularly
112 by the core to check that an activated tag is still in the field. If this is
[all …]
/linux-4.1.27/Documentation/filesystems/nfs/
DExporting11 applications that access a filesystem via a remote filesystem protocol
34 tree. This means that if any filesystem object is in the dcache, then
35 all of the ancestors of that filesystem object are also in the dcache.
43 the dcache that are not needed for normal filesystem access.
45 1/ The dcache must sometimes contain objects that are not part of the
46 proper prefix. i.e that are not connected to the root.
49 that dentry into place (based on the parent and name in the
51 it is a dcache invariant that directories only have one dentry.
56 any dentry that might not be part of the proper prefix.
62 subtrees that are not in the proper prefix. These dentries, as
[all …]
Dnfs.txt15 special features of the NFS client that can be configured by system
28 Without any other intervention, the Linux client uses a string that contains
30 take care to ensure that node names are fully qualified and do not change
32 administrative requirements that require particular behavior that does not
35 The nfs.nfs4_unique_id boot parameter specifies a unique string that can be
42 anything that is believed to be unique across all NFS clients. An
48 changed safely if care is taken that the client shuts down cleanly and all
60 NFSv4 allows for one server to refer the NFS client to data that has been
72 Assuming that the user has the 'rpc_pipefs' filesystem mounted in the usual
76 valid entry. If so, it returns that entry and exits.
Drpc-cache.txt2 mechanisms in the sunrpc layer that is used, in particular,
10 There are a number of caches that are similar in structure though
14 Examples of caches that are likely to be needed are:
19 - mappings between local UID/GID and remote UID/GID for sites that
30 - delaying RPC requests that depend on as-yet incomplete
39 structure definition that must contain a
45 2/ A cache needs a "cache_detail" structure that
72 Optional. Used to provide a /proc file that lists the
92 includes it on a list of caches that will be regularly
114 believe that userspace might provide information soon. When the cache
[all …]
Dnfsd-admin-interfaces.txt4 Note that normally these interfaces are used only by the utilities in
13 Before doing that, NFSD can be told which sockets to listen on by
14 writing to nfsd/portlist; that write may be:
27 are thrown away at that point.
39 Note that the rpc server requires the caller to serialize addition and
/linux-4.1.27/fs/cramfs/
DREADME6 swapped around (though it does care that directory entries (inodes) in
37 One <file_data> for each file that's either a symlink or a
71 with -z if you want it to create files that can have holes in them.
87 (Block size in cramfs refers to the size of input data that is
91 The superblock ought to indicate the block size that the fs was
92 written for, since comments in <linux/pagemap.h> indicate that
96 Currently, mkcramfs #define's PAGE_CACHE_SIZE as 4096 and uses that
106 is that the generated cramfs cannot always be shared between different
113 One part of that is addressing endianness. The two options here are
137 The cost of option 1 is that kernels with a larger PAGE_CACHE_SIZE
[all …]
/linux-4.1.27/Documentation/scsi/
DLICENSE.qla4xxx33 price. Our General Public Licenses are designed to make sure that you
35 this service if you wish), that you receive source code or can get it
36 if you want it, that you can change the software or use pieces of it
37 in new free programs; and that you know you can do these things.
39 To protect your rights, we need to make restrictions that forbid
45 gratis or for a fee, you must give the recipients all the rights that
46 you have. You must make sure that they, too, receive or can get the
55 that everyone understands that there is no warranty for this free
57 want its recipients to know that what they have is not the original, so
58 that any problems introduced by others will not reflect on the original
[all …]
DLICENSE.qla2xxx34 price. Our General Public Licenses are designed to make sure that you
36 this service if you wish), that you receive source code or can get it
37 if you want it, that you can change the software or use pieces of it
38 in new free programs; and that you know you can do these things.
40 To protect your rights, we need to make restrictions that forbid
46 gratis or for a fee, you must give the recipients all the rights that
47 you have. You must make sure that they, too, receive or can get the
56 that everyone understands that there is no warranty for this free
58 want its recipients to know that what they have is not the original, so
59 that any problems introduced by others will not reflect on the original
[all …]
DChangeLog.sym53c8xx5 - Backport from SYM-2 the work-around that allows to support
6 hardwares that fail PCI parity checking.
7 - Check that we received at least 8 bytes of INQUIRY response
8 for byte 7, that contains device capabilities, to be valid.
16 for chips that support SRUN bit in ISTAT1 and if SCRIPTS are
18 - In the CCB abort path, do not assume that the CCB is currently
43 The bus_dvma_to_mem() interface that reverses the actual
47 - Merge changes for linux-2.4 that declare the host template
50 - Increase SCSI message size up to 12 bytes, given that 8
62 from SCRIPTS that requires special alignments.
[all …]
Din2000.txt8 compiled for SMP. I've fixed that problem, and after
20 It appears that the driver works fine with serial
21 EPROMs (the 8-pin chip that defines hardware rev) as
22 old as 2.1, so we'll assume that all cards are OK.
26 Fixed a bug that caused incorrect SCSI status bytes to be
28 means that CDROM changers work now! Fixed a bug in the
38 Fixed a bug in the code that sets the transfer direction
40 are quite a few SCSI commands that do a write-to-device;
66 about; I figure that people who are really into it will
73 that would show up every now and then during extreme
[all …]
/linux-4.1.27/Documentation/devicetree/bindings/pinctrl/
Dbrcm,cygnus-gpio.txt10 Define the base and range of the I/O address space that contains the Cygnus
19 Specifies that the node is a GPIO controller
27 Specifies that the node is an interrupt controller
36 The list of pins (within the controller's own pin space) that properties
84 * Touchscreen that uses the CCM GPIO 0 and 1
93 /* Bluetooth that uses the ASIU GPIO 5, with polarity inverted */
Dpinctrl-bindings.txt3 Hardware modules that control pin multiplexing or configuration parameters
24 Note that pin controllers themselves may also be client devices of themselves.
30 bindings for the individual client devices in use by that board, i.e. whether
41 Each client device's own binding determines the set of states that must be
43 IDs that must be provided, or whether to define the set of state names that
49 nodes of the pin controller that they configure. Multiple
50 entries may exist in this list so that multiple pin
51 controllers may be configured, or so that a state may be built
61 the binding for that IP block requires certain pin states to
91 * but in use on an SoC that doesn't have any pin control hardware
[all …]
/linux-4.1.27/drivers/usb/
DREADME4 includes kerneldoc that should help you get a current overview.
30 includes UHCI, OHCI, EHCI, and others that might
38 first subdirectory in the list below that it fits into.
42 ../input/ - This is for any driver that uses the input subsystem,
45 radios, and any other drivers that talk to the v4l
50 class/ - This is for all USB device drivers that do not fit
53 misc/ - This is for all USB device drivers that do not fit
/linux-4.1.27/Documentation/hwmon/
Dpc8736026 Note that this parameter has no effect for the PC87360, PC87363 and PC87364
29 Also note that for the PC87366, initialization levels 2 and 3 don't enable
54 The driver assumes that no more than one chip is present, and one of the
88 Note that not all RPM values can be represented, even when the best clock
98 that the fan is stopped, and 255 meaning that the fan goes at full speed.
126 Note that these three additional channels share their pins with the
129 the documents from National Semiconductor suggest that motherboard
164 is read at least once. This means that the cause for the alarm may already
165 have disappeared! Note that all hardware registers are read whenever any
171 Monitoring of in9 isn't enabled at lower init levels (<3) because that
[all …]
/linux-4.1.27/
DCOPYING2 NOTE! This copyright does *not* cover user programs that use kernel
5 Also note that the GPL below is copyrighted by the Free Software
6 Foundation, but the instance of code that it refers to (the Linux
9 Also note that the only valid version of the GPL as far as the kernel
38 price. Our General Public Licenses are designed to make sure that you
40 this service if you wish), that you receive source code or can get it
41 if you want it, that you can change the software or use pieces of it
42 in new free programs; and that you know you can do these things.
44 To protect your rights, we need to make restrictions that forbid
50 gratis or for a fee, you must give the recipients all the rights that
[all …]
/linux-4.1.27/Documentation/trace/
Dftrace-design.txt8 Here we will cover the architecture pieces that the common function tracing
10 complexity so that you can start simple and at least get basic functionality.
12 Note that this focuses on architecture implementation details only. If you
38 We'll make the assumption below that the symbol is "mcount" just to keep things
41 Keep in mind that the ABI that is in effect inside of the mcount function is
52 so return immediately. If it isn't, then call that function in the same way
55 size of the mcount call that is embedded in the function).
62 Also keep in mind that this mcount function will be called *a lot*, so
69 Here is some pseudo code that should help (these functions should actually be
127 that will return the original return address with which you can return to the
[all …]
Devents-nmi.txt11 You might want to use this tracepoint if you suspect that your
20 Let's say you suspect that perf_event_nmi_handler() is causing
21 you some problems and you only want to trace that handler
27 Let's also say you are only interested in when that function is
29 Note that the kernel's output is in milliseconds, but the input
Dring-buffer-design.txt21 producer - the task that writes into the ring buffer (same as writer)
25 consumer - the task that reads from the buffer (same as reader)
32 head_page - a pointer to the page that the reader will use next
34 tail_page - a pointer to the page that will be written to next
38 cmpxchg - hardware-assisted atomic transaction that performs the following:
42 R = cmpxchg(A, C, B) is saying that we replace A with B if and only if
93 At initialization a reader page is allocated for the reader that is not
112 it wants with it, as long as a writer has left that page.
172 It is possible that the page swapped is the commit page and the tail page,
202 head page - the next page in the ring buffer that will be swapped
[all …]
/linux-4.1.27/fs/sysv/
DKconfig10 If you have floppies or hard disk partitions like that, it is likely
11 that they contain binaries from those other Unix systems; in order
13 a set of kernel modules that lets you run SCO, Xenix, Wyse,
17 NOTE: that will work only for binaries from Intel-based systems;
24 Note that this option is generally not needed for floppies, since a
27 tar" or preferably "info tar"). Note also that this option has
/linux-4.1.27/drivers/staging/iio/Documentation/
Dring.txt6 comments in the source code. Note that some drivers allow buffer
10 iio_ring_buffer and it is a pointer to this that is provided to the
18 of the core changing its current mode to indicate that the buffer
35 The primary buffer reading function. Note that it may well not return
39 If parameters have changed that require reinitialization or configuration of
46 Set the number of complete scans that may be held by the buffer.
/linux-4.1.27/Documentation/ABI/
DREADME13 This directory documents the interfaces that the developer has
21 This directory documents interfaces that are felt to be stable,
27 aware of changes that can occur before these interfaces move to
28 be marked stable. Programs that use these interfaces are
30 these interfaces, so that the kernel developers can easily
35 This directory documents interfaces that are still remaining in
41 This directory contains a list of the old interfaces that have
53 the "testing" stage, so that kernel developers can work
54 with userspace developers to ensure that things do not
55 break in ways that are unacceptable. It is also
/linux-4.1.27/Documentation/arm64/
Darm-acpi.txt5 Base Boot Requirements) [1] specifications. Please note that the SBBR
22 ACPI and Linux only, on an ARMv8 system -- that is, what Linux expects of
31 section we summarize a blog post [2] from Grant Likely that outlines the
42 -- ACPI’s OSPM defines a power management model that constrains what the
60 longer any reason to feel that ACPI is only belongs to Windows or that
70 to understand all the minute details of the hardware so that the OS doesn’t
81 really just duplicates something that already works. ACPI already does what
89 One of the primary motivations for ACPI is standardization, and using that
92 kernel and firmware to agree on a consistent abstraction that can be
100 not be optimal, with the earliest kernel version that first provides support
[all …]
Dtagged-pointers.txt11 The kernel configures the translation tables so that translations made
16 (1) The kernel requires that all user addresses passed to EL1
17 are tagged with tag 0x00. This means that any syscall
22 This means that signal handlers in applications making use
30 since it is likely that C compilers will not hazard two
/linux-4.1.27/Documentation/devicetree/bindings/iommu/
Diommu.txt10 * Remap address space to allow devices to access physical memory ranges that
15 * Implement scatter-gather at page level granularity so that the device does
34 "dma-ranges" property that describes how the physical address space of the
35 IOMMU maps to memory. An empty "dma-ranges" property means that there is a
48 This may also apply to multiple master IOMMU devices that do not allow the
49 association of masters to be configured. Note that an IOMMU can by design
62 Note that these are merely examples and real-world use-cases may use different
64 IOMMU binding for the exact meaning of the cells that make up the specifier.
70 Devices that access memory through an IOMMU are called masters. A device can
75 - iommus: A list of phandle and IOMMU specifier pairs that describe the IOMMU
[all …]
/linux-4.1.27/Documentation/devicetree/bindings/mipi/dsi/
Dmipi-dsi-bus.txt12 set of properties that characterize the bus. Child nodes describe individual
13 peripherals on that bus.
15 The following assumes that only a single peripheral is connected to a DSI
16 host. Experience shows that this is true for the large majority of setups.
43 Some DSI peripherals respond to more than a single virtual channel. In that
46 that the peripheral responds to.
47 - If the virtual channels that a peripheral responds to are consecutive, the
/linux-4.1.27/Documentation/watchdog/
Dwatchdog-kernel-api.txt14 So what does this document describe? It describes the API that can be used by
15 WatchDog Timer Drivers that want to use the WatchDog Timer Driver Core
16 Framework. This framework provides all interfacing towards user space so that
17 the same code does not have to be reproduced each time. This also means that
19 (operations) that control the watchdog timer (WDT).
23 Each watchdog timer driver that wants to use the WatchDog Timer Driver Core
69 * ops: a pointer to the list of watchdog operations that the watchdog supports.
79 * status: this field contains a number of status bits that give extra
101 It is important that you first define the module owner of the watchdog timer
122 * start: this is a pointer to the routine that starts the watchdog timer
[all …]
Dwatchdog-api.txt15 A Watchdog Timer (WDT) is a hardware circuit that can reset the
16 computer system in case of a software fault. You probably knew that
20 /dev/watchdog special device file that userspace is still alive, at
22 usually tell the hardware watchdog that everything is in order, and
23 that the watchdog should wait for yet another little while to reset
42 A more advanced driver could for example check that a HTTP server is
54 the nowayout module parameter so that this option can be controlled at
63 will assume that the daemon (and userspace in general) died, and will
73 All drivers that have an ioctl interface support at least one ioctl,
118 Note that the pretimeout is the number of seconds before the time
[all …]
/linux-4.1.27/arch/x86/kernel/cpu/
Dperf_event_amd_uncore.c335 struct amd_uncore *that; in amd_uncore_find_online_sibling() local
338 that = *per_cpu_ptr(uncores, cpu); in amd_uncore_find_online_sibling()
340 if (!that) in amd_uncore_find_online_sibling()
343 if (this == that) in amd_uncore_find_online_sibling()
346 if (this->id == that->id) { in amd_uncore_find_online_sibling()
347 that->free_when_cpu_online = this; in amd_uncore_find_online_sibling()
348 this = that; in amd_uncore_find_online_sibling()
417 struct amd_uncore *that = *per_cpu_ptr(uncores, i); in uncore_down_prepare() local
422 if (this == that) { in uncore_down_prepare()
424 cpumask_clear_cpu(cpu, that->active_mask); in uncore_down_prepare()
[all …]
/linux-4.1.27/Documentation/sound/oss/
DESS12 Every chip that's detected as a later-than-es1688 chip has a 6 bits logarithmic
15 Every chip that's detected as a ES1887 now has Full Duplex support. Made a
16 little testprogram that shows that is works, haven't seen a real program that
/linux-4.1.27/Documentation/fb/
Dudlfb.txt8 pairing that with a hardware framebuffer (16MB) on the other end of the
14 the minimal set of pixels that have changed; and compresses and sends those
17 Because of the efficiency of bulk transfers and a protocol on top that
18 does not require any acks - the effect is very low latency that
40 and a slightly modified "fbdev" X driver are among those that already do.
64 means that from a hardware and fbdev software perspective, everything is good.
66 At that point, a /dev/fb? interface will be present for user-mode applications
68 standard fbdev calls. Note that if mmap() is used, by default the user mode
72 that can work without explicit notifcation.
80 framebuffers that need damage info). These damage notifications allow
[all …]
/linux-4.1.27/fs/reiserfs/
DREADME6 Source code files that contain the phrase "licensing governed by
12 want it to be owned by Hans Reiser, put your copyright label on that
16 others or sending us a patch, and leaving the sentence in stating that
32 you can see that those restrictions on additional terms do not apply
39 If you have doubts about how to properly do that, or about what is
55 version of reiserfs that is in their kernel, with many important
58 reiserfs, this is a common source of confusion. Note that some of the
61 you to specify where that code can be found.
76 integration that you sell as an operating system. Let your competitors
90 could be, and to make his code the best that it could be. What resulted
[all …]
/linux-4.1.27/Documentation/PCI/
Dpci-error-recovery.txt21 offered, so that the affected PCI device(s) are reset and put back
29 a PCI hardware error has resulted in a bus disconnect, that event
38 is forced by the need to handle multi-function devices, that is,
39 devices that have multiple device drivers associated with them.
44 If any driver requests a slot reset, that is what will be done.
47 again notified, so that they may then perform any device setup/config
48 that may be required. After these have all completed, a final
72 pci_driver. A driver that fails to provide the structure is "non-aware",
106 is assumed that the driver is not doing any direct recovery and requires
118 is isolated, in that all I/O is blocked: all reads return 0xffffffff,
[all …]
/linux-4.1.27/Documentation/devicetree/
Dusage-model.txt15 is a description of hardware that is readable by an operating system
16 so that the operating system doesn't need to hard code details of the
35 incompatible, bindings for i2c busses that came about because the new
60 also added to the PowerPC boot wrapper (arch/powerpc/boot/*) so that
76 The most important thing to understand is that the DT is simply a data
77 structure that describes the hardware. There is nothing magical about
81 Linux kernel (or any other operating system for that matter). Using
102 machine during early boot so that it has the opportunity to run
126 claims that it compatible with the OMAP 3450 SoC, and the omap3 family
127 of SoCs in general. You'll notice that the list is sorted from most
[all …]
Dbooting-without-of.txt66 clarifies the fact that a lot of things are
71 May 24, 2005: Rev 0.3 - Precise that DT block has to be in RAM
80 that are referenced by other nodes need it.
88 already aligned, that means no specific
98 the tree that can be "compiled" by dtc.
112 names for cells that are not already defined by the existing
117 that currently have no standard, like the FSL CPM.
127 order to avoid the degeneration that had become the ppc32 kernel entry
130 but no new board support will be accepted in the main tree that
136 The main requirement that will be defined in more detail below is
[all …]
/linux-4.1.27/Documentation/blockdev/
Dramdisk.txt23 so that the VM subsystem does not try to reclaim them later.
67 The usage of the word (two bytes) that "rdev -r" sets in the kernel image is
70 14 indicates that a RAM disk is to be loaded, and bit 15 indicates whether a
83 Hence you want to set bits 0 to 13 as 0, meaning that your RAM disk
87 You want bit 14 as one, indicating that a RAM disk is to be loaded.
90 You want bit 15 as one, indicating that you want a prompt/keypress
91 sequence so that you have a chance to switch floppy disks.
94 Putting that together gives 2^15 + 2^14 + 0 = 49152 for an rdev word.
101 If you make a boot disk that has LILO, then for the above, you would use:
119 a) Decide on the RAM disk size that you want. Say 2 MB for this example.
[all …]
/linux-4.1.27/Documentation/devicetree/bindings/sound/
Dnvidia,tegra-audio-rt5677.txt24 - nvidia,i2s-controller : The phandle of the Tegra I2S controller that's
27 assumes that AIF1 on the CODEC is connected to Tegra.
30 - nvidia,hp-det-gpios : The GPIO that detects headphones are plugged in
31 - nvidia,hp-en-gpios : The GPIO that enables headphone amplifier
32 - nvidia,mic-present-gpios: The GPIO that mic jack is plugged in
33 - nvidia,dmic-clk-en-gpios : The GPIO that gates DMIC clock signal
/linux-4.1.27/Documentation/devicetree/bindings/ufs/
Dufshcd-pltfrm.txt21 - vcc-max-microamp : specifies max. load that can be drawn from vcc supply
22 - vccq-max-microamp : specifies max. load that can be drawn from vccq supply
23 - vccq2-max-microamp : specifies max. load that can be drawn from vccq2 supply
24 - <name>-fixed-regulator : boolean property specifying that <name>-supply is a fixed regulator
32 that the frequency is set by the parent clock or a
35 Note: If above properties are not defined it can be assumed that the supply
/linux-4.1.27/Documentation/devicetree/bindings/metag/
Dmeta-intc.txt32 - <1st-cell>: The interrupt-number that identifies the interrupt source.
50 // No address cells so that 'interrupt-map' nodes which
71 * An interrupt generating device that is wired to a Meta external
75 // Interrupt source '5' that is level-sensitive.
76 // Note that there are only two cells as specified in the
80 // The interrupt controller that this device is wired to.
/linux-4.1.27/drivers/staging/gs_fpgaboot/
DREADME21 An FPGA (Field Programmable Gate Array) is a programmable hardware that is
45 You would do that with a dedicated JTAG, which usually a limited
50 b. For the FPGA that runs without config after the download, which
53 We download FPGA firmware from user triggered or some other way, and that's it.
54 Since that FPGA runs on its own, it doesn't require a linux driver
57 c. For the FPGA that requires config after the download, which talk to
/linux-4.1.27/Documentation/devicetree/bindings/dma/
Dmv-xor.txt10 The DT node must also contains sub-nodes for each XOR channel that the
16 - dmacap,memcpy to indicate that the XOR channel is capable of memcpy operations
17 - dmacap,memset to indicate that the XOR channel is capable of memset operations
18 - dmacap,xor to indicate that the XOR channel is capable of xor operations
/linux-4.1.27/Documentation/devicetree/bindings/phy/
Dphy-bindings.txt14 phy-supply: Phandle to a regulator that provides power to the PHY. This
29 That node describes an IP block (PHY provider) that implements 2 different PHYs.
53 This node represents a controller that uses two PHYs, one for usb2 and one for
68 This node represents a controller that uses one of the PHYs of the PHY provider
69 device defined previously. Note that the phy handle has an additional specifier
/linux-4.1.27/Documentation/cpu-freq/
Dintel-pstate.txt12 setpolicy() instead of target(). Scaling drivers that implement
28 max_perf_pct: limits the maximum P state that will be requested by
33 min_perf_pct: limits the minimum P state that will be requested by
40 turbo_pct: displays the percentage of the total performance that
41 is supported by hardware that is in the turbo range. This number
44 num_pstates: displays the number of pstates that are supported
50 performance levels. The idea that frequency can be set to a single
/linux-4.1.27/Documentation/filesystems/configfs/
Dconfigfs.txt14 configfs is a ram-based filesystem that provides the converse of
23 write(2). The important point is that the object is created and
46 These are modules that register their item types with configfs as
70 Imagine there's a Network Block Device (NBD) driver that allows you to
72 for its configuration. Obviously, there will be a nice program that
73 sysadmins use to configure FakeNBD, but somehow that program has to tell
105 object in the subsystem. It has attributes that match values on that
106 object. configfs handles the filesystem representation of that object
111 collection of items that share the same attributes and operations.
113 handles that. The group has a set of operations to perform these tasks
[all …]
/linux-4.1.27/tools/usb/usbip/
DCOPYING22 price. Our General Public Licenses are designed to make sure that you
24 this service if you wish), that you receive source code or can get it
25 if you want it, that you can change the software or use pieces of it
26 in new free programs; and that you know you can do these things.
28 To protect your rights, we need to make restrictions that forbid
34 gratis or for a fee, you must give the recipients all the rights that
35 you have. You must make sure that they, too, receive or can get the
44 that everyone understands that there is no warranty for this free
46 want its recipients to know that what they have is not the original, so
47 that any problems introduced by others will not reflect on the original
[all …]
/linux-4.1.27/drivers/staging/rtl8192e/
Dlicense28 General Public Licenses are designed to make sure that you have the freedom
30 wish), that you receive source code or can get it if you want it, that you
31 can change the software or use pieces of it in new free programs; and that
34 To protect your rights, we need to make restrictions that forbid anyone to
40 for a fee, you must give the recipients all the rights that you have. You
41 must make sure that they, too, receive or can get the source code. And you
48 Also, for each author's protection and ours, we want to make certain that
49 everyone understands that there is no warranty for this free software. If
51 recipients to know that what they have is not the original, so that any
56 wish to avoid the danger that redistributors of a free program will
[all …]
/linux-4.1.27/drivers/staging/rtl8192u/
Dcopying22 price. Our General Public Licenses are designed to make sure that you
24 this service if you wish), that you receive source code or can get it
25 if you want it, that you can change the software or use pieces of it
26 in new free programs; and that you know you can do these things.
28 To protect your rights, we need to make restrictions that forbid
34 gratis or for a fee, you must give the recipients all the rights that
35 you have. You must make sure that they, too, receive or can get the
44 that everyone understands that there is no warranty for this free
46 want its recipients to know that what they have is not the original, so
47 that any problems introduced by others will not reflect on the original
[all …]
/linux-4.1.27/drivers/staging/android/ion/
DKconfig9 from userspace that can be shared between drivers.
17 Choose this option to create a device that can be used to test the
24 Provides a dummy ION driver that registers the
27 one doesn't have access to hardware drivers that
/linux-4.1.27/Documentation/aoe/
Daoe.txt1 ATA over Ethernet is a network protocol that provides simple access to
15 The aoetools are userland programs that are designed to work with this
31 There is a udev-install.sh script that shows how to install these
34 There is also an autoload script that shows how to edit
35 /etc/modprobe.d/aoe.conf to ensure that the aoe module is loaded when
63 ... so that "e0.2" is the third blade from the left (slot 2) in the
65 partition on that disk would be "e0.2p1".
72 "down,closewait" state shows that the device is still open and
79 There is a script in this directory that formats this information in
126 seconds that the driver will wait for an AoE device to provide a
[all …]
/linux-4.1.27/Documentation/s390/
Dkvm.txt2 The kvm module is currently in EXPERIMENTAL state for s390. This means that
4 prepared that we keep breaking your userspace application and guest
10 kvm-vm file descriptors, and the kvm-vcpu file descriptors that differ from x86.
13 KVM does support the following ioctls on s390 that are common with other
30 calling process to be single-threaded. Note that the first call to KVM_CREATE_VM
32 KVM_S390_ENABLE_SIE before. User processes that want to launch multiple threads
40 KVM does support the following ioctls on s390 that are common with other
48 at guest absolute address zero and at a user address that is aligned on any
74 KVM does support the following ioctls on s390 that are common with other
109 its prefix page just like the dump tool that comes with zipl. This is useful
[all …]
/linux-4.1.27/Documentation/ABI/stable/
Dsyscalls7 Note that this interface is different for every architecture
8 that Linux supports. Please see the architecture-specific
9 documentation for details on the syscall numbers that are to be
/linux-4.1.27/arch/arm/nwfpe/
DChangeLog26 and needs various things to be re-worked so that we won't
29 * The changes are designed to break any patch that goes on top
30 of this code, so that the authors properly review their changes.
44 * I discovered several bugs. First and worst is that the kernel
48 user_fp is smaller. This meant that the FPE scribbled on things
60 that occurs. It is controlled by init_flag in FPA11. The
62 this to be zero. Not so. I found that the kernel recycles task
63 structures, and that recycled ones may not have init_flag zeroed.
64 I couldn't even find anything that guarantees it is zeroed when
/linux-4.1.27/Documentation/phy/
Dsamsung-usb2.txt10 create a one driver that would fit all these PHY controllers. Often
24 phy. They carry out the common work that has to be done on all version
33 structures that describe particular SoCs.
50 array that contains the configuration for each phy. The has_mode_switch
51 property is a boolean flag that determines whether the SoC has USB host
68 that should be written in the hardware register.
125 Enable USB PHY support for Exynos 4210. This option requires that
126 Samsung USB 2.0 PHY driver is enabled and means that support for this
130 The newly created file that supports the new SoC has to be also added to the
/linux-4.1.27/Documentation/virtual/kvm/
Dmsr.txt7 Custom MSRs have a range reserved for them, that goes from
30 Users that want to reliably query this information more than once have
34 time information and check that they are both equal and even.
44 Note that although MSRs are per-CPU entities, the effect of this
76 time information and check that they are both equal and even.
92 quantity to nanoseconds. This shift will ensure that
131 data and functioning: same as MSR_KVM_WALL_CLOCK_NEW. Use that instead.
141 data and functioning: same as MSR_KVM_SYSTEM_TIME_NEW. Use that instead.
177 of 1 means that the page referred to by the page fault is not
178 present. Value 2 means that the page is now available. Disabling
[all …]

12345678910>>...16