<br><br><div><span class="gmail_quote">2006/10/19, Eero Tamminen <<a href="mailto:eero.tamminen@movial.fi">eero.tamminen@movial.fi</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>ext Marius Gedminas wrote:<br>>>>> Hi, after upgrade to maemo 2.0 I have a problem. Some times my 770<br>>>>> reboot. This happen some times when I'm using the browser and every<br>>>>> time I try to use Gizmo. For now I never had problem with other
<br>>>>> programs. You think this is a software problem or hardware?<br>>>> My 770 reboots once every two--three days. I think it's a software<br>>>> problem. I could be wrong.<br>>> As mentioned in the following link, please file bugs against the errant
<br>>> applications.<br>>> <a href="http://maemo.org/maemowiki/ReportingRebootIssues?action=show">http://maemo.org/maemowiki/ReportingRebootIssues?action=show</a><br>>><br>>> I remember in your case it was FBReader - report it to them.
<br>><br>> /var/lib/dsme/lifeguard-resets claims it is maemo_af_desktop's fault.<br><br>Were there several reboots accounted for the Desktop process?<br><br>Btw. there are several reasons why Desktop might die:<br>- It's buggy :-)
<br>- Something in the device is forcing it to run completely out of memory<br> (and if alloc fails, Glib will abort the co. process), e.g. because<br> that something is leaking memory or otherwise using a lot of memory
<br> without integrating itself to the device memory management:<br> - If possible, app should implement support for the "background killing"<br> i.e. save UI state when backgrounded and then indicate[1] that it's
<br> killable when the device runs out of memory:<br> <a href="https://stage.maemo.org/svn/maemo/projects/haf/doc/api/hildon-libs/hildon-libs-HildonProgram.html#hildon-program-set-can-hibernate">https://stage.maemo.org/svn/maemo/projects/haf/doc/api/hildon-libs/hildon-libs-HildonProgram.html#hildon-program-set-can-hibernate
</a><br> <a href="http://www.maemo.org/platform/docs/api/libosso/html/group__Statesave.html">http://www.maemo.org/platform/docs/api/libosso/html/group__Statesave.html</a><br> <a href="http://www.maemo.org/platform/docs/api/libosso/html/group__Autosave.html">
http://www.maemo.org/platform/docs/api/libosso/html/group__Autosave.html</a><br> When foregrounded, I think app should then remove the state and<br> when being re-started, it should check whether there was some<br> UI-state. If there was, restore the UI-state (instead of going
<br> to the default application state). If you strace the device apps,<br> you see that UI state is stored under /tmp/osso-appl-states/ which<br> is on tmpfs i.e. goes away at reboot<br> - It could use the libosso osso_mem_saw_enable & osso_mem_saw_disable
<br> <a href="http://maemo.org/lxr/source/libosso/src/osso-mem.h#110">http://maemo.org/lxr/source/libosso/src/osso-mem.h#110</a><br> functions around operations that:<br> - could potentially take a lot of memory (loading large image etc)
<br> - handle allocation failures gracefully (not abort/assert)<br> - If app caches things or otherwise has some "optional" memory<br> usage, it could also listen to the system low memory notifications<br>
so that it can purge from RAM all of its caches when that happens:<br> <a href="http://www.maemo.org/platform/docs/api/libosso/html/group__Devstate.html">http://www.maemo.org/platform/docs/api/libosso/html/group__Devstate.html
</a><br> <a href="http://www.maemo.org/platform/docs/api/libosso/html/group__outside.html#g231284109a21410088850beed324ea57">http://www.maemo.org/platform/docs/api/libosso/html/group__outside.html#g231284109a21410088850beed324ea57
</a><br><br>If the device runs _completely_ out of memory, I don't think the kernel<br>out-of-memory killer knows which process user would prefer to be killed<br>to get more memory :-).<br><br>Some more info on kernel OOM-killer:
<br> <a href="http://linux-mm.org/OOM_Killer">http://linux-mm.org/OOM_Killer</a><br> <a href="http://lwn.net/Articles/104179/">http://lwn.net/Articles/104179/</a><br><br>[1] You can check whether app is "background-killable" by:
<br>- using "xwininfo|grep Window id" and tapping to the application window,<br>- topping another window, and then<br>- doing "xprop -id <id> | grep KILL"<br>If you see the hibernate property set for the app,
<br>it is "background killable".<br><br><br>> FBReader just happens to be the application I use most often.<br>><br>> I haven't reported it in Bugzilla yet, because I do not have a way to<br>> reproduce the problem (other than "try to use the device for a few
<br>> days"), and also because it is not that irritating -- the device boots<br>> pretty fast, and the progress bar is kinda nice. :)<br><br><br> - Eero<br>_______________________________________________<br>maemo-developers mailing list
<br><a href="mailto:maemo-developers@maemo.org">maemo-developers@maemo.org</a><br><a href="https://maemo.org/mailman/listinfo/maemo-developers">https://maemo.org/mailman/listinfo/maemo-developers</a></blockquote><div><br>
<br>Thanks to everyone for suggestions. I will report any information I can collect , following those instructions <a href="http://maemo.org/maemowiki/ReportingRebootIssues?action=show">http://maemo.org/maemowiki/ReportingRebootIssues?action=show
</a>, in the hope that those can help to fix bugs.<br></div><br></div><br>