Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 78778071092e - Linux 4.19.55
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 78778071092e - Linux 4.19.55
We grabbed the 320db32b25ea commit of the stable queue repository.
We then merged the patchset with `git am`:
tracing-silence-gcc-9-array-bounds-warning.patch
objtool-support-per-function-rodata-sections.patch
gcc-9-silence-address-of-packed-member-warning.patch
ovl-support-the-fs_ioc_fs-sg-etxattr-ioctls.patch
ovl-fix-wrong-flags-check-in-fs_ioc_fs-sg-etxattr-io.patch
ovl-make-i_ino-consistent-with-st_ino-in-more-cases.patch
ovl-detect-overlapping-layers.patch
ovl-don-t-fail-with-disconnected-lower-nfs.patch
ovl-fix-bogus-wmaybe-unitialized-warning.patch
s390-jump_label-use-jdd-constraint-on-gcc9.patch
s390-ap-rework-assembler-functions-to-use-unions-for.patch
mmc-sdhci-sdhci-pci-o2micro-correctly-set-bus-width-when-tuning.patch
mmc-core-api-to-temporarily-disable-retuning-for-sdio-crc-errors.patch
mmc-core-add-sdio_retune_hold_now-and-sdio_retune_release.patch
mmc-core-prevent-processing-sdio-irqs-when-the-card-is-suspended.patch
scsi-ufs-avoid-runtime-suspend-possibly-being-blocked-forever.patch
usb-chipidea-udc-workaround-for-endpoint-conflict-issue.patch
xhci-detect-usb-3.2-capable-host-controllers-correctly.patch
usb-xhci-don-t-try-to-recover-an-endpoint-if-port-is-in-error-state.patch
ib-hfi1-validate-fault-injection-opcode-user-input.patch
ib-hfi1-silence-txreq-allocation-warnings.patch
iio-temperature-mlx90632-relax-the-compatibility-check.patch
input-synaptics-enable-smbus-on-thinkpad-e480-and-e580.patch
input-uinput-add-compat-ioctl-number-translation-for-ui_-_ff_upload.patch
input-silead-add-mssl0017-to-acpi_device_id.patch
apparmor-fix-profile_mediates-for-untrusted-input.patch
apparmor-enforce-nullbyte-at-end-of-tag-string.patch
brcmfmac-sdio-disable-auto-tuning-around-commands-expected-to-fail.patch
brcmfmac-sdio-don-t-tune-while-the-card-is-off.patch
arc-fix-build-warnings.patch
dmaengine-dw-axi-dmac-fix-null-dereference-when-poin.patch
dmaengine-sprd-fix-block-length-overflow.patch
arc-plat-hsdk-add-missing-multicast-filter-bins-numb.patch
arc-plat-hsdk-add-missing-fifo-size-entry-in-gmac-no.patch
fpga-dfl-afu-pass-the-correct-device-to-dma_mapping_.patch
fpga-dfl-add-lockdep-classes-for-pdata-lock.patch
parport-fix-mem-leak-in-parport_register_dev_model.patch
parisc-fix-compiler-warnings-in-float-emulation-code.patch
ib-rdmavt-fix-alloc_qpn-warn_on.patch
ib-hfi1-insure-freeze_work-work_struct-is-canceled-o.patch
ib-qib-hfi1-rdmavt-correct-ibv_devinfo-max_mr-value.patch
ib-hfi1-validate-page-aligned-for-a-given-virtual-ad.patch
mips-uprobes-remove-set-but-not-used-variable-epc.patch
xtensa-fix-section-mismatch-between-memblock_reserve.patch
kselftest-cgroup-fix-unexpected-testing-failure-on-t.patch
kselftest-cgroup-fix-unexpected-testing-failure-on-t.patch
kselftest-cgroup-fix-incorrect-test_core-skip.patch
selftests-vm-install-test_vmalloc.sh-for-run_vmtests.patch
net-dsa-mv88e6xxx-avoid-error-message-on-remove-from.patch
net-hns-fix-loopback-test-failed-at-copper-ports.patch
mdesc-fix-a-missing-check-bug-in-get_vdev_port_node_.patch
sparc-perf-fix-updated-event-period-in-response-to-p.patch
net-ethernet-mediatek-use-hw_feature-to-judge-if-hwl.patch
net-ethernet-mediatek-use-net_ip_align-to-judge-if-h.patch
drm-arm-mali-dp-add-a-loop-around-the-second-set-cva.patch
drm-arm-hdlcd-actually-validate-crtc-modes.patch
drm-arm-hdlcd-allow-a-bit-of-clock-tolerance.patch
nvmet-fix-data_len-to-0-for-bdev-backed-write_zeroes.patch
scripts-checkstack.pl-fix-arm64-wrong-or-unknown-arc.patch
scsi-ufs-check-that-space-was-properly-alloced-in-co.patch
scsi-smartpqi-unlock-on-error-in-pqi_submit_raid_req.patch
net-ipvlan-fix-ipvlan-device-tso-disabled-while-neti.patch
s390-qeth-fix-vlan-attribute-in-bridge_hostnotify-ud.patch
hwmon-core-add-thermal-sensors-only-if-dev-of_node-i.patch
hwmon-pmbus-core-treat-parameters-as-paged-if-on-mul.patch
arm64-silence-gcc-warnings-about-arch-abi-drift.patch
nvme-fix-u32-overflow-in-the-number-of-namespace-lis.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests from running
on this architecture. This is not the fault of the kernel that was tested.
ppc64le:
Host 1:
✅ Boot test [0]
✅ LTP lite [1]
✅ Loopdev Sanity [2]
✅ AMTU (Abstract Machine Test Utility) [3]
✅ LTP: openposix test suite [4]
✅ Ethernet drivers sanity [5]
✅ audit: audit testsuite test [6]
✅ httpd: mod_ssl smoke sanity [7]
✅ iotop: sanity [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ tuned: tune-processes-through-perf [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [11]
s390x:
Host 1:
✅ Boot test [0]
✅ LTP lite [1]
✅ Loopdev Sanity [2]
✅ LTP: openposix test suite [4]
✅ Ethernet drivers sanity [5]
✅ audit: audit testsuite test [6]
✅ httpd: mod_ssl smoke sanity [7]
✅ iotop: sanity [8]
🚧 ✅ tuned: tune-processes-through-perf [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [11]
x86_64:
Host 1:
✅ Boot test [0]
✅ LTP lite [1]
✅ Loopdev Sanity [2]
✅ AMTU (Abstract Machine Test Utility) [3]
✅ LTP: openposix test suite [4]
✅ Ethernet drivers sanity [5]
✅ audit: audit testsuite test [6]
✅ httpd: mod_ssl smoke sanity [7]
✅ iotop: sanity [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ tuned: tune-processes-through-perf [10]
🚧 ✅ storage: SCSI VPD [12]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [11]
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
[0]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[1]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[2]: https://github.com/CKI-project/tests-beaker/archive/master.zip#filesystems/…
[3]: https://github.com/CKI-project/tests-beaker/archive/master.zip#misc/amtu
[4]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[5]: https://github.com/CKI-project/tests-beaker/archive/master.zip#/networking/…
[6]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/aud…
[7]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/htt…
[8]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/iot…
[9]: https://github.com/CKI-project/tests-beaker/archive/master.zip#standards/us…
[10]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/tun…
[11]: https://github.com/CKI-project/tests-beaker/archive/master.zip#/packages/se…
[12]: https://github.com/CKI-project/tests-beaker/archive/master.zip#storage/scsi…
Waived tests (marked with 🚧)
-----------------------------
This test run included waived tests. Such tests are executed but their results
are not taken into account. Tests are waived when their results are not
reliable enough, e.g. when they're just introduced or are being fixed.
When setting the low and high watermarks we use min_wmark_pages(zone).
I guess this is to reduce the line length. But we forgot that this macro
includes zone->watermark_boost. We need to reset zone->watermark_boost
first. Otherwise the watermarks will be set inconsistently.
E.g. this could cause inconsistent values if the watermarks have been
boosted, and then you change a sysctl which triggers
__setup_per_zone_wmarks().
I strongly suspect this explains why I have seen slightly high watermarks.
Suspicious-looking zoneinfo below - notice high-low != low-min.
Node 0, zone Normal
pages free 74597
min 9582
low 34505
high 36900
https://unix.stackexchange.com/questions/525674/my-low-and-high-watermarks-…
Signed-off-by: Alan Jenkins <alan.christopher.jenkins(a)gmail.com>
Fixes: 1c30844d2dfe ("mm: reclaim small amounts of memory when an external
fragmentation event occurs")
Cc: stable(a)vger.kernel.org
---
Tested by compiler :-).
Ideally the commit message would be clear about what happens the
*first* time __setup_per_zone_watermarks() is called. I guess that
zone->watermark_boost is *usually* zero, or we would have noticed
some wild problems :-). However I am not familiar with how the zone
structures are allocated & initialized. Maybe there is a case where
zone->watermark_boost could contain an arbitrary unitialized value
at this point. Can we rule that out?
mm/page_alloc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index c02cff1ed56e..db9758cda6f8 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -7606,9 +7606,9 @@ static void __setup_per_zone_wmarks(void)
mult_frac(zone_managed_pages(zone),
watermark_scale_factor, 10000));
+ zone->watermark_boost = 0;
zone->_watermark[WMARK_LOW] = min_wmark_pages(zone) + tmp;
zone->_watermark[WMARK_HIGH] = min_wmark_pages(zone) + tmp * 2;
- zone->watermark_boost = 0;
spin_unlock_irqrestore(&zone->lock, flags);
}
--
2.20.1
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 78778071092e - Linux 4.19.55
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 78778071092e - Linux 4.19.55
We grabbed the 483120eae6cc commit of the stable queue repository.
We then merged the patchset with `git am`:
tracing-silence-gcc-9-array-bounds-warning.patch
objtool-support-per-function-rodata-sections.patch
gcc-9-silence-address-of-packed-member-warning.patch
ovl-support-the-fs_ioc_fs-sg-etxattr-ioctls.patch
ovl-fix-wrong-flags-check-in-fs_ioc_fs-sg-etxattr-io.patch
ovl-make-i_ino-consistent-with-st_ino-in-more-cases.patch
ovl-detect-overlapping-layers.patch
ovl-don-t-fail-with-disconnected-lower-nfs.patch
ovl-fix-bogus-wmaybe-unitialized-warning.patch
s390-jump_label-use-jdd-constraint-on-gcc9.patch
s390-ap-rework-assembler-functions-to-use-unions-for.patch
mmc-sdhci-sdhci-pci-o2micro-correctly-set-bus-width-when-tuning.patch
mmc-core-api-to-temporarily-disable-retuning-for-sdio-crc-errors.patch
mmc-core-add-sdio_retune_hold_now-and-sdio_retune_release.patch
mmc-core-prevent-processing-sdio-irqs-when-the-card-is-suspended.patch
scsi-ufs-avoid-runtime-suspend-possibly-being-blocked-forever.patch
usb-chipidea-udc-workaround-for-endpoint-conflict-issue.patch
xhci-detect-usb-3.2-capable-host-controllers-correctly.patch
usb-xhci-don-t-try-to-recover-an-endpoint-if-port-is-in-error-state.patch
ib-hfi1-validate-fault-injection-opcode-user-input.patch
ib-hfi1-silence-txreq-allocation-warnings.patch
iio-temperature-mlx90632-relax-the-compatibility-check.patch
input-synaptics-enable-smbus-on-thinkpad-e480-and-e580.patch
input-uinput-add-compat-ioctl-number-translation-for-ui_-_ff_upload.patch
input-silead-add-mssl0017-to-acpi_device_id.patch
apparmor-fix-profile_mediates-for-untrusted-input.patch
apparmor-enforce-nullbyte-at-end-of-tag-string.patch
brcmfmac-sdio-disable-auto-tuning-around-commands-expected-to-fail.patch
brcmfmac-sdio-don-t-tune-while-the-card-is-off.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_4.19-a…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_4.19-p…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_4.19-s39…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_4.19-x8…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ LTP: openposix test suite [5]
✅ audit: audit testsuite test [6]
✅ httpd: mod_ssl smoke sanity [7]
✅ iotop: sanity [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ tuned: tune-processes-through-perf [10]
🚧 ✅ storage: SCSI VPD [11]
ppc64le:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ LTP: openposix test suite [5]
✅ audit: audit testsuite test [6]
✅ httpd: mod_ssl smoke sanity [7]
✅ iotop: sanity [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ tuned: tune-processes-through-perf [10]
s390x:
Host 1:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ LTP: openposix test suite [5]
✅ audit: audit testsuite test [6]
✅ httpd: mod_ssl smoke sanity [7]
✅ iotop: sanity [8]
🚧 ✅ tuned: tune-processes-through-perf [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
x86_64:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [1]
Host 2:
✅ Boot test [0]
✅ LTP lite [2]
✅ Loopdev Sanity [3]
✅ AMTU (Abstract Machine Test Utility) [4]
✅ LTP: openposix test suite [5]
✅ audit: audit testsuite test [6]
✅ httpd: mod_ssl smoke sanity [7]
✅ iotop: sanity [8]
✅ Usex - version 1.9-29 [9]
🚧 ✅ tuned: tune-processes-through-perf [10]
🚧 ✅ storage: SCSI VPD [11]
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
[0]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[1]: https://github.com/CKI-project/tests-beaker/archive/master.zip#/packages/se…
[2]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[3]: https://github.com/CKI-project/tests-beaker/archive/master.zip#filesystems/…
[4]: https://github.com/CKI-project/tests-beaker/archive/master.zip#misc/amtu
[5]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[6]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/aud…
[7]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/htt…
[8]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/iot…
[9]: https://github.com/CKI-project/tests-beaker/archive/master.zip#standards/us…
[10]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/tun…
[11]: https://github.com/CKI-project/tests-beaker/archive/master.zip#storage/scsi…
Waived tests (marked with 🚧)
-----------------------------
This test run included waived tests. Such tests are executed but their results
are not taken into account. Tests are waived when their results are not
reliable enough, e.g. when they're just introduced or are being fixed.
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 5f0a74b46855 - Linux 5.1.14
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 5f0a74b46855 - Linux 5.1.14
We grabbed the 483120eae6cc commit of the stable queue repository.
We then merged the patchset with `git am`:
tracing-silence-gcc-9-array-bounds-warning.patch
mmc-sdhci-sdhci-pci-o2micro-correctly-set-bus-width-when-tuning.patch
mmc-sdhi-disallow-hs400-for-m3-w-es1.2-rz-g2m-and-v3h.patch
mmc-mediatek-fix-sdio-irq-interrupt-handle-flow.patch
mmc-mediatek-fix-sdio-irq-detection-issue.patch
mmc-core-api-to-temporarily-disable-retuning-for-sdio-crc-errors.patch
mmc-core-add-sdio_retune_hold_now-and-sdio_retune_release.patch
mmc-core-prevent-processing-sdio-irqs-when-the-card-is-suspended.patch
scsi-ufs-avoid-runtime-suspend-possibly-being-blocked-forever.patch
usb-chipidea-udc-workaround-for-endpoint-conflict-issue.patch
xhci-detect-usb-3.2-capable-host-controllers-correctly.patch
usb-xhci-don-t-try-to-recover-an-endpoint-if-port-is-in-error-state.patch
cifs-add-spinlock-for-the-openfilelist-to-cifsinodeinfo.patch
cifs-fix-globalmid_lock-bug-in-cifs_reconnect.patch
ib-hfi1-validate-fault-injection-opcode-user-input.patch
ib-hfi1-close-psm-sdma_progress-sleep-window.patch
ib-hfi1-avoid-hardlockup-with-flushlist_lock.patch
ib-hfi1-correct-tid-qp-rcd-to-match-verbs-context.patch
ib-hfi1-silence-txreq-allocation-warnings.patch
iio-imu-st_lsm6dsx-fix-pm-support-for-st_lsm6dsx-i2c-controller.patch
iio-temperature-mlx90632-relax-the-compatibility-check.patch
input-synaptics-enable-smbus-on-thinkpad-e480-and-e580.patch
input-uinput-add-compat-ioctl-number-translation-for-ui_-_ff_upload.patch
input-silead-add-mssl0017-to-acpi_device_id.patch
apparmor-fix-profile_mediates-for-untrusted-input.patch
apparmor-enforce-nullbyte-at-end-of-tag-string.patch
apparmor-reset-pos-on-failure-to-unpack-for-various-functions.patch
revert-brcmfmac-disable-command-decode-in-sdio_aos.patch
brcmfmac-sdio-disable-auto-tuning-around-commands-expected-to-fail.patch
brcmfmac-sdio-don-t-tune-while-the-card-is-off.patch
Compile testing
---------------
We compiled the kernel for 4 architectures:
aarch64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
kernel build: https://artifacts.cki-project.org/builds/aarch64/kernel-stable_queue_5.1-aa…
ppc64le:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
kernel build: https://artifacts.cki-project.org/builds/ppc64le/kernel-stable_queue_5.1-pp…
s390x:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
kernel build: https://artifacts.cki-project.org/builds/s390x/kernel-stable_queue_5.1-s390…
x86_64:
build options: -j20 INSTALL_MOD_STRIP=1 targz-pkg
configuration: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
kernel build: https://artifacts.cki-project.org/builds/x86_64/kernel-stable_queue_5.1-x86…
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test [0]
✅ LTP lite [1]
✅ Loopdev Sanity [2]
✅ AMTU (Abstract Machine Test Utility) [3]
✅ LTP: openposix test suite [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ Usex - version 1.9-29 [8]
🚧 ✅ tuned: tune-processes-through-perf [9]
🚧 ✅ storage: SCSI VPD [10]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [11]
ppc64le:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [11]
Host 2:
✅ Boot test [0]
✅ LTP lite [1]
✅ Loopdev Sanity [2]
✅ AMTU (Abstract Machine Test Utility) [3]
✅ LTP: openposix test suite [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ Usex - version 1.9-29 [8]
🚧 ✅ tuned: tune-processes-through-perf [9]
s390x:
Host 1:
✅ Boot test [0]
✅ LTP lite [1]
✅ Loopdev Sanity [2]
✅ LTP: openposix test suite [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
🚧 ✅ tuned: tune-processes-through-perf [9]
Host 2:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [11]
x86_64:
Host 1:
✅ Boot test [0]
✅ selinux-policy: serge-testsuite [11]
Host 2:
✅ Boot test [0]
✅ LTP lite [1]
✅ Loopdev Sanity [2]
✅ AMTU (Abstract Machine Test Utility) [3]
✅ LTP: openposix test suite [4]
✅ audit: audit testsuite test [5]
✅ httpd: mod_ssl smoke sanity [6]
✅ iotop: sanity [7]
✅ Usex - version 1.9-29 [8]
🚧 ✅ tuned: tune-processes-through-perf [9]
🚧 ✅ storage: SCSI VPD [10]
Test source:
💚 Pull requests are welcome for new tests or improvements to existing tests!
[0]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[1]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[2]: https://github.com/CKI-project/tests-beaker/archive/master.zip#filesystems/…
[3]: https://github.com/CKI-project/tests-beaker/archive/master.zip#misc/amtu
[4]: https://github.com/CKI-project/tests-beaker/archive/master.zip#distribution…
[5]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/aud…
[6]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/htt…
[7]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/iot…
[8]: https://github.com/CKI-project/tests-beaker/archive/master.zip#standards/us…
[9]: https://github.com/CKI-project/tests-beaker/archive/master.zip#packages/tun…
[10]: https://github.com/CKI-project/tests-beaker/archive/master.zip#storage/scsi…
[11]: https://github.com/CKI-project/tests-beaker/archive/master.zip#/packages/se…
Waived tests (marked with 🚧)
-----------------------------
This test run included waived tests. Such tests are executed but their results
are not taken into account. Tests are waived when their results are not
reliable enough, e.g. when they're just introduced or are being fixed.
The patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm
tree, then please email the backport, including the original git commit
id to <stable(a)vger.kernel.org>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
>From df205b5c63281e4f32caac22adda18fd68795e80 Mon Sep 17 00:00:00 2001
From: Dave Martin <Dave.Martin(a)arm.com>
Date: Wed, 12 Jun 2019 13:44:49 +0100
Subject: [PATCH] KVM: arm64: Filter out invalid core register IDs in
KVM_GET_REG_LIST
Since commit d26c25a9d19b ("arm64: KVM: Tighten guest core register
access from userspace"), KVM_{GET,SET}_ONE_REG rejects register IDs
that do not correspond to a single underlying architectural register.
KVM_GET_REG_LIST was not changed to match however: instead, it
simply yields a list of 32-bit register IDs that together cover the
whole kvm_regs struct. This means that if userspace tries to use
the resulting list of IDs directly to drive calls to KVM_*_ONE_REG,
some of those calls will now fail.
This was not the intention. Instead, iterating KVM_*_ONE_REG over
the list of IDs returned by KVM_GET_REG_LIST should be guaranteed
to work.
This patch fixes the problem by splitting validate_core_offset()
into a backend core_reg_size_from_offset() which does all of the
work except for checking that the size field in the register ID
matches, and kvm_arm_copy_reg_indices() and num_core_regs() are
converted to use this to enumerate the valid offsets.
kvm_arm_copy_reg_indices() now also sets the register ID size field
appropriately based on the value returned, so the register ID
supplied to userspace is fully qualified for use with the register
access ioctls.
Cc: stable(a)vger.kernel.org
Fixes: d26c25a9d19b ("arm64: KVM: Tighten guest core register access from userspace")
Signed-off-by: Dave Martin <Dave.Martin(a)arm.com>
Reviewed-by: Andrew Jones <drjones(a)redhat.com>
Tested-by: Andrew Jones <drjones(a)redhat.com>
Signed-off-by: Marc Zyngier <marc.zyngier(a)arm.com>
diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c
index ae734fcfd4ea..c8aa00179363 100644
--- a/arch/arm64/kvm/guest.c
+++ b/arch/arm64/kvm/guest.c
@@ -70,10 +70,8 @@ static u64 core_reg_offset_from_id(u64 id)
return id & ~(KVM_REG_ARCH_MASK | KVM_REG_SIZE_MASK | KVM_REG_ARM_CORE);
}
-static int validate_core_offset(const struct kvm_vcpu *vcpu,
- const struct kvm_one_reg *reg)
+static int core_reg_size_from_offset(const struct kvm_vcpu *vcpu, u64 off)
{
- u64 off = core_reg_offset_from_id(reg->id);
int size;
switch (off) {
@@ -103,8 +101,7 @@ static int validate_core_offset(const struct kvm_vcpu *vcpu,
return -EINVAL;
}
- if (KVM_REG_SIZE(reg->id) != size ||
- !IS_ALIGNED(off, size / sizeof(__u32)))
+ if (!IS_ALIGNED(off, size / sizeof(__u32)))
return -EINVAL;
/*
@@ -115,6 +112,21 @@ static int validate_core_offset(const struct kvm_vcpu *vcpu,
if (vcpu_has_sve(vcpu) && core_reg_offset_is_vreg(off))
return -EINVAL;
+ return size;
+}
+
+static int validate_core_offset(const struct kvm_vcpu *vcpu,
+ const struct kvm_one_reg *reg)
+{
+ u64 off = core_reg_offset_from_id(reg->id);
+ int size = core_reg_size_from_offset(vcpu, off);
+
+ if (size < 0)
+ return -EINVAL;
+
+ if (KVM_REG_SIZE(reg->id) != size)
+ return -EINVAL;
+
return 0;
}
@@ -447,19 +459,34 @@ static int copy_core_reg_indices(const struct kvm_vcpu *vcpu,
{
unsigned int i;
int n = 0;
- const u64 core_reg = KVM_REG_ARM64 | KVM_REG_SIZE_U64 | KVM_REG_ARM_CORE;
for (i = 0; i < sizeof(struct kvm_regs) / sizeof(__u32); i++) {
- /*
- * The KVM_REG_ARM64_SVE regs must be used instead of
- * KVM_REG_ARM_CORE for accessing the FPSIMD V-registers on
- * SVE-enabled vcpus:
- */
- if (vcpu_has_sve(vcpu) && core_reg_offset_is_vreg(i))
+ u64 reg = KVM_REG_ARM64 | KVM_REG_ARM_CORE | i;
+ int size = core_reg_size_from_offset(vcpu, i);
+
+ if (size < 0)
+ continue;
+
+ switch (size) {
+ case sizeof(__u32):
+ reg |= KVM_REG_SIZE_U32;
+ break;
+
+ case sizeof(__u64):
+ reg |= KVM_REG_SIZE_U64;
+ break;
+
+ case sizeof(__uint128_t):
+ reg |= KVM_REG_SIZE_U128;
+ break;
+
+ default:
+ WARN_ON(1);
continue;
+ }
if (uindices) {
- if (put_user(core_reg | i, uindices))
+ if (put_user(reg, uindices))
return -EFAULT;
uindices++;
}