Sun Jun 12 13:37:15 2005  Soeren Sandmann  <sandmann@redhat.com>

	* TODO: Updates
This commit is contained in:
Soeren Sandmann
2005-06-12 17:38:22 +00:00
committed by Søren Sandmann Pedersen
parent a2499b571f
commit 82a87202c1
2 changed files with 57 additions and 13 deletions

View File

@ -1,3 +1,7 @@
Sun Jun 12 13:37:15 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
Thu Jun 9 13:28:33 2005 Søren Sandmann <sandmann@redhat.com> Thu Jun 9 13:28:33 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates * TODO: Updates

66
TODO
View File

@ -9,19 +9,18 @@ Before 1.0:
there is no more room or we run out of things to expand. there is no more room or we run out of things to expand.
* Build system * Build system
- Find out what distributions it actually works on - Find out what distributions it actually works on
(ask for sucess/failure-stories in 0.9.x releases) (ask for sucess/failure-stories in 0.9.x releases)
- Check the kernel we are building against, if it is SMP or - After 1.0:
less than 2.6.11, print a warning and suggest upgrading. - Announce on Freshmeat
- Announce on Advogato
- Announce on gnome-announce
- Announce on devtools (?)
- Announce on Gnomefiles
* after 1.0: - Check the kernel we are building against, if it is SMP or
- announce on less than 2.6.11, print a warning and suggest upgrading.
- advogato
- gnomefiles
- freshmeat
- gnome-announce list
- gnomedesktop
Before 1.2: Before 1.2:
@ -52,7 +51,8 @@ Before 1.2:
- Make the process waiting in poll() responsible for extracting - Make the process waiting in poll() responsible for extracting
the backtrace. Give a copy of the entire stack rather than doing the backtrace. Give a copy of the entire stack rather than doing
the walk inside the kernel. That would allow us to do more complex the walk inside the kernel. That would allow us to do more complex
algorithms in userspace. algorithms in userspace (though we'd lose the ability to do non-racy
file naming).
New model: New model:
- Two arrays, - Two arrays,
@ -298,7 +298,7 @@ Later:
For Memory: badness=<cache line size not in cache>, cookie=<the address> For Memory: badness=<cache line size not in cache>, cookie=<the address>
Cookies are use to figure out whether an access is really the same, ie., for two identical Cookies are used to figure out whether an access is really the same, ie., for two identical
cookies, the size is still just one, however cookies, the size is still just one, however
Memory is different from disk because you can't reasonably assume that stuff that has Memory is different from disk because you can't reasonably assume that stuff that has
@ -307,9 +307,49 @@ Later:
- Perhaps show a timeline with CPU in one color and disk in one color. Allow people to
look at at subintervals of this timeline.
- The existing sysprof visualization is not terribly bad, the "self" column is
more useful now.
- See what files are accessed so that you can get a getter idea of what
the system is doing.
- Optimization usecases:
- A lot of stuff is read synchronously, but it is possible to read it asynchronously.
- What function is doing all the synchronous reading, and what files/offsets is
it reading. Visualization: lots of reads across different files out of one
function
- A piece of the program is doing disk I/O. We can drop that entire piece of
code. Sysprof visualization is ok, although seeing the files accessed is useful
so that we can tell if those files are not just going to be used in
other places. (Gnumeric plugin_init()).
- A function is reading a file synchronously, but there is other (CPU/disk) stuff
that could be done at the same time. Visualization: A piece of the timeline
is diskbound with little or no CPU used.
- Want to improve code locality of library or binary. Visualization: no GUI, just
produce a list of functions that should be put first in the file. Then run the
program again until the list converges. (Valgrind may be more useful here).
- Nautilus reads a ton of files, icons + all the files in the homedirectory.
Normal sysprof visualization is probably useful enough.
- Profiling a login session.
- Need to report stat() as well. (Where do inode data end up? In the buffer-cache?)
- To generate the timeline we need to know when a disk request is issued and when it
is completed. This way we can assign blame to all applications that have issued a
disk request at a given point in time.
The disk timeline should probably vary in intensity with the number of outstanding
disk requests.
DONE: DONE: