Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

retained_mem/retention: Allow disabling mutex support #59264

Merged
merged 2 commits into from
Jul 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 9 additions & 4 deletions drivers/retained_mem/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,18 @@ config RETAINED_MEM_INIT_PRIORITY
Retained memory devices initialization priority,

config RETAINED_MEM_MUTEXES
bool "Retained memory mutex support"
bool
default y
depends on MULTITHREADING
depends on !RETAINED_MEM_MUTEX_FORCE_DISABLE

config RETAINED_MEM_MUTEX_FORCE_DISABLE
bool "Disable retained memory mutex support"
depends on MULTITHREADING
help
Use mutexes to prevent issues with concurrent retained memory access.
Should only be disabled whereby retained memory access is required
in an ISR or for special use cases.
Disable use of mutexes which prevent issues with concurrent retained
memory access. This option should only be enabled when retained
memory access is required in an ISR or for special use cases.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't the idea that RETAINED_MEM_ALLOW_ISR_ACCESS plus k_is_in_isr() handle the use in an ISR? If so, should it mentions ISR in the text for RETAINED_MEM_MUTEX_FORCE_DISABLE. This option now seems more useful for special cases -- which is my case I guess :-)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've removed the ISR check for now and just kept the force disable in this PR, might re-visit the ISR check in future when I have time to add a test for it and check it works


module = RETAINED_MEM
module-str = retained_mem
Expand Down
13 changes: 9 additions & 4 deletions subsys/retention/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,18 @@ config RETENTION_INIT_PRIORITY
priorities for retained memory drivers.

config RETENTION_MUTEXES
bool "Retention mutex support"
bool
default y
depends on MULTITHREADING
depends on !RETENTION_MUTEX_FORCE_DISABLE

config RETENTION_MUTEX_FORCE_DISABLE
bool "Disable retention mutex support"
depends on MULTITHREADING
help
Use mutexes to prevent issues with concurrent retention device
access. Should only be disabled whereby retained memory access is
required in an ISR or for special use cases.
Disable use of mutexes which prevent issues with concurrent retention
device access. This option should only be enabled when retention
access is required in an ISR or for special use cases.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same comment here as the one for retained mem driver, about mentioning ISR here.


config RETENTION_BUFFER_SIZE
int "Retention stack buffer sizes"
Expand Down