On 10/20/2011 08:08 AM, Stephan Bergmann wrote: > On 10/19/2011 07:17 PM, Andrew Haley wrote: >> On 10/19/2011 05:57 PM, Michael Meeks wrote: >>> >>> On Wed, 2011-10-19 at 17:32 +0200, Stephan Bergmann wrote: >>>> What the LibO hsqldb code does a lot is call JNI's >>>> Attach/DetachCurrentThread. Googling around, >>>> <http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6929067> "Stack >>>> guard pages should be removed when thread is detached" suggests that >>>> reading /proc/self/maps might have been added into >>>> Attach/DetachCurrentThread as part of a bug fix. That would explain >>>> things. >>> >>> Good catch ! The irony ... :-) this Java bug was kindly fixed for us >>> indirectly via Andrew Haley to address the bad stack page left around when >>> we had run some java. That page was causing crashes in calc formula >>> computation >>> in large sheets. >>> >>> It seems we can't win at some stage here. Andrew - I wonder are other >>> people getting frustrated by performance here too ? it seems there is >>> some huge /proc/self/maps thrash as we enter/exit Java now on Linux. >> >> Hmmm, I thought this had been fixed. >> >> See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6978641 > > This might still hit us, if the LibO hsqldb code runs in the main thread > (which I'm pretty sure it does). That code calls > Attach/DetachCurrentThread frequently.
I suppose that code was written with the assumption that Attach/DetachCurrentThread is cheap. Checking for the guard pages is not madly expensive, though: it's only parsing the memory map in a very simple way. Having said that, my original patch was rewritten in a way that makes it run much more slowly because it's now using unbuffered rather than buffered I/O. > I think the best solution here would be to change the LibO hsqldb code, > to call Attach/DetachCurrentThread rarely rather than frequently, but > according to Ocke Janssen (who used to maintain that code) that was no > easy option. Or just move it onto a subthread. Andrew. _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice