Lines Matching +full:parallel +full:- +full:out
1 .. SPDX-License-Identifier: GPL-2.0
4 The padata parallel execution mechanism
9 Padata is a mechanism by which the kernel can farm jobs out to be done in
10 parallel on multiple CPUs while optionally retaining their ordering.
23 ------------
43 ------------------
52 parallel cpumask describes which processors will be used to execute jobs
53 submitted to this instance in parallel and a serial cpumask defines which
58 live in /sys/kernel/pcrypt/<instance-name>. Within an instance's directory
64 Reading one of these files shows the user-supplied cpumask, which may be
67 Padata maintains two pairs of cpumasks internally, the user-supplied cpumasks
68 and the 'usable' cpumasks. (Each pair consists of a parallel and a serial
69 cpumask.) The user-supplied cpumasks default to all possible CPUs on instance
71 subset of the user-supplied cpumasks and contain only the online CPUs in the
72 user-supplied masks; these are the cpumasks padata actually uses. So it is
74 offline CPU in the user-supplied cpumask comes online, padata is going to use
81 -------------
88 void (*parallel)(struct padata_priv *padata);
95 parallel() and serial() functions should be provided. Those functions will
109 progress. -EBUSY means that somebody, somewhere else is messing with the
110 instance's CPU mask, while -EINVAL is a complaint about cb_cpu not being in the
111 serial cpumask, no online CPUs in the parallel or serial cpumasks, or a stopped
115 exactly one call to the above-mentioned parallel() function, on one CPU, so
116 true parallelism is achieved by submitting multiple jobs. parallel() runs with
117 software interrupts disabled and thus cannot sleep. The parallel()
122 Note that parallel() has no return value; the padata subsystem assumes that
123 parallel() will take responsibility for the job from this point. The job
124 need not be completed during this call, but, if parallel() leaves work
129 ----------------
131 When a job does complete, parallel() (or whatever function actually finishes
145 ----------
177 .. kernel-doc:: include/linux/padata.h
178 .. kernel-doc:: kernel/padata.c