Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[tracecompass-dev] New feature: I/O analysis (no april's fool :p)

Hi all,

I've pushed on gerrit the first few patches of the Input Output analysis module, developed by Houssem Daoud. They are all under the topic of io_analysis [1].

The I/O analysis keeps track of the requests to the disk (with the block_* events) and the reads and writes per process (from the syscalls). It is not yet possible to track requests to disk to processes, as this would need to track access to pages, who dirtied a page, etc, which we don't do yet.

*Description of each patch*

Dependencies:

- Attribute pool [2]: Provide a class to keep a pool of attributes that can be re-used in the state system. This allows to reuse attributes for very short elements of the model (like requests) instead of adding a new attribute that will be very short lived for each one.
- Add I/O events and fields to the event layout [3]

The analysis

- Introduce the I/O analysis [4]: This adds the analysis and the state provider to build a state system. Some classes represent the model of the system (Disk, requests, block IO operation) and the state provider makes use of event handlers, like the Kernel analysis does.
- Unit tests [5]: As complete as possible!
- Provide information from the IO model [6]: Add a utility method to retrieve the disks and methods to the model classes to retrieve disk sectors information. This patch also provides unit tests.
- Disk I/O Activity View [7]: Provides a XY view to display disk access speed (read/write).
- Retrieve some more information from the model [not on gerrit]: Add model methods to retrieve disk requests information.
- Disk Request View [not on gerrit]: This is a time graph view to show disk requests, in the waiting (elevator) queue and driver (dispatch, where they are really being serviced) queue.

**** End of our ambition for Neon, next steps follow

- Provide a segment store for the requests
- Add latency views for disk requests
- Add read/write per thread view
- Match disk requests to threads and add view showing this

Houssem provided some traces to test this analysis [8].

The patches that are not yet on gerrit can be tried out from my git here [9]. Feedback is welcome!

Regards,
Geneviève

[1] https://git.eclipse.org/r/#/q/status:open+project:tracecompass/org.eclipse.tracecompass+branch:master+topic:io_analysis
[2] https://git.eclipse.org/r/#/c/67263/
[3] https://git.eclipse.org/r/#/c/69146/
[4] https://git.eclipse.org/r/#/c/69667/
[5] https://git.eclipse.org/r/#/c/69668/
[6] https://git.eclipse.org/r/#/c/69669/
[7] https://git.eclipse.org/r/#/c/69670/
[8] http://secretaire.dorsal.polymtl.ca/~gbastien/traces/IO_traces.tar.gz
[9] http://git.dorsal.polymtl.ca/~gbastien?p=org.eclipse.tracecompass.git;a=shortlog;h=refs/heads/io_houssem

Back to the top