nuttx/drivers/note/Kconfig

59 lines
2.0 KiB
Plaintext
Raw Normal View History

#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#
menuconfig DRIVER_NOTE
bool "Note Driver Support"
depends on SCHED_INSTRUMENTATION
default n
if DRIVER_NOTE
choice
prompt "Note driver selection"
default DRIVER_NOTERAM
config DRIVER_NOTERAM
bool "Note RAM driver"
depends on !SCHED_INSTRUMENTATION_CSECTION && (!SCHED_INSTRUMENTATION_SPINLOCK || !SMP)
---help---
If this option is selected, then in-memory buffering logic is
enabled to capture scheduler instrumentation data. This has
the advantage that (1) the platform logic does not have to provide
the sched_note_* interfaces described for the previous settings.
Instead, the buffering logic catches all of these. It encodes
timestamps the scheduler note and adds the note to an in-memory,
circular buffer. And (2) buffering the scheduler instrumentation
data (versus performing some output operation) minimizes the impact
of the instrumentation on the behavior of the system. If the in-memory
buffer becomes full, then older notes are overwritten by newer notes.
A character driver is provided which can be used by an application
to read data from the in-memory, scheduler instrumentation "note"
buffer.
NOTE: This option is not available if critical sections are being
monitor (nor if spinlocks are being monitored in SMP configuration)
because there would be a logical error in the design in those cases.
That error is that these interfaces call enter_ and leave_critical_section
(and which us spinlocks in SMP mode). That means that each call to
sched_note_get() causes several additional entries to be added from
the note buffer in order to remove one entry.
config DRIVER_NOTEARCH
bool "Note Arch driver"
---help---
The note driver is provided by arch specific code.
endchoice
config DRIVER_NOTERAM_BUFSIZE
int "Note RAM buffer size"
depends on DRIVER_NOTERAM
default 2048
---help---
The size of the in-memory, circular instrumentation buffer (in bytes).
endif