#3096 HIGH Trial-3: zooming to home view no longer zooms, seems to block
Zarro Boogs per Child
bugtracker at laptop.org
Mon Sep 10 16:33:37 EDT 2007
#3096: zooming to home view no longer zooms, seems to block
---------------------+------------------------------------------------------
Reporter: J5 | Owner: danw
Type: defect | Status: new
Priority: high | Milestone: Trial-3
Component: sugar | Version:
Resolution: | Keywords: review?
Verified: 0 |
---------------------+------------------------------------------------------
Changes (by danw):
* cc: marco (added)
* keywords: performance => review?
Comment:
Attached patch makes a few changes:
1. Makes sure we don't run _update_activity_sizes twice in a row (which
was happening before).
2. Only gets the shell mappings once rather than every time we
_update_activity_sizes
3. Rewrite the proc_smaps code to be faster, and avoid parsing the bits we
don't care about here.
This seems to make it fast enough to bring the animation back, although it
still is a little jumpy compared to the other transitions.
Making it any faster would be tricky: it's not doing any extra work (it
only reads the /proc/PID/smaps for the activity processes, not any other
processes, and it only reads each of them once per calculation). The
problem is just that /proc/PID/smaps is gigantic for a sugar-based process
because of all of the shared libraries it imports.
From previous discussions, I'm pretty sure Eben wants to have the ring
show the correct sizes immediately upon switching into the home view, so
*not* blocking is not a great solution (although we could try to rearrange
it to do the animation and the size calculation in parallel).
Another possibility would be to write the size calculation code in C, or
even make the kernel compute the sizes for us (via a different file in
/proc/PID). (That could possibly tie into OOM-killer work?)
--
Ticket URL: <https://dev.laptop.org/ticket/3096#comment:6>
One Laptop Per Child <https://dev.laptop.org>
OLPC bug tracking system
More information about the Bugs
mailing list