[M] Change in libosmocore[master]: Revert "logging: add log level cache"
Hoernchen has created a revert of this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email ) Change subject: Revert "logging: add log level cache" .. -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ife4c49d1bb933e983ac68c57970c9c49b40e08be Gerrit-Change-Number: 35524 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: arehbein Gerrit-CC: pespin Gerrit-MessageType: revert
[M] Change in libosmocore[master]: Revert "logging: add log level cache"
Hoernchen has submitted this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email ) Change subject: Revert "logging: add log level cache" .. Revert "logging: add log level cache" This reverts commit 7dc6d4a629a37bb081d62f6ce61f4e5ee0237247. Reason for revert: other tests are failing Change-Id: Ife4c49d1bb933e983ac68c57970c9c49b40e08be --- M include/osmocom/core/logging.h M src/core/libosmocore.map M src/core/logging.c M src/vty/logging_vty.c M tests/ctrl/ctrl_test.c 5 files changed, 15 insertions(+), 123 deletions(-) Approvals: Hoernchen: Verified Jenkins Builder: Verified laforge: Looks good to me, approved diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index e4859cd..e8433a1 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -409,7 +409,7 @@ /* filter on the targets */ void log_set_all_filter(struct log_target *target, int); -void log_cache_update(int mapped_subsys, uint8_t enabled, uint8_t level); + void log_set_use_color(struct log_target *target, int); void log_set_print_extended_timestamp(struct log_target *target, int); void log_set_print_timestamp(struct log_target *target, int); diff --git a/src/core/libosmocore.map b/src/core/libosmocore.map index 06a3864..b66e37d 100644 --- a/src/core/libosmocore.map +++ b/src/core/libosmocore.map @@ -58,7 +58,6 @@ log_add_target; log_category_name; log_check_level; -log_cache_update; log_del_target; log_enable_multithread; log_fini; diff --git a/src/core/logging.c b/src/core/logging.c index 906d664..6941f9b 100644 --- a/src/core/logging.c +++ b/src/core/logging.c @@ -93,68 +93,6 @@ static __thread long int logging_tid; #if (!EMBEDDED) -/*! One global copy that contains the union of log levels for all targets -* for all categories, used for quick lock free checks of log targets. */ -static volatile uint8_t *log_level_lookup_cache; - -/*! Updates cache for all targets for all categies, caller must hold osmo_log_tgt_mutex. */ -static void log_cache_update_all(void) -{ - struct log_target *tgt; - uint8_t tmp_en[osmo_log_info->num_cat]; - uint8_t tmp_level[osmo_log_info->num_cat]; - memset(tmp_en, 0, osmo_log_info->num_cat); - memset(tmp_level, UINT8_MAX, osmo_log_info->num_cat); - - /* values can also decrease.. */ - llist_for_each_entry(tgt, _log_target_list, entry) { - for (int i = 0; i < osmo_log_info->num_cat; i++) { - struct log_category *cat = >categories[i]; - tmp_en[i] = OSMO_MAX(tmp_en[i], cat->enabled); - tmp_level[i] = OSMO_MIN(tmp_level[i], cat->loglevel); - tmp_level[i] = tgt->loglevel ? OSMO_MIN(tmp_level[i], tgt->loglevel) : tmp_level[i]; - } - } - - for (int i = 0; i < osmo_log_info->num_cat; i++) - log_level_lookup_cache[i] = tmp_en[i] ? tmp_level[i] : UINT8_MAX; -} - -/*! Updates single cache entry, caller must hold osmo_log_tgt_mutex. - * - * \param[in] mapped_subsys plain category index (after mapping) - * \param[in] enabled log category enabled? - * \param[in] level log level - */ -void log_cache_update(int mapped_subsys, uint8_t enabled, uint8_t level) -{ - struct log_target *tgt; - struct log_category tmp = { UINT8_MAX, 0 }; - - /* values can also decrease.. */ - llist_for_each_entry(tgt, _log_target_list, entry) { - struct log_category *cat = >categories[mapped_subsys]; - tmp.enabled = OSMO_MAX(tmp.enabled, cat->enabled); - tmp.loglevel = OSMO_MIN(tmp.loglevel, cat->loglevel); - tmp.loglevel = tgt->loglevel ? OSMO_MIN(tmp.loglevel, tgt->loglevel) : tmp.loglevel; - } - tmp.enabled = OSMO_MAX(tmp.enabled, enabled); - tmp.loglevel = OSMO_MIN(tmp.loglevel, level); - - log_level_lookup_cache[mapped_subsys] = tmp.enabled ? tmp.loglevel : UINT8_MAX; -} - -/*! Queries log level cache. - * - * \param[in] mapped_subsys plain category index (after mapping) - * \param[in] level log level - * \returns true if logging should happen for at least one log target -*/ -static bool log_cache_check(int mapped_subsys, int level) -{ - return (level < log_level_lookup_cache[mapped_subsys]) ? false : true; -} - /*! This mutex must be held while using osmo_log_target_list or any of its log_targets in a multithread program. Prevents race conditions between threads like producing unordered timestamps or VTY deleting a target while another @@ -488,10 +426,6 @@ } } while ((category_token = strtok(NULL, ":"))); -#if !defined(EMBEDDED) - log_cache_update_all(); -#endif - free(mask); } @@ -746,11 +680,6 @@ subsys = map_subsys(subsys); -#if !defined(EMBEDDED) - if (!log_cache_check(subsys, level)) - return; -#endif -
[M] Change in libosmocore[master]: Revert "logging: add log level cache"
Attention is currently required from: fixeria. Hoernchen has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email ) Change subject: Revert "logging: add log level cache" .. Patch Set 1: Verified+1 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ife4c49d1bb933e983ac68c57970c9c49b40e08be Gerrit-Change-Number: 35524 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: arehbein Gerrit-CC: pespin Gerrit-Attention: fixeria Gerrit-Comment-Date: Tue, 09 Jan 2024 16:39:11 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
[M] Change in libosmocore[master]: Revert "logging: add log level cache"
Attention is currently required from: Hoernchen, fixeria. laforge has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email ) Change subject: Revert "logging: add log level cache" .. Patch Set 1: Code-Review+2 -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ife4c49d1bb933e983ac68c57970c9c49b40e08be Gerrit-Change-Number: 35524 Gerrit-PatchSet: 1 Gerrit-Owner: Hoernchen Gerrit-Reviewer: Jenkins Builder Gerrit-Reviewer: fixeria Gerrit-Reviewer: laforge Gerrit-CC: arehbein Gerrit-CC: pespin Gerrit-Attention: Hoernchen Gerrit-Attention: fixeria Gerrit-Comment-Date: Tue, 09 Jan 2024 16:38:25 + Gerrit-HasComments: No Gerrit-Has-Labels: Yes Gerrit-MessageType: comment
[M] Change in libosmocore[master]: Revert "logging: add log level cache"
Attention is currently required from: fixeria, laforge. Hello Jenkins Builder, laforge, fixeria, I'd like you to do a code review. Please visit https://gerrit.osmocom.org/c/libosmocore/+/35524?usp=email to review the following change. Change subject: Revert "logging: add log level cache" .. Revert "logging: add log level cache" This reverts commit 7dc6d4a629a37bb081d62f6ce61f4e5ee0237247. Reason for revert: other tests are failing Change-Id: Ife4c49d1bb933e983ac68c57970c9c49b40e08be --- M include/osmocom/core/logging.h M src/core/libosmocore.map M src/core/logging.c M src/vty/logging_vty.c M tests/ctrl/ctrl_test.c 5 files changed, 15 insertions(+), 123 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/24/35524/1 diff --git a/include/osmocom/core/logging.h b/include/osmocom/core/logging.h index e4859cd..e8433a1 100644 --- a/include/osmocom/core/logging.h +++ b/include/osmocom/core/logging.h @@ -409,7 +409,7 @@ /* filter on the targets */ void log_set_all_filter(struct log_target *target, int); -void log_cache_update(int mapped_subsys, uint8_t enabled, uint8_t level); + void log_set_use_color(struct log_target *target, int); void log_set_print_extended_timestamp(struct log_target *target, int); void log_set_print_timestamp(struct log_target *target, int); diff --git a/src/core/libosmocore.map b/src/core/libosmocore.map index 06a3864..b66e37d 100644 --- a/src/core/libosmocore.map +++ b/src/core/libosmocore.map @@ -58,7 +58,6 @@ log_add_target; log_category_name; log_check_level; -log_cache_update; log_del_target; log_enable_multithread; log_fini; diff --git a/src/core/logging.c b/src/core/logging.c index 906d664..6941f9b 100644 --- a/src/core/logging.c +++ b/src/core/logging.c @@ -93,68 +93,6 @@ static __thread long int logging_tid; #if (!EMBEDDED) -/*! One global copy that contains the union of log levels for all targets -* for all categories, used for quick lock free checks of log targets. */ -static volatile uint8_t *log_level_lookup_cache; - -/*! Updates cache for all targets for all categies, caller must hold osmo_log_tgt_mutex. */ -static void log_cache_update_all(void) -{ - struct log_target *tgt; - uint8_t tmp_en[osmo_log_info->num_cat]; - uint8_t tmp_level[osmo_log_info->num_cat]; - memset(tmp_en, 0, osmo_log_info->num_cat); - memset(tmp_level, UINT8_MAX, osmo_log_info->num_cat); - - /* values can also decrease.. */ - llist_for_each_entry(tgt, _log_target_list, entry) { - for (int i = 0; i < osmo_log_info->num_cat; i++) { - struct log_category *cat = >categories[i]; - tmp_en[i] = OSMO_MAX(tmp_en[i], cat->enabled); - tmp_level[i] = OSMO_MIN(tmp_level[i], cat->loglevel); - tmp_level[i] = tgt->loglevel ? OSMO_MIN(tmp_level[i], tgt->loglevel) : tmp_level[i]; - } - } - - for (int i = 0; i < osmo_log_info->num_cat; i++) - log_level_lookup_cache[i] = tmp_en[i] ? tmp_level[i] : UINT8_MAX; -} - -/*! Updates single cache entry, caller must hold osmo_log_tgt_mutex. - * - * \param[in] mapped_subsys plain category index (after mapping) - * \param[in] enabled log category enabled? - * \param[in] level log level - */ -void log_cache_update(int mapped_subsys, uint8_t enabled, uint8_t level) -{ - struct log_target *tgt; - struct log_category tmp = { UINT8_MAX, 0 }; - - /* values can also decrease.. */ - llist_for_each_entry(tgt, _log_target_list, entry) { - struct log_category *cat = >categories[mapped_subsys]; - tmp.enabled = OSMO_MAX(tmp.enabled, cat->enabled); - tmp.loglevel = OSMO_MIN(tmp.loglevel, cat->loglevel); - tmp.loglevel = tgt->loglevel ? OSMO_MIN(tmp.loglevel, tgt->loglevel) : tmp.loglevel; - } - tmp.enabled = OSMO_MAX(tmp.enabled, enabled); - tmp.loglevel = OSMO_MIN(tmp.loglevel, level); - - log_level_lookup_cache[mapped_subsys] = tmp.enabled ? tmp.loglevel : UINT8_MAX; -} - -/*! Queries log level cache. - * - * \param[in] mapped_subsys plain category index (after mapping) - * \param[in] level log level - * \returns true if logging should happen for at least one log target -*/ -static bool log_cache_check(int mapped_subsys, int level) -{ - return (level < log_level_lookup_cache[mapped_subsys]) ? false : true; -} - /*! This mutex must be held while using osmo_log_target_list or any of its log_targets in a multithread program. Prevents race conditions between threads like producing unordered timestamps or VTY deleting a target while another @@ -488,10 +426,6 @@ } } while ((category_token = strtok(NULL, ":"))); -#if !defined(EMBEDDED) - log_cache_update_all(); -#endif - free(mask); } @@ -746,11 +680,6 @@ subsys =