diff options
author | Harald Welte <laforge@osmocom.org> | 2022-05-13 19:48:08 +0200 |
---|---|---|
committer | Harald Welte <laforge@osmocom.org> | 2022-05-15 13:04:56 +0200 |
commit | 467fc5728d638239b0257c0e9e60a0e516826e8c (patch) | |
tree | a161f39986980aa272d64c4e516298f1890ba811 /src/libmsc/db.c | |
parent | 2db1966e25bbecb4dfb275f88e03aacace7863d0 (diff) |
switch sqlite3 to single-threaded mode
Looking at 'perf top' of osmo-msc under load shows that there's a
significant amount of time spent in terms of locking (mutex,...)
which is useless as osmo-msc is a single-threaded application.
Unfortunately libdbi doesn't provide a mechanism to perform
sqlite3_config(), so we have to do it directly here, introducing an
explicit build-time dependency (and linkage) to libsqlite3.
Related: OS#5559
Change-Id: I5bbea90d28b6d73b64b9e5124ff59304b90a8a75
Diffstat (limited to 'src/libmsc/db.c')
-rw-r--r-- | src/libmsc/db.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/libmsc/db.c b/src/libmsc/db.c index a1683beef..d3d37c72d 100644 --- a/src/libmsc/db.c +++ b/src/libmsc/db.c @@ -28,6 +28,7 @@ #include <string.h> #include <errno.h> #include <time.h> +#include <sqlite3.h> #include <dbi/dbi.h> #include <osmocom/msc/gsm_data.h> @@ -637,6 +638,8 @@ static int db_configure(void) int db_init(const char *name) { + sqlite3_config(SQLITE_CONFIG_SINGLETHREAD); + dbi_initialize_r(NULL, &inst); LOGP(DDB, LOGL_NOTICE, "Init database connection to '%s' using %s\n", |