diff --git a/60-io-scheduler.rules b/60-io-scheduler.rules new file mode 100644 index 00000000..7c285aef --- /dev/null +++ b/60-io-scheduler.rules @@ -0,0 +1,24 @@ +# Set optimal IO schedulers for HDD and SSD + +ACTION!="add", GOTO="scheduler_end" +SUBSYSTEM!="block", GOTO="scheduler_end" + +# Do not change scheduler if `elevator` cmdline parameter is set +IMPORT{cmdline}="elevator" +ENV{elevator}=="?*", GOTO="scheduler_end" + +# Determine if BLK-MQ is enabled +TEST=="%S%p/mq", ENV{.IS_MQ}="1" + +# MQ: BFQ scheduler for HDD +ENV{.IS_MQ}=="1", ATTR{queue/rotational}!="0", ATTR{queue/scheduler}="bfq" +# MQ: deadline scheduler for SSD +ENV{.IS_MQ}=="1", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline" + +# Non-MQ: CFQ scheduler for HDD +ENV{.IS_MQ}!="1", ATTR{queue/rotational}!="0", ATTR{queue/scheduler}="cfq" +# Non-MQ: deadline scheduler for SSD +ENV{.IS_MQ}!="1", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline" + +LABEL="scheduler_end" + diff --git a/60-ssd-scheduler.rules b/60-ssd-scheduler.rules deleted file mode 100644 index 43aa8ea7..00000000 --- a/60-ssd-scheduler.rules +++ /dev/null @@ -1,11 +0,0 @@ -# do not edit this file, it will be overwritten on update - -ACTION!="add", GOTO="ssd_scheduler_end" -SUBSYSTEM!="block", GOTO="ssd_scheduler_end" - -IMPORT{cmdline}="elevator" -ENV{elevator}=="*?", GOTO="ssd_scheduler_end" - -KERNEL=="sd*[!0-9]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline" - -LABEL="ssd_scheduler_end" diff --git a/scripts-systemd-upgrade-from-pre-210.sh b/scripts-systemd-upgrade-from-pre-210.sh index 24738567..8a168915 100644 --- a/scripts-systemd-upgrade-from-pre-210.sh +++ b/scripts-systemd-upgrade-from-pre-210.sh @@ -22,12 +22,6 @@ if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then ln -s /usr/lib/systemd/system/runlevel${runlevel}.target /etc/systemd/system/default.target fi -# since v207 /etc/sysctl.conf is no longer parsed, however -# backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf -if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then - ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf -fi - # migrate any symlink which may refer to the old path for f in $(find /etc/systemd/system -type l -xtype l); do new_target="/usr$(readlink $f)" diff --git a/systemd-mini.changes b/systemd-mini.changes index 05c02977..82bd34cc 100644 --- a/systemd-mini.changes +++ b/systemd-mini.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Mon Apr 23 07:45:32 UTC 2018 - fbui@suse.com + +- Import commit d8196805089566ecd846b7c627ff2f3c42588c50 + + 621b247f3 device: skip deserialization of device units when udevd is not running + a7da5bdbc device: make sure to always retroactively start device dependencies (bsc#1088052) + 303624f6f systemd-udevd: limit children-max by available memory (#8668) (bsc#1086785 bsc#1066422) + 76acf3ae9 tmpfiles: fix directory removal with force symlink (#8619) + +------------------------------------------------------------------- +Fri Apr 20 08:27:41 UTC 2018 - fbui@suse.com + +- Ship 99-sysctl.conf instead of creating it during package installation/update (bsc#1088769) + + Previously this symlink was created in /etc/sysctl.d during %post + which made the symlink not owned and more importantly it was created + only if /etc/sysctl.conf is already installed which is not always + the case during the installation process it seems. + + So ship the symlink unconditionally and put it in /usr/lib/sysctl.d + instead since it's a distro default behavior that might be overriden + by sysadmin later. + +------------------------------------------------------------------- +Mon Apr 9 09:42:16 UTC 2018 - fbui@suse.com + +- Be consistent in 60-io-scheduler.rules + + And use "?*" when checking for the non empty string (instead of "*?"). + ------------------------------------------------------------------- Wed Apr 4 11:49:18 UTC 2018 - fbui@suse.com @@ -62,6 +93,18 @@ Wed Mar 28 11:58:10 UTC 2018 - fbui@suse.com - Split systemd-coredump sub-package off (bsc#1083849) +------------------------------------------------------------------- +Tue Mar 27 20:14:41 UTC 2018 - develop7@develop7.info + +- Enhance IO scheduler tweaking rules to support blk-mq as well + + * Set optimal blk-mq schedulers (bfq and mq-deadline for HDD and + SSD respectively) + * Explicitly set CFQ for rotational disks when no `elevator` + is specified + * Verbose comments explaining what is going on + * Rename the rules file since it is not ssd-only anymore + ------------------------------------------------------------------- Tue Mar 27 15:58:34 UTC 2018 - fbui@suse.com diff --git a/systemd-mini.spec b/systemd-mini.spec index c403fbd4..7c164b7b 100644 --- a/systemd-mini.spec +++ b/systemd-mini.spec @@ -26,7 +26,7 @@ ##### WARNING: please do not edit this auto generated spec file. Use the systemd.spec! ##### %define mini -mini %define min_kernel_version 4.5 -%define suse_version +suse.52.g14b3e00c3 +%define suse_version +suse.57.gd81968050 %bcond_with gnuefi %if 0%{?bootstrap} @@ -152,7 +152,7 @@ Source101: scripts-systemd-upgrade-from-pre-210.sh Source102: scripts-systemd-migrate-sysconfig-i18n.sh Source200: scripts-udev-convert-lib-udev-path.sh -Source1000: 60-ssd-scheduler.rules +Source1000: 60-io-scheduler.rules Source1001: 80-hotplug-cpu-mem.rules Source1002: 99-wakeup-from-idle.rules @@ -497,7 +497,7 @@ install -m0755 -D %{S:3} %{buildroot}/%{_sbindir}/systemd-sysv-convert install -m0755 -D %{S:12} %{buildroot}/%{_prefix}/lib/systemd/systemd-sysv-install # The rules that we shouldn't maintain -install -m0644 -D %{S:1000} %{buildroot}%{_udevrulesdir}/60-ssd-scheduler.rules +install -m0644 -D %{S:1000} %{buildroot}%{_udevrulesdir}/60-io-scheduler.rules install -m0644 -D %{S:1001} %{buildroot}%{_udevrulesdir}/80-hotplug-cpu-mem.rules install -m0644 -D %{S:1002} %{buildroot}%{_udevrulesdir}/99-wakeup-from-idle.rules @@ -546,6 +546,11 @@ EOF # aaa_base (in procps for now) rm -f %{buildroot}%{_sysctldir}/50-default.conf +# since v207 /etc/sysctl.conf is no longer parsed (commit +# 04bf3c1a60d82791), however backward compatibility is provided by +# /usr/lib/sysctl.d/99-sysctl.conf. +ln -s ../../../etc/sysctl.conf %{buildroot}%{_sysctldir}/99-sysctl.conf + # The definition of the basic users/groups are defined by system-user # on SUSE (bsc#1006978). rm -f %{buildroot}%{_sysusersdir}/basic.conf @@ -1007,6 +1012,7 @@ fi %dir %{_sysctldir} %dir %{_sysconfdir}/sysctl.d +%{_sysctldir}/99-sysctl.conf %dir %{_sysconfdir}/X11/xinit %dir %{_sysconfdir}/X11/xinit/xinitrc.d diff --git a/systemd-v237+suse.52.g14b3e00c3.tar.xz b/systemd-v237+suse.52.g14b3e00c3.tar.xz deleted file mode 100644 index d03f0d39..00000000 --- a/systemd-v237+suse.52.g14b3e00c3.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cbca10a39e2efa0479fe5d81fb983e08ac4e9655b85e382d8247683a3151834f -size 4627336 diff --git a/systemd-v237+suse.57.gd81968050.tar.xz b/systemd-v237+suse.57.gd81968050.tar.xz new file mode 100644 index 00000000..963d977f --- /dev/null +++ b/systemd-v237+suse.57.gd81968050.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c92c0a8012c1b5b7a2866854ecdbcffca697d5cb65df43ad6a7a2859c95915e +size 4627256 diff --git a/systemd.changes b/systemd.changes index 05c02977..82bd34cc 100644 --- a/systemd.changes +++ b/systemd.changes @@ -1,3 +1,34 @@ +------------------------------------------------------------------- +Mon Apr 23 07:45:32 UTC 2018 - fbui@suse.com + +- Import commit d8196805089566ecd846b7c627ff2f3c42588c50 + + 621b247f3 device: skip deserialization of device units when udevd is not running + a7da5bdbc device: make sure to always retroactively start device dependencies (bsc#1088052) + 303624f6f systemd-udevd: limit children-max by available memory (#8668) (bsc#1086785 bsc#1066422) + 76acf3ae9 tmpfiles: fix directory removal with force symlink (#8619) + +------------------------------------------------------------------- +Fri Apr 20 08:27:41 UTC 2018 - fbui@suse.com + +- Ship 99-sysctl.conf instead of creating it during package installation/update (bsc#1088769) + + Previously this symlink was created in /etc/sysctl.d during %post + which made the symlink not owned and more importantly it was created + only if /etc/sysctl.conf is already installed which is not always + the case during the installation process it seems. + + So ship the symlink unconditionally and put it in /usr/lib/sysctl.d + instead since it's a distro default behavior that might be overriden + by sysadmin later. + +------------------------------------------------------------------- +Mon Apr 9 09:42:16 UTC 2018 - fbui@suse.com + +- Be consistent in 60-io-scheduler.rules + + And use "?*" when checking for the non empty string (instead of "*?"). + ------------------------------------------------------------------- Wed Apr 4 11:49:18 UTC 2018 - fbui@suse.com @@ -62,6 +93,18 @@ Wed Mar 28 11:58:10 UTC 2018 - fbui@suse.com - Split systemd-coredump sub-package off (bsc#1083849) +------------------------------------------------------------------- +Tue Mar 27 20:14:41 UTC 2018 - develop7@develop7.info + +- Enhance IO scheduler tweaking rules to support blk-mq as well + + * Set optimal blk-mq schedulers (bfq and mq-deadline for HDD and + SSD respectively) + * Explicitly set CFQ for rotational disks when no `elevator` + is specified + * Verbose comments explaining what is going on + * Rename the rules file since it is not ssd-only anymore + ------------------------------------------------------------------- Tue Mar 27 15:58:34 UTC 2018 - fbui@suse.com diff --git a/systemd.spec b/systemd.spec index 6a62e0c1..8e20f9a1 100644 --- a/systemd.spec +++ b/systemd.spec @@ -24,7 +24,7 @@ %define bootstrap 0 %define mini %nil %define min_kernel_version 4.5 -%define suse_version +suse.52.g14b3e00c3 +%define suse_version +suse.57.gd81968050 %bcond_with gnuefi %if 0%{?bootstrap} @@ -150,7 +150,7 @@ Source101: scripts-systemd-upgrade-from-pre-210.sh Source102: scripts-systemd-migrate-sysconfig-i18n.sh Source200: scripts-udev-convert-lib-udev-path.sh -Source1000: 60-ssd-scheduler.rules +Source1000: 60-io-scheduler.rules Source1001: 80-hotplug-cpu-mem.rules Source1002: 99-wakeup-from-idle.rules @@ -495,7 +495,7 @@ install -m0755 -D %{S:3} %{buildroot}/%{_sbindir}/systemd-sysv-convert install -m0755 -D %{S:12} %{buildroot}/%{_prefix}/lib/systemd/systemd-sysv-install # The rules that we shouldn't maintain -install -m0644 -D %{S:1000} %{buildroot}%{_udevrulesdir}/60-ssd-scheduler.rules +install -m0644 -D %{S:1000} %{buildroot}%{_udevrulesdir}/60-io-scheduler.rules install -m0644 -D %{S:1001} %{buildroot}%{_udevrulesdir}/80-hotplug-cpu-mem.rules install -m0644 -D %{S:1002} %{buildroot}%{_udevrulesdir}/99-wakeup-from-idle.rules @@ -544,6 +544,11 @@ EOF # aaa_base (in procps for now) rm -f %{buildroot}%{_sysctldir}/50-default.conf +# since v207 /etc/sysctl.conf is no longer parsed (commit +# 04bf3c1a60d82791), however backward compatibility is provided by +# /usr/lib/sysctl.d/99-sysctl.conf. +ln -s ../../../etc/sysctl.conf %{buildroot}%{_sysctldir}/99-sysctl.conf + # The definition of the basic users/groups are defined by system-user # on SUSE (bsc#1006978). rm -f %{buildroot}%{_sysusersdir}/basic.conf @@ -1005,6 +1010,7 @@ fi %dir %{_sysctldir} %dir %{_sysconfdir}/sysctl.d +%{_sysctldir}/99-sysctl.conf %dir %{_sysconfdir}/X11/xinit %dir %{_sysconfdir}/X11/xinit/xinitrc.d