Subject: Re: bug#55707: syslogd logging kernel messages slowly?

From: Ludovic Courtès <[email-masked]>
Date: Sat, 04 Jun 2022 19:35:42 +0200

Ludovic Courtès <[email-masked]> skribis:

>   1. Use ‘fdatasync’ rather than ‘fsync’;

Turns out ‘fdatasync’ is about as expensive:

--8<---------------cut here---------------start------------->8---
   1234:301   19:22:00 fdatasync(6)             = 0 <0.398749>
   1236:301   19:22:01 fdatasync(5)             = 0 <0.198520>
   1243:301   19:22:01 fdatasync(6)             = 0 <0.231935>
   1245:301   19:22:01 fdatasync(5)             = 0 <0.183503>
   1252:301   19:22:01 fdatasync(6)             = 0 <0.230854>
   1254:301   19:22:02 fdatasync(5)             = 0 <0.248839>
   1261:301   19:22:02 fdatasync(6)             = 0 <0.181513>
   1263:301   19:22:02 fdatasync(5)             = 0 <0.141267>
   1270:301   19:22:02 fdatasync(6)             = 0 <0.131548>
   1272:301   19:22:02 fdatasync(5)             = 0 <0.124369>
   1279:301   19:22:02 fdatasync(6)             = 0 <0.121414>
--8<---------------cut here---------------end--------------->8---

Tested with:

--8<---------------cut here---------------start------------->8---
(define inetutils/fdatasync
  (package/inherit inetutils
    (version (string-append (package-version inetutils) ".fdatasync"))
    (source (origin
              (inherit (package-source inetutils))
              (modules '((guix build utils)))
              (snippet
               '(substitute* "src/syslogd.c"
                  (("fsync") "fdatasync")))))))
--8<---------------cut here---------------end--------------->8---

It still makes more sense than ‘fsync’ though.

Ludo’.