Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package util-linux for openSUSE:Factory 
checked in at 2023-05-13 17:16:52
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/util-linux (Old)
 and      /work/SRC/openSUSE:Factory/.util-linux.new.1533 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "util-linux"

Sat May 13 17:16:52 2023 rev:270 rq:1085804 version:2.38.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/util-linux/util-linux.changes    2023-04-08 
17:38:17.529780146 +0200
+++ /work/SRC/openSUSE:Factory/.util-linux.new.1533/util-linux.changes  
2023-05-13 17:16:55.458133603 +0200
@@ -1,0 +2,18 @@
+Tue May  9 19:46:41 UTC 2023 - Antonio Teixeira <antonio.teixe...@suse.com>
+
+- Suppress error messages for grep command where the input file 
+  might not exist (boo#1169835)
+
+-------------------------------------------------------------------
+Tue May  9 16:31:55 UTC 2023 - Daniel Garcia <daniel.gar...@suse.com>
+
+- Call fdupes without -s to avoid broken symlinks, pointing to
+  different subpackage. boo#1209990
+
+-------------------------------------------------------------------
+Fri Apr 28 09:42:27 UTC 2023 - Daniel Garcia <daniel.gar...@suse.com>
+
+- Add upstream patch fix-lib-internal-cache-size.patch
+  bsc#1210164, gh#util-linux/util-linux@2fa4168c8bc9
+
+-------------------------------------------------------------------

New:
----
  fix-lib-internal-cache-size.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ util-linux.spec ++++++
--- /var/tmp/diff_new_pack.cMzwuO/_old  2023-05-13 17:16:56.510139656 +0200
+++ /var/tmp/diff_new_pack.cMzwuO/_new  2023-05-13 17:16:56.514139679 +0200
@@ -114,6 +114,8 @@
 Patch5:         util-linux-fix-tests-when-at-symbol-in-path.patch
 # 
https://github.com/util-linux/util-linux/commit/0c0fb46dcef6c63c74094486e499e376fdb33a04.diff
 Patch6:         util-linux-honor-noclear-when-reprint-issue.patch
+# Patch-FIX_UPSTREAM: fix-lib-internal-cache-size.patch bsc#1210164 -- 
gh#util-linux/util-linux@2fa4168c8bc9
+Patch7:         fix-lib-internal-cache-size.patch
 BuildRequires:  audit-devel
 BuildRequires:  bc
 BuildRequires:  binutils-devel
@@ -663,7 +665,7 @@
 
 # fdupes for all multibuild flavors
 # Link duplicate manpages or python bindings.
-%fdupes -s %{buildroot}%{_prefix}
+%fdupes %{buildroot}%{_prefix}
 
 ##############
 # Base check #
@@ -752,7 +754,7 @@
 # Perform one-time config replace.
 # Applies for: Update from SLE11, online update for SLE15 SP1, Leap15.1.
 # Not needed for /etc/default/runuser. It was first packaged after the change.
-if ! grep -q "^# /etc/default/su is an override" %{_sysconfdir}/default/su ; 
then
+if ! grep -qs "^# /etc/default/su is an override" %{_sysconfdir}/default/su ; 
then
        if test -f %{_sysconfdir}/default/su.rpmnew ; then
                if ! test -f %{_sysconfdir}/default/su.rpmorig ; then
                        cp -a %{_sysconfdir}/default/su 
%{_sysconfdir}/default/su.rpmorig

++++++ fix-lib-internal-cache-size.patch ++++++
>From 2fa4168c8bc9d5438bc1dfadda293c7c21b6fa59 Mon Sep 17 00:00:00 2001
From: Michael Trapp <michael.tr...@sap.com>
Date: Mon, 6 Mar 2023 10:40:20 +0000
Subject: [PATCH] libuuid: fix lib internal cache size

The lib internal cache improves throughput in high load
scenarios but for applications with a low request rate,
the cache size must be adapted to this situation.
Therefore the cache size should be changed to the current
requirements of the application during runtime.
---
 libuuid/src/gen_uuid.c | 30 ++++++++++++++++++++++--------
 1 file changed, 22 insertions(+), 8 deletions(-)

Index: util-linux-2.38.1/libuuid/src/gen_uuid.c
===================================================================
--- util-linux-2.38.1.orig/libuuid/src/gen_uuid.c
+++ util-linux-2.38.1/libuuid/src/gen_uuid.c
@@ -442,25 +442,35 @@ int __uuid_generate_time(uuid_t out, int
  */
 static int uuid_generate_time_generic(uuid_t out) {
 #ifdef HAVE_TLS
+       /* thread local cache for uuidd based requests */
+       const int                       cs_min = (1<<6);
+       const int                       cs_max = (1<<18);
+       const int                       cs_factor = 2;
        THREAD_LOCAL int                num = 0;
-       THREAD_LOCAL int                cache_size = 1;
+       THREAD_LOCAL int                cache_size = cs_min;
+       THREAD_LOCAL int                last_used = 0;
        THREAD_LOCAL struct uuid        uu;
        THREAD_LOCAL time_t             last_time = 0;
        time_t                          now;
 
-       if (num > 0) {
+       if (num > 0) { /* expire cache */
                now = time(NULL);
-               if (now > last_time+1)
+               if (now > last_time+1) {
+                       last_used = cache_size - num;
                        num = 0;
+               }
        }
-       if (num <= 0) {
+       if (num <= 0) { /* fill cache */
                /*
                 * num + OP_BULK provides a local cache in each application.
                 * Start with a small cache size to cover short running 
applications
-                * and increment the cache size over the runntime.
+                * and adjust the cache size over the runntime.
                 */
-               if (cache_size < 1000000)
-                       cache_size *= 10;
+               if ((last_used == cache_size) && (cache_size < cs_max))
+                       cache_size *= cs_factor;
+               else if ((last_used < (cache_size / cs_factor)) && (cache_size 
> cs_min))
+                       cache_size /= cs_factor;
+
                num = cache_size;
 
                if (get_uuid_via_daemon(UUIDD_OP_BULK_TIME_UUID,
@@ -470,9 +480,11 @@ static int uuid_generate_time_generic(uu
                        num--;
                        return 0;
                }
+               /* request to daemon failed, reset cache */
                num = 0;
+               cache_size = cs_min;
        }
-       if (num > 0) {
+       if (num > 0) { /* serve uuid from cache */
                uu.time_low++;
                if (uu.time_low == 0) {
                        uu.time_mid++;
@@ -481,6 +493,8 @@ static int uuid_generate_time_generic(uu
                }
                num--;
                uuid_pack(&uu, out);
+               if (num == 0)
+                       last_used = cache_size;
                return 0;
        }
 #else

Reply via email to