From 65f0ca65f1d118a6f1e5b22d283ed410307b329a Mon Sep 17 00:00:00 2001 From: Zdenek Kabelac Date: Tue, 13 Apr 2010 19:54:16 +0000 Subject: [PATCH] Use C locales and use_mlockall for clvmd. Use same steps for clvmd as for dmeventd - using C locales to avoid reading large mmaps and use mlockall() for threaded version. --- WHATS_NEW | 1 + daemons/clvmd/clvmd.c | 7 +++++++ daemons/clvmd/lvm-functions.c | 5 ++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/WHATS_NEW b/WHATS_NEW index d1c7a92ec..b4c4f46f1 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.63 - ================================ + Use C locales and use_mlockall for clvmd. Refactor code related to vg->pvs list and add pv->vg link. Mask LCK_HOLD flag in cluster VG locks for compatibility reasons. Add activation/polling_interval to lvm.conf as --interval default. diff --git a/daemons/clvmd/clvmd.c b/daemons/clvmd/clvmd.c index d0ea1422d..b7ba20098 100644 --- a/daemons/clvmd/clvmd.c +++ b/daemons/clvmd/clvmd.c @@ -360,6 +360,13 @@ int main(int argc, char *argv[]) return debug_clvmd(debug, clusterwide_opt)==1?0:1; } + /* + * Switch to C locale to avoid reading large locale-archive file + * used by some glibc (on some distributions it takes over 100MB). + * Daemon currently needs to use mlockall(). + */ + setenv("LANG", "C", 1); + /* Fork into the background (unless requested not to) */ if (debug != DEBUG_STDERR) { be_daemon(start_timeout); diff --git a/daemons/clvmd/lvm-functions.c b/daemons/clvmd/lvm-functions.c index 376605177..aaafae08a 100644 --- a/daemons/clvmd/lvm-functions.c +++ b/daemons/clvmd/lvm-functions.c @@ -878,13 +878,16 @@ int init_lvm(int using_gulm) /* Trap log messages so we can pass them back to the user */ init_log_fn(lvm2_log_fn); + memlock_inc_daemon(cmd); return 1; } void destroy_lvm(void) { - if (cmd) + if (cmd) { + memlock_dec_daemon(cmd); destroy_toolcontext(cmd); + } cmd = NULL; } -- 2.43.5