source: rtems-docs/c-user/config/mpci.rst @ 9ba26e7

Last change on this file since 9ba26e7 was 9ba26e7, checked in by Joel Sherrill <joel@…>, on 05/20/22 at 13:45:16

c-user: Update references to --enable-* configure options.

Also updated list of SMP architectures and added enough lead in
to let users know the source code was the definitive answer.

  • Property mode set to 100644
File size: 8.9 KB
Line 
1.. SPDX-License-Identifier: CC-BY-SA-4.0
2
3.. Copyright (C) 2020, 2021 embedded brains GmbH (http://www.embedded-brains.de)
4.. Copyright (C) 1988, 2008 On-Line Applications Research Corporation (OAR)
5
6.. This file is part of the RTEMS quality process and was automatically
7.. generated.  If you find something that needs to be fixed or
8.. worded better please post a report or patch to an RTEMS mailing list
9.. or raise a bug report:
10..
11.. https://www.rtems.org/bugs.html
12..
13.. For information on updating and regenerating please refer to the How-To
14.. section in the Software Requirements Engineering chapter of the
15.. RTEMS Software Engineering manual.  The manual is provided as a part of
16.. a release.  For development sources please refer to the online
17.. documentation at:
18..
19.. https://docs.rtems.org
20
21.. Generated from spec:/acfg/if/group-mpci
22
23Multiprocessing Configuration
24=============================
25
26This section describes multiprocessing related configuration options.
27The options are only used if RTEMS was built when the multiprocessing
28build configuration option is enabled. The multiprocessing configuration
29is distinct from the SMP configuration.  Additionally, this class of
30configuration options are only applicable if the configuration option
31:ref:`CONFIGURE_MP_APPLICATION` is defined.  The multiprocessing (MPCI)
32support must not be confused with the SMP support.
33
34.. Generated from spec:/acfg/if/mp-extra-server-stack
35
36.. raw:: latex
37
38    \clearpage
39
40.. index:: CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
41
42.. _CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK:
43
44CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
45-----------------------------------------
46
47.. rubric:: CONSTANT:
48
49``CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK``
50
51.. rubric:: OPTION TYPE:
52
53This configuration option is an integer define.
54
55.. rubric:: DEFAULT VALUE:
56
57The default value is 0.
58
59.. rubric:: DESCRIPTION:
60
61The value of this configuration option defines the number of bytes the
62applications wishes to add to the MPCI task stack on top of
63:ref:`CONFIGURE_MINIMUM_TASK_STACK_SIZE`.
64
65.. rubric:: NOTES:
66
67This configuration option is only evaluated if
68:ref:`CONFIGURE_MP_APPLICATION` is defined.
69
70.. rubric:: CONSTRAINTS:
71
72The following constraints apply to this configuration option:
73
74* The value of the configuration option shall be greater than or equal to zero.
75
76* The value of the configuration option shall be less than or equal to
77  `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_.
78
79* The value of the configuration option shall be small enough so that the MPCI
80  receive server stack area calculation carried out by ``<rtems/confdefs.h>``
81  does not overflow an integer of type `size_t
82  <https://en.cppreference.com/w/c/types/size_t>`_.
83
84.. Generated from spec:/acfg/if/mp-appl
85
86.. raw:: latex
87
88    \clearpage
89
90.. index:: CONFIGURE_MP_APPLICATION
91
92.. _CONFIGURE_MP_APPLICATION:
93
94CONFIGURE_MP_APPLICATION
95------------------------
96
97.. rubric:: CONSTANT:
98
99``CONFIGURE_MP_APPLICATION``
100
101.. rubric:: OPTION TYPE:
102
103This configuration option is a boolean feature define.
104
105.. rubric:: DEFAULT CONFIGURATION:
106
107If this configuration option is undefined, then the multiprocessing services
108are not initialized.
109
110.. rubric:: DESCRIPTION:
111
112This configuration option is defined to indicate that the application intends
113to be part of a multiprocessing configuration.  Additional configuration
114options are assumed to be provided.
115
116.. rubric:: NOTES:
117
118This configuration option shall be undefined if the multiprocessing support
119is not enabled (e.g. RTEMS was built without the multiprocessing build
120configuration option enabled).  Otherwise a compile time error in the
121configuration file will occur.
122
123.. Generated from spec:/acfg/if/mp-max-global-objects
124
125.. raw:: latex
126
127    \clearpage
128
129.. index:: CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
130
131.. _CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS:
132
133CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS
134-----------------------------------
135
136.. rubric:: CONSTANT:
137
138``CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS``
139
140.. rubric:: OPTION TYPE:
141
142This configuration option is an integer define.
143
144.. rubric:: DEFAULT VALUE:
145
146The default value is 32.
147
148.. rubric:: DESCRIPTION:
149
150The value of this configuration option defines the maximum number of
151concurrently active global objects in a multiprocessor system.
152
153.. rubric:: NOTES:
154
155This value corresponds to the total number of objects which can be created
156with the :c:macro:`RTEMS_GLOBAL` attribute.
157
158This configuration option is only evaluated if
159:ref:`CONFIGURE_MP_APPLICATION` is defined.
160
161.. rubric:: CONSTRAINTS:
162
163The following constraints apply to this configuration option:
164
165* The value of the configuration option shall be greater than or equal to zero.
166
167* The value of the configuration option shall be less than or equal to
168  `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_.
169
170.. Generated from spec:/acfg/if/mp-max-nodes
171
172.. raw:: latex
173
174    \clearpage
175
176.. index:: CONFIGURE_MP_MAXIMUM_NODES
177
178.. _CONFIGURE_MP_MAXIMUM_NODES:
179
180CONFIGURE_MP_MAXIMUM_NODES
181--------------------------
182
183.. rubric:: CONSTANT:
184
185``CONFIGURE_MP_MAXIMUM_NODES``
186
187.. rubric:: OPTION TYPE:
188
189This configuration option is an integer define.
190
191.. rubric:: DEFAULT VALUE:
192
193The default value is 2.
194
195.. rubric:: DESCRIPTION:
196
197The value of this configuration option defines the maximum number of nodes in
198a multiprocessor system.
199
200.. rubric:: NOTES:
201
202This configuration option is only evaluated if
203:ref:`CONFIGURE_MP_APPLICATION` is defined.
204
205.. rubric:: CONSTRAINTS:
206
207The following constraints apply to this configuration option:
208
209* The value of the configuration option shall be greater than or equal to zero.
210
211* The value of the configuration option shall be less than or equal to
212  `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_.
213
214.. Generated from spec:/acfg/if/mp-max-proxies
215
216.. raw:: latex
217
218    \clearpage
219
220.. index:: CONFIGURE_MP_MAXIMUM_PROXIES
221
222.. _CONFIGURE_MP_MAXIMUM_PROXIES:
223
224CONFIGURE_MP_MAXIMUM_PROXIES
225----------------------------
226
227.. rubric:: CONSTANT:
228
229``CONFIGURE_MP_MAXIMUM_PROXIES``
230
231.. rubric:: OPTION TYPE:
232
233This configuration option is an integer define.
234
235.. rubric:: DEFAULT VALUE:
236
237The default value is 32.
238
239.. rubric:: DESCRIPTION:
240
241The value of this configuration option defines the maximum number of
242concurrently active thread/task proxies on this node in a multiprocessor
243system.
244
245.. rubric:: NOTES:
246
247Since a proxy is used to represent a remote task/thread which is blocking
248on this node. This configuration parameter reflects the maximum number of
249remote tasks/threads which can be blocked on objects on this node, see
250:ref:`MPCIProxies`.
251
252This configuration option is only evaluated if
253:ref:`CONFIGURE_MP_APPLICATION` is defined.
254
255.. rubric:: CONSTRAINTS:
256
257The following constraints apply to this configuration option:
258
259* The value of the configuration option shall be greater than or equal to zero.
260
261* The value of the configuration option shall be less than or equal to
262  `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_.
263
264.. Generated from spec:/acfg/if/mp-mpci-table-pointer
265
266.. raw:: latex
267
268    \clearpage
269
270.. index:: CONFIGURE_MP_MPCI_TABLE_POINTER
271
272.. _CONFIGURE_MP_MPCI_TABLE_POINTER:
273
274CONFIGURE_MP_MPCI_TABLE_POINTER
275-------------------------------
276
277.. rubric:: CONSTANT:
278
279``CONFIGURE_MP_MPCI_TABLE_POINTER``
280
281.. rubric:: OPTION TYPE:
282
283This configuration option is an initializer define.
284
285.. rubric:: DEFAULT VALUE:
286
287The default value is ``&MPCI_table``.
288
289.. rubric:: DESCRIPTION:
290
291The value of this configuration option initializes the MPCI Configuration
292Table.
293
294.. rubric:: NOTES:
295
296RTEMS provides a Shared Memory MPCI Device Driver which can be used on any
297Multiprocessor System assuming the BSP provides the proper set of
298supporting methods.
299
300This configuration option is only evaluated if
301:ref:`CONFIGURE_MP_APPLICATION` is defined.
302
303.. rubric:: CONSTRAINTS:
304
305The value of the configuration option shall be a pointer to
306:c:type:`rtems_mpci_table`.
307
308.. Generated from spec:/acfg/if/mp-node-number
309
310.. raw:: latex
311
312    \clearpage
313
314.. index:: CONFIGURE_MP_NODE_NUMBER
315
316.. _CONFIGURE_MP_NODE_NUMBER:
317
318CONFIGURE_MP_NODE_NUMBER
319------------------------
320
321.. rubric:: CONSTANT:
322
323``CONFIGURE_MP_NODE_NUMBER``
324
325.. rubric:: OPTION TYPE:
326
327This configuration option is an integer define.
328
329.. rubric:: DEFAULT VALUE:
330
331The default value is ``NODE_NUMBER``.
332
333.. rubric:: DESCRIPTION:
334
335The value of this configuration option defines the node number of this node
336in a multiprocessor system.
337
338.. rubric:: NOTES:
339
340In the RTEMS Multiprocessing Test Suite, the node number is derived from
341the Makefile variable ``NODE_NUMBER``. The same code is compiled with the
342``NODE_NUMBER`` set to different values. The test programs behave
343differently based upon their node number.
344
345This configuration option is only evaluated if
346:ref:`CONFIGURE_MP_APPLICATION` is defined.
347
348.. rubric:: CONSTRAINTS:
349
350The following constraints apply to this configuration option:
351
352* The value of the configuration option shall be greater than or equal to zero.
353
354* The value of the configuration option shall be less than or equal to
355  `UINT32_MAX <https://en.cppreference.com/w/c/types/integer>`_.
Note: See TracBrowser for help on using the repository browser.