lok: add SAL_DISABLE_FSYNC environment to disable fsync.
For state-less containers there is no benefit in fsync'ing,
file data is safe when it is up-loaded back to storage - but
profiling shows latency from stray fsyncs.
Change-Id: I9f03d5866dec05e5507deb56b0dca93b6876225e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167490
Tested-by: Michael Meeks <michael.meeks@collabora.com>
Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com>
(cherry picked from commit 90bd45d7a9
)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/172947
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins
This commit is contained in:
parent
e4344d13de
commit
c95b118982
3 changed files with 24 additions and 1 deletions
1
external/nss/UnpackedTarball_nss.mk
vendored
1
external/nss/UnpackedTarball_nss.mk
vendored
|
@ -27,6 +27,7 @@ $(eval $(call gb_UnpackedTarball_add_patches,nss,\
|
|||
external/nss/nss-restore-manual-pre-dependencies.patch.1 \
|
||||
external/nss/Wincompatible-function-pointer-types.patch.0 \
|
||||
$(if $(filter LINUX,$(OS)), \
|
||||
external/nss/nss.disablefsync.patch \
|
||||
external/nss/nss.getrandom.patch) \
|
||||
$(if $(filter iOS,$(OS)), \
|
||||
external/nss/nss-ios.patch) \
|
||||
|
|
18
external/nss/nss.disablefsync.patch
vendored
Normal file
18
external/nss/nss.disablefsync.patch
vendored
Normal file
|
@ -0,0 +1,18 @@
|
|||
--- a/nss/nss/lib/sqlite/sqlite3.c
|
||||
+++ b/nss/nss/lib/sqlite/sqlite3.c
|
||||
@@ -36136,6 +36136,15 @@
|
||||
static int full_fsync(int fd, int fullSync, int dataOnly){
|
||||
int rc;
|
||||
|
||||
+ static int disabledKnown = 0, disabled = 0;
|
||||
+ if (!disabledKnown)
|
||||
+ {
|
||||
+ disabled = getenv("SAL_DISABLE_FSYNC") != NULL;
|
||||
+ disabledKnown = 1;
|
||||
+ }
|
||||
+ if (disabled)
|
||||
+ return 0;
|
||||
+
|
||||
/* The following "ifdef/elif/else/" block has the same structure as
|
||||
** the one below. It is replicated here solely to avoid cluttering
|
||||
** up the real code with the UNUSED_PARAMETER() macros.
|
|
@ -1236,7 +1236,11 @@ oslFileError SAL_CALL osl_syncFile(oslFileHandle Handle)
|
|||
if (result != osl_File_E_None)
|
||||
return result;
|
||||
|
||||
if (fsync(pImpl->m_fd) == -1)
|
||||
static bool disabled = getenv("SAL_DISABLE_FSYNC") != nullptr;
|
||||
|
||||
if (disabled)
|
||||
SAL_INFO("sal.file", "fsync(" << pImpl->m_fd << "): Disabled");
|
||||
else if (fsync(pImpl->m_fd) == -1)
|
||||
{
|
||||
int e = errno;
|
||||
SAL_INFO("sal.file", "fsync(" << pImpl->m_fd << "): " << UnixErrnoString(e));
|
||||
|
|
Loading…
Reference in a new issue