63 lines
2.2 KiB
Plaintext
63 lines
2.2 KiB
Plaintext
# Copyright (c) 2017 Intel Corporation
|
|
# Copyright (c) 2023 Meta
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
TYPE = PTHREAD
|
|
type = pthread_t
|
|
type-function = pthread_create
|
|
rsource "Kconfig.template.pooled_ipc_type"
|
|
|
|
if PTHREAD
|
|
|
|
config PTHREAD_RECYCLER_DELAY_MS
|
|
int "Delay for reclaiming dynamic pthread stacks (ms)"
|
|
default 100
|
|
help
|
|
Prior to a POSIX thread terminating via k_thread_abort(), scheduled
|
|
work is added to the system workqueue (SWQ) so that any resources
|
|
allocated by the thread (e.g. thread stack from a pool or the heap)
|
|
can be released back to the system. Because resources are also freed
|
|
on calls to pthread_create() there is no need to worry about resource
|
|
starvation.
|
|
|
|
This option sets the number of milliseconds by which to defer
|
|
scheduled work.
|
|
|
|
Note: this option should be considered temporary and will likely be
|
|
removed once a more synchronous solution is available.
|
|
|
|
config POSIX_PTHREAD_ATTR_STACKSIZE_BITS
|
|
int "Significant bits for pthread_attr_t stacksize"
|
|
range 8 31
|
|
default 23
|
|
help
|
|
This value plays a part in determining the maximum supported
|
|
pthread_attr_t stacksize. Valid stacksizes are in the range
|
|
[1, N], where N = 1 << M, and M is this configuration value.
|
|
|
|
config POSIX_PTHREAD_ATTR_GUARDSIZE_BITS
|
|
int "Significant bits for pthread_attr_t guardsize"
|
|
range 1 31
|
|
default 9
|
|
help
|
|
This value plays a part in determining the maximum supported
|
|
pthread_attr_t guardsize. Valid guardsizes are in the range
|
|
[0, N-1], where N = 1 << M, and M is this configuration value.
|
|
|
|
Actual guardsize values may be rounded-up.
|
|
|
|
config POSIX_PTHREAD_ATTR_GUARDSIZE_DEFAULT
|
|
int "Default size of stack guard area"
|
|
default 0
|
|
help
|
|
This is the default amount of space to reserve at the overflow end of a
|
|
pthread stack. Since Zephyr already supports both software-based stack
|
|
protection (canaries) and hardware-based stack protection (MMU or MPU),
|
|
this is set to 0 by default. However, a conforming application would be
|
|
required to set this to PAGESIZE. Eventually, this option might
|
|
facilitate a more dynamic approach to guard areas (via software or
|
|
hardware) but for now it simply increases the size of thread stacks.
|
|
|
|
endif
|