mirror of
https://github.com/apache/nuttx.git
synced 2026-05-28 11:56:10 +08:00
sched/note: Move the circle buffer code to driver
so the format code can be shared by different transport Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
This commit is contained in:
+29
-2
@@ -8,10 +8,37 @@ menu "Note Driver Support"
|
||||
config DRIVER_NOTE
|
||||
bool "Scheduler instrumentation driver"
|
||||
default n
|
||||
depends on SCHED_INSTRUMENTATION_BUFFER && SCHED_NOTE_GET
|
||||
depends on !SCHED_INSTRUMENTATION_CSECTION && (!SCHED_INSTRUMENTATION_SPINLOCK || !SMP)
|
||||
---help---
|
||||
Enable building a serial driver that can be used by an application
|
||||
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 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).
|
||||
|
||||
endmenu
|
||||
|
||||
Reference in New Issue
Block a user