@@ -37,7 +37,7 @@ Every ``{}`` in the path is replaced with an extra argument passed to the CTL
37
37
function. Alternative addressing methods are described below.
38
38
39
39
Pool / Provider addressing
40
- ==========================
40
+ ============================
41
41
42
42
Two addressing schemes are provided: ``by_handle `` and ``by_name ``. Each pool
43
43
and provider has a unique handle and an optional user-defined name that can be
@@ -56,7 +56,7 @@ appending an index after the name::
56
56
The number of pools with a given name can be obtained with the ``count `` node.
57
57
58
58
Wildcards
59
- =========
59
+ ===========
60
60
61
61
A ``{} `` in the path acts as a wildcard and is replaced with successive
62
62
arguments of ``umfCtlGet ``, ``umfCtlSet `` or ``umfCtlExec ``. Wildcards can
@@ -74,18 +74,23 @@ replace any node, not only handles. For example::
74
74
Ensure that the types of wildcard arguments match the expected node types.
75
75
76
76
Default addressing
77
- ==================
77
+ ===================
78
78
79
79
``umf.provider.default `` and ``umf.pool.default `` store default values applied
80
80
to providers or pools created after the defaults are set. For example::
81
81
82
- const char *name = "custom";
83
- umfCtlSet("umf.pool.default.disjoint.name", (void *)name, strlen(name)+1);
82
+ size_t capacity = 16;
83
+ umfCtlSet("umf.pool.default.disjoint.params.capacity", &capacity,
84
+ sizeof(capacity));
84
85
85
- Every subsequently created disjoint pool will use ``custom `` as its name unless
86
- overridden by explicit parameters. Defaults may be supplied programmatically or
87
- via configuration and are saved internally and applied during initalization of
88
- a matching provider or pool.
86
+ Every subsequently created disjoint pool will use ``16 `` as its starting
87
+ capacity unless overridden by explicit parameters. Defaults are keyed by the
88
+ name returned from the provider or pool ``get_name `` callback, so custom labels
89
+ must be addressed explicitly. Pools or providers that keep their canonical
90
+ names (such as ``disjoint `` or ``OS ``) continue to match the corresponding
91
+ canonical entries. Defaults may be supplied programmatically or via
92
+ configuration and are saved internally and applied during initialization of a
93
+ matching provider or pool.
89
94
90
95
Environment variables
91
96
=====================
@@ -116,7 +121,7 @@ Within each subsystem the path continues with an addressing scheme followed by
116
121
the module or leaf of interest.
117
122
118
123
Reading this reference
119
- ----------------------
124
+ ------------------------
120
125
121
126
Parameter annotations describe the values stored in the node rather than the
122
127
pointer types passed to ``umfCtlGet ``/``umfCtlSet ``/``umfCtlExec ``. The
@@ -186,7 +191,7 @@ Logger nodes
186
191
187
192
:param path: Receives the currently selected sink on reads. On writes, pass
188
193
``"stdout" `` or ``"stderr" `` to redirect to standard streams, a
189
- NUL -terminated file path to append to a file, or ``NULL `` to disable
194
+ NULL -terminated file path to append to a file, or ``NULL `` to disable
190
195
logging altogether.
191
196
:type path: ``char * `` when reading, ``const char * `` when writing
192
197
@@ -207,14 +212,16 @@ Provider entries are organized beneath ``umf.provider``. Use
207
212
``umf.provider.by_handle.{provider} `` with a
208
213
:type: `umf_memory_provider_handle_t ` argument to reach a specific provider.
209
214
Providers can also be addressed by name through ``umf.provider.by_name.{provider} ``;
210
- append ``.{index} `` to address specyfic provider when multiple providers share the same label.
211
- Defaults for future providers live under ``umf.provider.default.{provider_name} ``,
212
- where ``{provider_name} `` matches the canonical provider identifier (``OS ``,
213
- ``FILE ``, ``DEVDAX ``, ``FIXED ``, ``CUDA `` or ``LEVEL_ZERO ``). Values written to
214
- the default tree are saved until a matching provider is created and applied
215
- during provider initialization. Defaults can be supplied programmatically or
216
- through configuration strings. The entries below list only the suffix of each
217
- node; prefix them with the appropriate ``umf.provider `` path.
215
+ append ``.{index} `` to address specific provider when multiple providers share the same label.
216
+ Defaults for future providers live under ``umf.provider.default.{provider_name} ``
217
+ and are keyed by the runtime provider name returned from ``get_name ``.
218
+ Providers instantiated with their built-in names (``OS ``, ``FILE ``, ``DEVDAX ``,
219
+ ``FIXED ``, ``CUDA `` or ``LEVEL_ZERO ``) continue to match those canonical
220
+ entries, while custom labels must be addressed explicitly. Values written to the
221
+ default tree are saved until a matching provider is created and applied during
222
+ provider initialization. Defaults can be supplied programmatically or through
223
+ configuration strings. The entries below list only the suffix of each node;
224
+ prefix them with the appropriate ``umf.provider `` path.
218
225
219
226
Common provider statistics
220
227
--------------------------
@@ -316,11 +323,13 @@ Pool nodes
316
323
Pool entries mirror the provider layout. ``umf.pool.by_handle.{pool} `` accepts a
317
324
:type: `umf_memory_pool_handle_t `, while ``umf.pool.by_name.{pool} `` addresses
318
325
pools by name with an optional ``.{index} `` suffix when names are reused.
319
- Defaults for future pools reside under ``umf.pool.default.{pool} ``, where
320
- canonical names include ``disjoint ``, ``scalable `` and ``jemalloc ``. Defaults
321
- can be written via ``umf.pool.default.<pool> `` either programmatically or
322
- through configuration strings. The entries below list only the suffix of each
323
- node; prefix them with the appropriate ``umf.pool `` path.
326
+ Defaults for future pools reside under ``umf.pool.default.{pool} `` and track the
327
+ name returned by each pool's ``get_name `` implementation. Pools that keep their
328
+ canonical labels (``disjoint ``, ``scalable `` and ``jemalloc ``) continue to match
329
+ those entries, while renamed pools must be addressed explicitly. Defaults can be
330
+ written via ``umf.pool.default.<pool> `` either programmatically or through
331
+ configuration strings. The entries below list only the suffix of each node;
332
+ prefix them with the appropriate ``umf.pool `` path.
324
333
325
334
Common pool statistics
326
335
--------------------------
@@ -346,7 +355,7 @@ Disjoint pool (``disjoint``)
346
355
provider.
347
356
:type bytes: ``size_t ``
348
357
349
- **Access: ** read-write. (write is only avaiable through defaults)
358
+ **Access: ** read-write. (write is only available through defaults)
350
359
**Defaults / Env: ** supported.
351
360
352
361
Governs how much memory the pool grabs in each slab. Lower values reduce
@@ -359,7 +368,7 @@ Disjoint pool (``disjoint``)
359
368
cached by the pool.
360
369
:type bytes: ``size_t ``
361
370
362
- **Access: ** read-write. (write is only avaiable through defaults)
371
+ **Access: ** read-write. (write is only available through defaults)
363
372
**Defaults / Env: ** supported.
364
373
365
374
Sets the cut-off for pooling allocations. Requests larger than this value are
@@ -372,7 +381,7 @@ Disjoint pool (``disjoint``)
372
381
may retain.
373
382
:type count: ``size_t ``
374
383
375
- **Access: ** read-write. (write is only avaiable through defaults)
384
+ **Access: ** read-write. (write is only available through defaults)
376
385
**Defaults / Env: ** supported.
377
386
378
387
Caps the pool's cached slabs per bucket to limit memory retention. Shrinking
@@ -385,7 +394,7 @@ Disjoint pool (``disjoint``)
385
394
serve.
386
395
:type bytes: ``size_t ``
387
396
388
- **Access: ** read-write. (write is only avaiable through defaults)
397
+ **Access: ** read-write. (write is only available through defaults)
389
398
**Defaults / Env: ** supported.
390
399
391
400
Controls the smallest chunk size kept in the pool, which in turn affects the
@@ -397,7 +406,7 @@ Disjoint pool (``disjoint``)
397
406
:param level: Receives or supplies the tracing level for the pool.
398
407
:type level: ``int `` (``0 `` disables tracing)
399
408
400
- **Access: ** read-write. (write is only avaiable through defaults)
409
+ **Access: ** read-write. (write is only available through defaults)
401
410
**Defaults / Env: ** supported.
402
411
403
412
Controls the disjoint pool's tracing features. ``0 `` disables tracing.
0 commit comments