tracing: ctf: take IRQ lock before generating timestamp #93210
+2
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
CTF tracing relies on all packet timestamps being increasing- if a timestamp of a later packet is less than the prior packet, the CTF parser assumes the timestamp field has overflowed and adds to the overall timestamp to account for this.
When taking a timestamp for a CTF packet, it was possible for an interrupt to occur before the packet was submitted to the tracing core framework but after the timestamp was generated. The interrupt itself would generate a tracing event with a later timestamp then the packet in question, leading to the packets being recorded out of order.
To resolve this, take an IRQ lock before generating the timestamp and release it after submitting the packet to the tracing core.
Note that while this fixes a bug, I don't think it is critical enough for inclusion in 4.2