Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package yast2-installation for 
openSUSE:Factory checked in at 2021-05-12 19:31:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/yast2-installation (Old)
 and      /work/SRC/openSUSE:Factory/.yast2-installation.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "yast2-installation"

Wed May 12 19:31:31 2021 rev:469 rq:891911 version:4.4.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/yast2-installation/yast2-installation.changes    
2021-04-29 22:44:47.932192764 +0200
+++ 
/work/SRC/openSUSE:Factory/.yast2-installation.new.2988/yast2-installation.changes
  2021-05-12 19:31:48.775138094 +0200
@@ -1,0 +2,9 @@
+Thu Apr 29 15:59:52 UTC 2021 - Martin Vidner <mvid...@suse.com>
+
+- Allow memory profiling of the main installer process, via
+  boot parameters: (bsc#1182649)
+  - MASSIF=1 enables Valgrind/Massif (C/C++ level)
+  - MEMORY_PROFILER=1 enables Ruby level
+- 4.4.6
+
+-------------------------------------------------------------------

Old:
----
  yast2-installation-4.4.5.tar.bz2

New:
----
  yast2-installation-4.4.6.tar.bz2

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

Other differences:
------------------
++++++ yast2-installation.spec ++++++
--- /var/tmp/diff_new_pack.q63KbF/_old  2021-05-12 19:31:49.495135218 +0200
+++ /var/tmp/diff_new_pack.q63KbF/_new  2021-05-12 19:31:49.499135202 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        4.4.5
+Version:        4.4.6
 Release:        0
 Summary:        YaST2 - Installation Parts
 License:        GPL-2.0-only

++++++ yast2-installation-4.4.5.tar.bz2 -> yast2-installation-4.4.6.tar.bz2 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-4.4.5/bin/memsample-csv-plot 
new/yast2-installation-4.4.6/bin/memsample-csv-plot
--- old/yast2-installation-4.4.5/bin/memsample-csv-plot 2021-04-27 
15:09:41.000000000 +0200
+++ new/yast2-installation-4.4.6/bin/memsample-csv-plot 2021-05-09 
21:52:22.000000000 +0200
@@ -10,7 +10,7 @@
 set timefmt "%Y-%m-%dT%H:%M:%S+00:00"
 set xdata time
 set xtics rotate
-set format x "%H:%M"
+set format x "%H:%M:%S"
 set terminal png size 800, 600
 set xlabel "wall clock (UTC)"
 set ylabel "used [MiB]"
@@ -22,10 +22,10 @@
 # 4 mem_total_k, 4 mem_used_k, 6 mem_free_k,
 # 7 swap_total_k, 8 swap_used_k, 9 swap_free_k,
 # 10 rss, 11 rss_all, 12 datetime
-plot "${CSV}" using 12:(\$10/1024) title "y2start RSS" with lines,\
-           "" using 12:(\$11/1024) title "y2start+children RSS" with lines,\
-           "" using 12:(\$2/1024)  title "disk" with lines,\
-           "" using 12:(\$5/1024)  title "mem" with lines,\
-           "" using 12:((\$2+\$5)/1024) title "mem+disk" with lines,\
-           "" using 12:(\$8/1024)  title "swap" with lines
+plot "${CSV}" using 12:(\$10/1024)     title "y2start RSS"          with 
lines,\
+           "" using 12:(\$11/1024)     title "y2start+children RSS" with 
lines,\
+           "" using 12:(\$2/1024)      title "disk"                 with 
lines,\
+           "" using 12:(\$5/1024)      title "mem"                  with 
lines,\
+           "" using 12:((\$2+\$5)/1024) title "mem+disk"            with 
lines,\
+           "" using 12:(\$8/1024)      title "swap"                 with lines
 EOS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.5/doc/memory-profile-valgrind-massif.md 
new/yast2-installation-4.4.6/doc/memory-profile-valgrind-massif.md
--- old/yast2-installation-4.4.5/doc/memory-profile-valgrind-massif.md  
1970-01-01 01:00:00.000000000 +0100
+++ new/yast2-installation-4.4.6/doc/memory-profile-valgrind-massif.md  
2021-05-09 21:52:22.000000000 +0200
@@ -0,0 +1,50 @@
+## Massif Basics
+
+Valgrind is an instrumentation framework that runs a program by simulating
+every instruction.  It has several tools. Memcheck is the original one, used
+for detecting memory errors. Massif is a memory profiler.
+
+(The output it produces, example: 
https://github.com/yast/yast-installation/wiki/Massif-Sample-Output )
+
+The basic invocation of Massif is simple,
+`valgrind --tool=massif my_program its_arguments`, so for YaST it is
+
+```console
+# valgrind --tool=massif /usr/lib/YaST2/bin/y2start sw_single qt
+```
+
+Or, if we don't want to dig in the startup scripts, we use a bigger gun:
+
+```console
+# valgrind --tool=massif --trace-children=yes yast2 sw_single
+```
+
+That writes out massif.out.99999 where 99999 is process ID.
+To make them somewhat more readable, use the included tool `ms_print`
+which adds an ASCII graph and computes percentages:
+
+```
+ms_print massif.out.19015 >  massif.out.19015.txt
+```
+
+### Debuginfo
+
+The backtraces will contain some names, at the boundaries of shared libraries
+But to see names inside libraries Massif needs debuginfo files.
+
+## Massif at Installation Time
+
+tl;dr: Boot with `extend=gdb MASSIF=1`.
+
+1. Install Massif. It is part of the [**gdb** extension][gdb-ext], so use
+   `extend=gdb` at the boot prompt, or run `extend gdb` in an inst-sys shell.
+
+2. Install Debuginfo. For Tumbleweed an automatic downloader is in place
+   from <https://debuginfod.opensuse.org/>.
+
+3. Wrap Massif around the main installer process.
+   The [startup/YaST2.call script][PR935] will do it if the environment
+   variable `MASSIF=1`, putting the logs where save_y2logs expects them.
+
+[gdb-ext]: 
https://github.com/openSUSE/installation-images/blob/master/data/root/gdb.file_list
+[PR935]: https://github.com/yast/yast-installation/pull/935
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.5/package/yast2-installation.changes 
new/yast2-installation-4.4.6/package/yast2-installation.changes
--- old/yast2-installation-4.4.5/package/yast2-installation.changes     
2021-04-27 15:09:41.000000000 +0200
+++ new/yast2-installation-4.4.6/package/yast2-installation.changes     
2021-05-09 21:52:22.000000000 +0200
@@ -1,4 +1,13 @@
 -------------------------------------------------------------------
+Thu Apr 29 15:59:52 UTC 2021 - Martin Vidner <mvid...@suse.com>
+
+- Allow memory profiling of the main installer process, via
+  boot parameters: (bsc#1182649)
+  - MASSIF=1 enables Valgrind/Massif (C/C++ level)
+  - MEMORY_PROFILER=1 enables Ruby level
+- 4.4.6
+
+-------------------------------------------------------------------
 Tue Apr 27 09:23:17 UTC 2021 - Knut Anderssen <kanders...@suse.com>
 
 - Remove Yast::LanItems dependency (bsc#1185338)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/yast2-installation-4.4.5/package/yast2-installation.spec 
new/yast2-installation-4.4.6/package/yast2-installation.spec
--- old/yast2-installation-4.4.5/package/yast2-installation.spec        
2021-04-27 15:09:41.000000000 +0200
+++ new/yast2-installation-4.4.6/package/yast2-installation.spec        
2021-05-09 21:52:22.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           yast2-installation
-Version:        4.4.5
+Version:        4.4.6
 Release:        0
 Summary:        YaST2 - Installation Parts
 License:        GPL-2.0-only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/yast2-installation-4.4.5/startup/YaST2.call 
new/yast2-installation-4.4.6/startup/YaST2.call
--- old/yast2-installation-4.4.5/startup/YaST2.call     2021-04-27 
15:09:41.000000000 +0200
+++ new/yast2-installation-4.4.6/startup/YaST2.call     2021-05-09 
21:52:22.000000000 +0200
@@ -352,24 +352,41 @@
        log "\tUI_ARGS:      $Y2_UI_ARGS"
        log "\tQT_IM_MODULE: $QT_IM_MODULE"
 
+        Y2START=/usr/lib/YaST2/bin/y2start
+        Y2START_ARGS="$Y2_MODULE_NAME $Y2_MODE_FLAGS $Y2_MODULE_ARGS $Y2_MODE 
$Y2_UI_ARGS"
+
+        # https://rubygems.org/gems/memory_profiler
+        if [ "$MEMORY_PROFILER" = "1" ]; then
+            Y2START_ARGS="\
+                --color \
+                --out=/var/log/YaST2/memprof.txt \
+                $Y2START \
+                -- \
+                $Y2START_ARGS"
+            Y2START="ruby-memory-profiler"
+        fi
+
+        # https://www.valgrind.org/docs/manual/ms-manual.html
+        if [ "$MASSIF" = "1" ]; then
+            Y2START_ARGS="\
+                --tool=massif \
+                --massif-out-file=/var/log/YaST2/massif-%p.out \
+                $Y2START \
+                $Y2START_ARGS"
+            Y2START="valgrind"
+        fi
+
        if [ "$Y2GDB" != "1" ]; then
-           $OPT_FBITERM y2start                \
-               "$Y2_MODULE_NAME"       \
-               $Y2_MODE_FLAGS          \
-               $Y2_MODULE_ARGS         \
-               $Y2_MODE                \
-               $Y2_UI_ARGS
+           $OPT_FBITERM \
+                "$Y2START"             \
+               $Y2START_ARGS
            Y2_EXIT_CODE=$?
        else
            GDBCMDS=/var/lib/YaST2/gdb-cmds
            echo tty /dev/tty10 > $GDBCMDS
-           echo set args "$Y2_MODULE_NAME"     \
-                       $Y2_MODE_FLAGS          \
-                       $Y2_MODULE_ARGS         \
-                       $Y2_MODE                \
-                       $Y2_UI_ARGS >> $GDBCMDS
            echo set pagination off >> $GDBCMDS
-           /usr/bin/gdb -x $GDBCMDS /usr/lib/YaST2/bin/y2start | \
+           echo set args $Y2START_ARGS >> $GDBCMDS
+           /usr/bin/gdb -x $GDBCMDS "$Y2START" | \
                tee /var/log/YaST2/gdb-log
            Y2_EXIT_CODE=$?
        fi

Reply via email to