The following commit has been merged in the master branch: commit 293d393c27eb4a9e9999efafa616e21a6c983871 Author: Rene Engelhard <r...@debian.org> Date: Fri Jan 13 10:30:53 2012 +0100
backport fix for ttach/Detach-CurrentThread slowness from libreoffice-3-5 diff --git a/changelog b/changelog index 1902e11..a9a867b 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,11 @@ +libreoffice (1:3.4.5-2) UNRELEASED; urgency=low + + * debian/patches/jdbc-driver-threading.diff: backport fix for + Attach/Detach-CurrentThread slowness from libreoffice-3-5 + (closes: #644957) + + -- Rene Engelhard <r...@debian.org> Sun, 15 Jan 2012 23:11:52 +0100 + libreoffice (1:3.4.5-1) unstable; urgency=medium [ Rene Engelhard ] diff --git a/patches/jdbc-driver-threading.diff b/patches/jdbc-driver-threading.diff new file mode 100644 index 0000000..20f1efd --- /dev/null +++ b/patches/jdbc-driver-threading.diff @@ -0,0 +1,65 @@ +--- /dev/null 2012-01-12 01:26:03.031969178 +0100 ++++ libreoffice-3.4.5/libreoffice-build/patches/hotfixes/jdbc-driver-threading.diff 2012-01-15 23:08:55.000000000 +0100 +@@ -0,0 +1,62 @@ ++From cbc1ddba1bbe8843e0b31d39cb5c04f7b6518925 Mon Sep 17 00:00:00 2001 ++From: Stephan Bergmann <sberg...@redhat.com> ++Date: Fri, 13 Jan 2012 08:38:07 +0000 ++Subject: Confine JDBC driver to thread-affine apartment for Java 6 performance ++ ++... so that the massive number of the JDBC driver's calls to JNI Attach/Detach- ++CurrentThread are guaranteed not to happen on the main thread (where they are ++extremely expensive, see ++<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6978641> "Fix for 6929067 ++introduces additional overhead in thread creation/termination paths"). ++ ++(cherry picked from commit bb59742bcf4883af5876a2ffadcc4a689e414b60) ++--- ++diff --git a/connectivity/source/drivers/jdbc/exports.dxp b/connectivity/source/drivers/jdbc/exports.dxp ++index 7003307..f0e1c69 100755 ++--- connectivity/source/drivers/jdbc/exports.dxp +++++ connectivity/source/drivers/jdbc/exports.dxp ++@@ -1 +1,2 @@ +++component_getImplementationEnvironment ++ component_getFactory ++diff --git a/connectivity/source/drivers/jdbc/jservices.cxx b/connectivity/source/drivers/jdbc/jservices.cxx ++index 59c73ff..85df771 100644 ++--- connectivity/source/drivers/jdbc/jservices.cxx +++++ connectivity/source/drivers/jdbc/jservices.cxx ++@@ -83,7 +83,21 @@ struct ProviderRequest ++ void* getProvider() const { return xRet.get(); } ++ }; ++ ++-//--------------------------------------------------------------------------------------- +++extern "C" SAL_DLLPUBLIC_EXPORT void SAL_CALL +++component_getImplementationEnvironment( +++ char const ** ppEnvTypeName, uno_Environment **) +++{ +++ // Recent Java 6 VMs make calls to JNI Attach/DetachCurrentThread (which +++ // this code does extensively) very expensive. A follow-up JVM fix reduced +++ // the overhead significantly again for all threads but the main thread. So +++ // a quick hack to improve performance of this component again is to confine +++ // it in the affine apartment (where all code will run on a single, +++ // dedicated thread that is guaranteed no to be the main thread). However, +++ // a better fix would still be to redesign the code so that it does not call +++ // Attach/DetachCurrentThread so frequently: +++ *ppEnvTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME ":affine"; +++} +++ ++ extern "C" SAL_DLLPUBLIC_EXPORT void* SAL_CALL component_getFactory( ++ const sal_Char* pImplementationName, ++ void* pServiceManager, ++diff --git a/connectivity/source/drivers/jdbc/makefile.mk b/connectivity/source/drivers/jdbc/makefile.mk ++index befdc73..4229c8f 100755 ++--- connectivity/source/drivers/jdbc/makefile.mk +++++ connectivity/source/drivers/jdbc/makefile.mk ++@@ -78,8 +78,6 @@ SLOFILES=\ ++ $(SLO)$/tools.obj \ ++ $(SLO)$/ContextClassLoader.obj ++ ++-SHL1VERSIONMAP=$(SOLARENV)/src/component.map ++- ++ # --- Library ----------------------------------- ++ ++ SHL1TARGET= $(JDBC_TARGET)$(DLLPOSTFIX) ++-- ++cgit v0.9.0.2-2-gbebe diff --git a/patches/series b/patches/series index 1900c4f..fcd41d2 100644 --- a/patches/series +++ b/patches/series @@ -23,3 +23,4 @@ s390x.diff update-libreoffice.1.diff wordml2ooo_draw.xsl-add-missing-include.diff add-debian-multiarch-support.diff +jdbc-driver-threading.diff -- LibreOffice packaging repository -- To UNSUBSCRIBE, email to debian-openoffice-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1rmmlz-0003p2...@vasks.debian.org