mirror of
https://github.com/varun-r-mallya/sysprof.git
synced 2026-02-12 08:00:53 +00:00
TODO
This commit is contained in:
38
TODO
38
TODO
@ -23,7 +23,7 @@ Before 1.2:
|
|||||||
esp0 points to top of kernel stack
|
esp0 points to top of kernel stack
|
||||||
esp points to top of user stack
|
esp points to top of user stack
|
||||||
|
|
||||||
(Reported by Kjartan Marass).
|
(Reported by Kjartan Maraas).
|
||||||
|
|
||||||
- Fix bugs/performance issues:
|
- Fix bugs/performance issues:
|
||||||
- total should probably be cached so that compute_total() doesn't
|
- total should probably be cached so that compute_total() doesn't
|
||||||
@ -58,11 +58,38 @@ Before 1.2:
|
|||||||
- don't leak the presentation strings/objects
|
- don't leak the presentation strings/objects
|
||||||
- loading and saving probably leak right now
|
- loading and saving probably leak right now
|
||||||
|
|
||||||
- think about loading and saving. Goals
|
- rethink loading and saving. Goals
|
||||||
- Can load 1.0 profiles
|
- Can load 1.0 profiles
|
||||||
- Don't export too much of stackstashes to the rest of the
|
- Don't export too much of stackstashes to the rest of the
|
||||||
app
|
app
|
||||||
|
|
||||||
|
Features:
|
||||||
|
|
||||||
|
* Have a compatibility module that can load 1.0 modules
|
||||||
|
- reads in the call tree, then generate a stack stash
|
||||||
|
by repeatedly adding traces.
|
||||||
|
|
||||||
|
* Make stackstash able to save themselves using callbacks.
|
||||||
|
|
||||||
|
* If loading a file fails, then try loading it using the
|
||||||
|
1.0 loader.
|
||||||
|
- optimization: make sure we fail immediately if we
|
||||||
|
see an unknown object.
|
||||||
|
|
||||||
|
* Add versioning support to sfile.[ch]:
|
||||||
|
- sformat_new() should take doctype and version strings:
|
||||||
|
like "sysprof-profile" "version 1.2"
|
||||||
|
- there should be sfile_sniff() functionality that will
|
||||||
|
return the doctype and version of a file. Or None
|
||||||
|
if there aren't any.
|
||||||
|
|
||||||
|
* At this point, make the loader first check if the file has a version
|
||||||
|
if it doesn't, load as 1.0, otherwise as whatever the version claims
|
||||||
|
it is.
|
||||||
|
|
||||||
|
* Make provisions for forward compatibility: maybe it should be possible
|
||||||
|
to load records with more fields than specified.
|
||||||
|
|
||||||
* Figure out how to make sfile.[ch] use less memory.
|
* Figure out how to make sfile.[ch] use less memory.
|
||||||
- In general clean sfile.[ch] up a little:
|
- In general clean sfile.[ch] up a little:
|
||||||
- split out dfa in its own generic class
|
- split out dfa in its own generic class
|
||||||
@ -88,8 +115,11 @@ Before 1.2:
|
|||||||
kernel stack and user space stack, have userspace stitch them
|
kernel stack and user space stack, have userspace stitch them
|
||||||
together. well, they could be stitched together in the kernel.
|
together. well, they could be stitched together in the kernel.
|
||||||
Already done: we now take a stacktrace of the user space process
|
Already done: we now take a stacktrace of the user space process
|
||||||
when the interrupt happens in kernel mode. We don't take any
|
when the interrupt happens in kernel mode. (Unfortunately, this
|
||||||
stacktraces of the kernel though. Things that need to be investigated:
|
causes lockups on many kernels).
|
||||||
|
|
||||||
|
We don't take any stacktraces of the kernel though. Things that need to be
|
||||||
|
investigated:
|
||||||
- does the kernel come with dwarf debug information?
|
- does the kernel come with dwarf debug information?
|
||||||
- does the kernel come with some other debug info
|
- does the kernel come with some other debug info
|
||||||
- is there a place where the vmlinux binary is usually
|
- is there a place where the vmlinux binary is usually
|
||||||
|
|||||||
Reference in New Issue
Block a user