aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/padata.txt24
1 files changed, 12 insertions, 12 deletions
diff --git a/Documentation/padata.txt b/Documentation/padata.txt
index 473ebf22cd69..7ddfe216a0aa 100644
--- a/Documentation/padata.txt
+++ b/Documentation/padata.txt
@@ -19,7 +19,7 @@ overall control of how tasks are to be run:
19 19
20The pcpumask describes which processors will be used to execute work 20The pcpumask describes which processors will be used to execute work
21submitted to this instance in parallel. The cbcpumask defines which 21submitted to this instance in parallel. The cbcpumask defines which
22processors are allowed to use as the serialization callback processor. 22processors are allowed to be used as the serialization callback processor.
23The workqueue wq is where the work will actually be done; it should be 23The workqueue wq is where the work will actually be done; it should be
24a multithreaded queue, naturally. 24a multithreaded queue, naturally.
25 25
@@ -30,10 +30,10 @@ cpumasks this helper function can be used:
30 30
31Note: Padata maintains two kinds of cpumasks internally. The user supplied 31Note: Padata maintains two kinds of cpumasks internally. The user supplied
32cpumasks, submitted by padata_alloc/padata_alloc_possible and the 'usable' 32cpumasks, submitted by padata_alloc/padata_alloc_possible and the 'usable'
33cpumasks. The usable cpumasks are always the subset of active cpus in the 33cpumasks. The usable cpumasks are always a subset of active CPUs in the
34user supplied cpumasks, these are the cpumasks padata actually use. So 34user supplied cpumasks; these are the cpumasks padata actually uses. So
35it is legal to supply a cpumask to padata that contains offline cpus. 35it is legal to supply a cpumask to padata that contains offline CPUs.
36Once a offline cpu in the user supplied cpumask comes online, padata 36Once an offline CPU in the user supplied cpumask comes online, padata
37is going to use it. 37is going to use it.
38 38
39There are functions for enabling and disabling the instance: 39There are functions for enabling and disabling the instance:
@@ -44,7 +44,7 @@ There are functions for enabling and disabling the instance:
44These functions are setting or clearing the "PADATA_INIT" flag; 44These functions are setting or clearing the "PADATA_INIT" flag;
45if that flag is not set, other functions will refuse to work. 45if that flag is not set, other functions will refuse to work.
46padata_start returns zero on success (flag set) or -EINVAL if the 46padata_start returns zero on success (flag set) or -EINVAL if the
47padata cpumask contains no active cpu (flag not set). 47padata cpumask contains no active CPU (flag not set).
48padata_stop clears the flag and blocks until the padata instance 48padata_stop clears the flag and blocks until the padata instance
49is unused. 49is unused.
50 50
@@ -63,11 +63,11 @@ done with great frequency.
63 63
64It's possible to change both cpumasks of a padata instance with 64It's possible to change both cpumasks of a padata instance with
65padata_set_cpumasks by specifying the cpumasks for parallel execution (pcpumask) 65padata_set_cpumasks by specifying the cpumasks for parallel execution (pcpumask)
66and for the serial callback function (cbcpumask). padata_set_cpumask is to 66and for the serial callback function (cbcpumask). padata_set_cpumask is used to
67change just one of the cpumasks. Here cpumask_type is one of PADATA_CPU_SERIAL, 67change just one of the cpumasks. Here cpumask_type is one of PADATA_CPU_SERIAL,
68PADATA_CPU_PARALLEL and cpumask specifies the new cpumask to use. 68PADATA_CPU_PARALLEL and cpumask specifies the new cpumask to use.
69To simply add or remove one cpu from a certain cpumask the functions 69To simply add or remove one CPU from a certain cpumask the functions
70padata_add_cpu/padata_remove_cpu are used. cpu specifies the cpu to add or 70padata_add_cpu/padata_remove_cpu are used. cpu specifies the CPU to add or
71remove and mask is one of PADATA_CPU_SERIAL, PADATA_CPU_PARALLEL. 71remove and mask is one of PADATA_CPU_SERIAL, PADATA_CPU_PARALLEL.
72 72
73If a user is interested in padata cpumask changes, he can register to 73If a user is interested in padata cpumask changes, he can register to
@@ -82,7 +82,7 @@ To unregister from that notifier:
82 struct notifier_block *nblock); 82 struct notifier_block *nblock);
83 83
84The padata cpumask change notifier notifies about changes of the usable 84The padata cpumask change notifier notifies about changes of the usable
85cpumasks, i.e. the subset of active cpus in the user supplied cpumask. 85cpumasks, i.e. the subset of active CPUs in the user supplied cpumask.
86 86
87Padata calls the notifier chain with: 87Padata calls the notifier chain with:
88 88
@@ -92,7 +92,7 @@ Padata calls the notifier chain with:
92 92
93Here cpumask_change_notifier is registered notifier, notification_mask 93Here cpumask_change_notifier is registered notifier, notification_mask
94is one of PADATA_CPU_SERIAL, PADATA_CPU_PARALLEL and cpumask is a pointer 94is one of PADATA_CPU_SERIAL, PADATA_CPU_PARALLEL and cpumask is a pointer
95to a struct padata_cpumask that contains the new cpumask informations. 95to a struct padata_cpumask that contains the new cpumask information.
96 96
97Actually submitting work to the padata instance requires the creation of a 97Actually submitting work to the padata instance requires the creation of a
98padata_priv structure: 98padata_priv structure:
@@ -104,7 +104,7 @@ padata_priv structure:
104 }; 104 };
105 105
106This structure will almost certainly be embedded within some larger 106This structure will almost certainly be embedded within some larger
107structure specific to the work to be done. Most its fields are private to 107structure specific to the work to be done. Most of its fields are private to
108padata, but the structure should be zeroed at initialisation time, and the 108padata, but the structure should be zeroed at initialisation time, and the
109parallel() and serial() functions should be provided. Those functions will 109parallel() and serial() functions should be provided. Those functions will
110be called in the process of getting the work done as we will see 110be called in the process of getting the work done as we will see