2020-08-06 01:43:13 +08:00
|
|
|
#
|
|
|
|
# For a description of the syntax of this configuration file,
|
|
|
|
# see the file kconfig-language.txt in the NuttX tools repository.
|
|
|
|
#
|
|
|
|
|
|
|
|
menu "Note Driver Support"
|
|
|
|
|
|
|
|
config DRIVER_NOTE
|
|
|
|
bool "Scheduler instrumentation driver"
|
|
|
|
default n
|
2020-08-07 02:57:30 +08:00
|
|
|
depends on !SCHED_INSTRUMENTATION_CSECTION && (!SCHED_INSTRUMENTATION_SPINLOCK || !SMP)
|
2020-08-06 01:43:13 +08:00
|
|
|
---help---
|
2020-08-07 02:57:30 +08:00
|
|
|
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
|
2020-08-06 01:43:13 +08:00
|
|
|
to read data from the in-memory, scheduler instrumentation "note"
|
|
|
|
buffer.
|
|
|
|
|
2020-08-07 02:57:30 +08:00
|
|
|
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 SCHED_NOTE_BUFSIZE
|
|
|
|
int "Instrumentation buffer size"
|
|
|
|
depends on DRIVER_NOTE
|
|
|
|
default 2048
|
|
|
|
---help---
|
|
|
|
The size of the in-memory, circular instrumentation buffer (in
|
|
|
|
bytes).
|
|
|
|
|
2020-08-06 01:43:13 +08:00
|
|
|
endmenu
|