Component: Kernel instrumentation

Macro name

CYGPKG_KERNEL_INSTRUMENT

Type

Boolean

Description

The current release of the kernel contains an initial version of instrumentation support. The various parts of the kernel will invoke instrumentation routines whenever appropriate events occur, and these will be stored in a circular buffer for later reference.

Option: Size of instrumentation buffer size

Macro name

CYGNUM_KERNEL_INSTRUMENT_BUFFER_SIZE

Type

Count

Description

If kernel instrumentation is enabled then the instrumentation data goes into a circular buffer. A larger buffer allows more data to be stored, but at a significant cost in memory. The value of this option corresponds to the number of entries in the table, and typically each entry will require 16 bytes of memory.

Option: Perform selective instrumentation

Macro name

CYGDBG_KERNEL_INSTRUMENT_FLAGS

Type

Boolean

Description

The kernel can either collect all instrumentation events, or it can filter out events at runtime based on a set of flags. For example it would be possible to decide at runtime that only scheduler and interrupt instrumentation flags are of interest and that all other flags should be ignored. This flag mechanism involves extra code and processor cycle overhead in the instrumentation code, so it can be disabled if the application developer is interested in all instrumentation events.

Option: Instrument the scheduler

Macro name

CYGDBG_KERNEL_INSTRUMENT_SCHED

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the scheduling code.

Option: Instrument thread operations

Macro name

CYGDBG_KERNEL_INSTRUMENT_THREAD

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the code that manipulates threads.

Option: Instrument interrupts

Macro name

CYGDBG_KERNEL_INSTRUMENT_INTR

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the interrupt handling code.

Option: Instrument mutex operations

Macro name

CYGDBG_KERNEL_INSTRUMENT_MUTEX

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the mutex code.

Option: Instrument condition variable operations

Macro name

CYGDBG_KERNEL_INSTRUMENT_CONDVAR

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the condition variable code.

Option: Instrument binary semaphore operations

Macro name

CYGDBG_KERNEL_INSTRUMENT_BINSEM

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the binary semaphore code.

Option: Instrument counting semaphore operations

Macro name

CYGDBG_KERNEL_INSTRUMENT_CNTSEM

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the counting semaphore code.

Option: Instrument message box operations

Macro name

CYGDBG_KERNEL_INSTRUMENT_MBOXT

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the message box code.

Option: Instrument clock operations

Macro name

CYGDBG_KERNEL_INSTRUMENT_CLOCK

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the real-time clock code.

Option: Instrument alarm-related operations

Macro name

CYGDBG_KERNEL_INSTRUMENT_ALARM

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not instrumentation support is compiled into the code related to alarm operations.

Option: Support application-level instrumentation

Macro name

CYGDBG_KERNEL_INSTRUMENT_USER

Type

Boolean

Description

It is possible to perform selective instrumentation at run-time. It is also possible to disable instrumentation in various kernel components at compile-time, thus reducing the code size overheads. This option controls whether or not application-level instrumentation gets compiled in.