diff options
author | Inhong Han <inhong1.han@samsung.com> | 2023-10-31 19:48:52 +0900 |
---|---|---|
committer | Inhong Han <inhong1.han@samsung.com> | 2023-11-10 10:04:54 +0900 |
commit | ae914e516b5e5f3630e894d6f77a9e024f0885ef (patch) | |
tree | 67635f69595557e5ca2344036695c4e6476cf3ec | |
parent | 0eb76781cbbb1dd170183aba4e83c25bdad697a2 (diff) | |
download | isf-ae914e516b5e5f3630e894d6f77a9e024f0885ef.tar.gz isf-ae914e516b5e5f3630e894d6f77a9e024f0885ef.tar.bz2 isf-ae914e516b5e5f3630e894d6f77a9e024f0885ef.zip |
Apply cpu boosting on booting time
Change-Id: I518ee2d880ec511577980e1bb536d417f1cca256
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | ism/extras/efl_panel/Makefile.am | 2 | ||||
-rw-r--r-- | ism/extras/efl_panel/isf_panel_efl.cpp | 25 | ||||
-rw-r--r-- | packaging/isf.spec | 1 |
4 files changed, 31 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac index adfc9e4c..74440383 100644 --- a/configure.ac +++ b/configure.ac @@ -355,6 +355,9 @@ PKG_CHECK_MODULES(SYSTEMD, [libsystemd], # Check gmock PKG_CHECK_MODULES(GMOCK, [gmock]) +# Check system resource library +PKG_CHECK_MODULES(SYSTEM_RESOURCE, [capi-system-resource]) + if test "$ISF_HAS_VCONF" = "yes"; then AC_DEFINE(HAVE_VCONF,1,[Have VConf functions.]) fi diff --git a/ism/extras/efl_panel/Makefile.am b/ism/extras/efl_panel/Makefile.am index 50c9395b..f103004f 100644 --- a/ism/extras/efl_panel/Makefile.am +++ b/ism/extras/efl_panel/Makefile.am @@ -54,6 +54,7 @@ isf_panel_efl_CXXFLAGS = @ECORE_WL_CFLAGS@ \ @PACKAGE_MANAGER_CFLAGS@ \ @AUL_CFLAGS@ \ @SYSTEM_INFO_CFLAGS@ \ + @SYSTEM_RESOURCE_CFLAGS@ \ -fPIE isf_panel_efl_LDFLAGS = @LTLIBINTL@ -rpath $(libdir) \ @@ -72,6 +73,7 @@ isf_panel_efl_LDFLAGS = @LTLIBINTL@ -rpath $(libdir) \ @PACKAGE_MANAGER_LIBS@ \ @AUL_LIBS@ \ @SYSTEM_INFO_LIBS@ \ + @SYSTEM_RESOURCE_LIBS@ \ -pie isf_panel_efl_LDADD = $(top_builddir)/ism/src/libscim@SCIM_EPOCH@.la \ diff --git a/ism/extras/efl_panel/isf_panel_efl.cpp b/ism/extras/efl_panel/isf_panel_efl.cpp index e3dbc833..7471e5d0 100644 --- a/ism/extras/efl_panel/isf_panel_efl.cpp +++ b/ism/extras/efl_panel/isf_panel_efl.cpp @@ -44,6 +44,7 @@ #include <glib.h> #include <tzplatform_config.h> #include <system_info.h> +#include <cpu-boosting.h> #include "scim_private.h" #include "scim.h" @@ -272,6 +273,8 @@ static void show_ime_selector_notification (void); static void set_language_and_locale (const char *lang_str); static bool app_control_launch (const char *app_id); static void terminate_active_ise (const String uuid); +static void set_cpu_boosting (void); +static void clear_cpu_boosting (void); ///////////////////////////////////////////////////////////////////////////// // Declaration of internal variables. @@ -6328,6 +6331,24 @@ static void terminate_active_ise (const String uuid) } } +static void set_cpu_boosting () +{ + resource_pid_t resource_st; + resource_st.pid = getpid(); + int ret = resource_set_cpu_boosting(resource_st, CPU_BOOSTING_LEVEL_STRONG, CPU_BOOSTING_RESET_ON_FORK, -1); + if (ret != 0) + LOGE("Failed to set cpu boosting"); +} + +static void clear_cpu_boosting () +{ + resource_pid_t resource_st; + resource_st.pid = getpid(); + int ret = resource_clear_cpu_boosting(resource_st); + if (ret != 0) + LOGE("Failed to clear cpu boosting"); +} + static void slot_run_helper (const String &uuid, const String &config, const String &display) { ISF_SAVE_LOG ("time:%ld pid:%d %s %s uuid(%s)", @@ -7527,6 +7548,8 @@ int main (int argc, char *argv []) ConfigBase::set (_config); check_time ("create config instance"); + set_cpu_boosting(); + try { if (!initialize_panel_agent (_config, display_name, should_resident)) { check_time ("Failed to initialize Panel Agent!"); @@ -7695,6 +7718,8 @@ int main (int argc, char *argv []) if (!isf_cynara_initialize()) LOGW ("Failed to initialize cynara"); + clear_cpu_boosting(); + #if ISF_BUILD_CANDIDATE_UI elm_run (); #else diff --git a/packaging/isf.spec b/packaging/isf.spec index 084f9125..c8047dc6 100644 --- a/packaging/isf.spec +++ b/packaging/isf.spec @@ -41,6 +41,7 @@ BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(notification) BuildRequires: pkgconfig(gmock) BuildRequires: pkgconfig(gio-2.0) +BuildRequires: pkgconfig(capi-system-resource) Requires(postun): /sbin/ldconfig Requires: org.tizen.isf-kbd-mode-changer |