# # For a description of the syntax of this configuration file, # see the file kconfig-language.txt in the NuttX tools repository. # config DRIVERS_NOTE bool "Note Driver Support" depends on SCHED_INSTRUMENTATION default n if DRIVERS_NOTE config DRIVERS_NOTE_MAX int "Maximum number of sched_note drivers" default 1 ---help--- sched_note supports the maximum number of drivers config DRIVERS_NOTE_TASKNAME_BUFSIZE int "Note task name buffer size" default 256 if TASK_NAME_SIZE > 0 default 0 if TASK_NAME_SIZE = 0 ---help--- The size of the in-memory task name buffer (in bytes). The buffer is used to hold the name of the task during instrumentation. Trace dump can find and show a task name corresponding to given pid in the instrumentation data by using this buffer. If 0 is specified, this feature is disabled and trace dump shows only the name of the newly created task. config DRIVERS_NOTECTL bool "Scheduler instrumentation filter control driver" default n depends on SCHED_INSTRUMENTATION_FILTER ---help--- If this option is selected, the instrumentation filter control device /dev/notectl is provided. config DRIVERS_NOTERAM bool "Note RAM driver" default y ---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 monitored (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 (which use 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. if DRIVERS_NOTERAM config DRIVERS_NOTERAM_BUFSIZE int "Note RAM buffer size" default 2048 ---help--- The size of the in-memory, circular instrumentation buffer (in bytes). config DRIVERS_NOTERAM_DEFAULT_NOOVERWRITE bool "Disable overwrite by default" default n ---help--- Disables overwriting old notes in the circular buffer when the buffer is full by default. This is useful to keep instrumentation data of the beginning of a system boot. config DRIVERS_NOTERAM_CRASH_DUMP bool "Dump noteram buffer on panic" default n ---help--- If this option is enabled, dump all contents when a crash occurs. endif # DRIVERS_NOTERAM config DRIVERS_NOTELOG bool "Note syslog driver" ---help--- The note driver output to syslog. config DRIVERS_NOTESNAP bool "Last scheduling information" default n ---help--- Record the last scheduling information. if DRIVERS_NOTESNAP config DRIVERS_NOTESNAP_NBUFFERS int "Number of last scheduling information buffers" default 128 ---help--- Number of last scheduling information buffers. endif endif # DRIVERS_NOTE