dcavalca / rpms / systemd

Forked from rpms/systemd 3 months ago
Clone
5808e7
From a0b52398692f3e4bda18520db9e2397f7b2c80dd Mon Sep 17 00:00:00 2001
5808e7
From: Benjamin Robin <dev@benjarobin.fr>
5808e7
Date: Sun, 3 May 2020 18:37:21 +0200
5808e7
Subject: [PATCH] journald: Increase stdout buffer size sooner, when almost
5808e7
 full
5808e7
5808e7
If the previous received buffer length is almost equal to the allocated
5808e7
buffer size, before this change the next read can only receive a couple
5808e7
of bytes (in the worst case only 1 byte), which is not efficient.
5808e7
5808e7
(cherry picked from commit 034e9719ac1ba88a36b05da38c7aa98761d42c77)
5808e7
5808e7
Related: #2029426
5808e7
---
5808e7
 src/journal/journald-stream.c | 4 ++--
5808e7
 1 file changed, 2 insertions(+), 2 deletions(-)
5808e7
5808e7
diff --git a/src/journal/journald-stream.c b/src/journal/journald-stream.c
5808e7
index 302a82d3d7..c8de984335 100644
5808e7
--- a/src/journal/journald-stream.c
5808e7
+++ b/src/journal/journald-stream.c
5808e7
@@ -507,8 +507,8 @@ static int stdout_stream_process(sd_event_source *es, int fd, uint32_t revents,
5808e7
                 goto terminate;
5808e7
         }
5808e7
 
5808e7
-        /* If the buffer is full already (discounting the extra NUL we need), add room for another 1K */
5808e7
-        if (s->length + 1 >= s->allocated) {
5808e7
+        /* If the buffer is almost full, add room for another 1K */
5808e7
+        if (s->length + 512 >= s->allocated) {
5808e7
                 if (!GREEDY_REALLOC(s->buffer, s->allocated, s->length + 1 + 1024)) {
5808e7
                         log_oom();
5808e7
                         goto terminate;