-
Notifications
You must be signed in to change notification settings - Fork 17
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
DTrace provides a mechanism to report dropped events. A drop occurs when trace data cannot be recorded for a particular reason. This patch contains the full implementation of 4 categories of drops, primarily because they are all closely related: - principal buffer drops: reported when the producer failed to add trace data to the principal buffer - aggregation buffer drops: reported when the producer failed to allocate an aggreggation and therefore failed to record data - speculation drops: reported when something goes wrong with the recording of speculative tracing data + regular drops: reported when speculative data could not be written to a speculation buffer + busy drops: reported when a speculation could not be created because all buffers are busy being committed or discarded + unavailable drops: reported when no available speculation buffers were found - dynamic variable drops: reported when a dynamic variable (or associative array element) could not be allocated Two mechanisms for reporting drops are needed: (1) Per-CPU reporting: used for principal and aggregation buffer drops (stored in the cpuinfo structures) (2) Global reporting: used for speculation and dynamic variable drops (stored in the state BPF map) Detection of drops (and subsequent reporting to the user) is done through frequent retrieval of status data. The handling of status data (and the use of statusrate) is being re-introduced with this patch. The drop count for speculations is a bit more complex than the other ones because drops can occur both in the producer (when data cannot be written to the trace output buffer) *and* in the consumer (when data cannot be recorded in a speculation buffer). These separate counts are combined whenever status processing takes place to ensure the correct drop count is presented to the user. Various tests have updated expected results because drops are now being reported correctly. Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com> Reviewed-by: Eugene Loh <eugene.loh@oracle.com>
- Loading branch information
Showing
26 changed files
with
359 additions
and
88 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.