Change in libosmocore[master]: logging: Change stderr + file target to use non-blocking write

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

pespin gerrit-no-reply at lists.osmocom.org
Mon Sep 28 08:52:00 UTC 2020


pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/libosmocore/+/20296 )

Change subject: logging: Change stderr + file target to use non-blocking write
......................................................................


Patch Set 6:

(3 comments)

https://gerrit.osmocom.org/c/libosmocore/+/20296/4/src/logging.c 
File src/logging.c:

https://gerrit.osmocom.org/c/libosmocore/+/20296/4/src/logging.c@869 
PS4, Line 869: 	osmo_wqueue_enqueue_quiet(target->tgt_file.wqueue, msg);
> I have a follow-up patch that introduces a rate_counter for overruns. […]
rate_counter: ACK, fine.


https://gerrit.osmocom.org/c/libosmocore/+/20296/4/src/logging.c@926 
PS4, Line 926: 	if (rc != msgb_length(msg))
> short writes are possible, but rather unlikely. […]
Well that's maybe the issue here. We should rather try writing as much as possible until write returns a short write, or EAGAIN or whatever meaning the buffer is full. This optimizes time spent + delay upon logging stuff, frees memory beforehand, etc.
Otherwise you are removing 1 msgb per select loop while potentially adding several msgbs per loop.


https://gerrit.osmocom.org/c/libosmocore/+/20296/4/src/select.c 
File src/select.c:

https://gerrit.osmocom.org/c/libosmocore/+/20296/4/src/select.c@283 
PS4, Line 283: 	log_target_file_switch_to_wqueue(osmo_stderr_target);
> I would avoid adding more and more flags for use cases that we don't have yet. […]
There's a use case: debugging. When debugging some issue or crash, one wants to be sure logging is outputed synchronously. That's the point of using stderr vs stdout for instance (no bufering). You'll always get printed whatever happens before event X or a crash. By delaying the actual logging you are actually making issues look less reproducible and provide less information, so specially when reproducing an issue, one wants to disable this async logging.



-- 
To view, visit https://gerrit.osmocom.org/c/libosmocore/+/20296
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: libosmocore
Gerrit-Branch: master
Gerrit-Change-Id: Ia58fd78535c41b3da3aeb7733aadc785ace610da
Gerrit-Change-Number: 20296
Gerrit-PatchSet: 6
Gerrit-Owner: laforge <laforge at osmocom.org>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge at osmocom.org>
Gerrit-CC: pespin <pespin at sysmocom.de>
Gerrit-Comment-Date: Mon, 28 Sep 2020 08:52:00 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: pespin <pespin at sysmocom.de>
Comment-In-Reply-To: laforge <laforge at osmocom.org>
Gerrit-MessageType: comment
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200928/eba68c72/attachment.htm>


More information about the gerrit-log mailing list