Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 1e2ba4a74fa7 - Linux 5.2.16
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/175174
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: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 1e2ba4a74fa7 - Linux 5.2.16
We grabbed the 0184000388a4 commit of the stable queue repository.
We then merged the patchset with `git am`:
usb-usbcore-fix-slab-out-of-bounds-bug-during-device-reset.patch
media-tm6000-double-free-if-usb-disconnect-while-streaming.patch
phy-renesas-rcar-gen3-usb2-disable-clearing-vbus-in-over-current.patch
net-hns3-adjust-hns3_uninit_phy-s-location-in-the-hns3_client_uninit.patch
netfilter-nf_flow_table-set-default-timeout-after-successful-insertion.patch
hid-wacom-generic-read-hid_dg_contactmax-from-any-feature-report.patch
input-elan_i2c-remove-lenovo-legion-y7000-pnpid.patch
sunrpc-handle-connection-breakages-correctly-in-call_status.patch
media-stm32-dcmi-fix-irq-0-case.patch
nfs-disable-client-side-deduplication.patch
powerpc-mm-radix-use-the-right-page-size-for-vmemmap-mapping.patch
scripts-decode_stacktrace-match-basepath-using-shell-prefix-operator-not-regex.patch
net-hns-fix-led-configuration-for-marvell-phy.patch
net-aquantia-fix-limit-of-vlan-filters.patch
ip6_gre-fix-a-dst-leak-in-ip6erspan_tunnel_xmit.patch
net-sched-fix-race-between-deactivation-and-dequeue-for-nolock-qdisc.patch
net_sched-let-qdisc_put-accept-null-pointer.patch
udp-correct-reuseport-selection-with-connected-sockets.patch
xen-netfront-do-not-assume-sk_buff_head-list-is-empty-in-error-handling.patch
net-dsa-fix-load-order-between-dsa-drivers-and-taggers.patch
kvm-coalesced_mmio-add-bounds-checking.patch
firmware-google-check-if-size-is-valid-when-decoding-vpd-data.patch
serial-sprd-correct-the-wrong-sequence-of-arguments.patch
tty-serial-atmel-reschedule-tx-after-rx-was-started.patch
mwifiex-fix-three-heap-overflow-at-parsing-element-in-cfg80211_ap_settings.patch
nl80211-fix-possible-spectre-v1-for-cqm-rssi-thresholds.patch
ieee802154-hwsim-fix-error-handle-path-in-hwsim_init.patch
ieee802154-hwsim-unregister-hw-while-hwsim_subscribe.patch
arm-dts-am57xx-disable-voltage-switching-for-sd-card.patch
arm-omap2-fix-missing-sysc_has_reset_status-for-dra7.patch
bus-ti-sysc-fix-handling-of-forced-idle.patch
bus-ti-sysc-fix-using-configured-sysc-mask-value.patch
arm-dts-fix-flags-for-gpio7.patch
arm-dts-fix-incorrect-dcan-register-mapping-for-am3-.patch
arm64-dts-meson-g12a-add-missing-dwc2-phy-names.patch
s390-bpf-fix-lcgr-instruction-encoding.patch
arm-omap2-fix-omap4-errata-warning-on-other-socs.patch
arm-dts-am335x-fix-uarts-length.patch
arm-dts-dra74x-fix-iodelay-configuration-for-mmc3.patch
arm-omap1-ams-delta-fiq-fix-missing-irq_ack.patch
bus-ti-sysc-simplify-cleanup-upon-failures-in-sysc_p.patch
arm-dts-fix-incomplete-dts-data-for-am3-and-am4-mmc.patch
s390-bpf-use-32-bit-index-for-tail-calls.patch
selftests-bpf-fix-bind-4-6-deny-specific-ip-port-on-.patch
tools-bpftool-close-prog-fd-before-exit-on-showing-a.patch
fpga-altera-ps-spi-fix-getting-of-optional-confd-gpi.patch
netfilter-ebtables-fix-argument-order-to-add_counter.patch
netfilter-nft_flow_offload-missing-netlink-attribute.patch
netfilter-xt_nfacct-fix-alignment-mismatch-in-xt_nfa.patch
nfsv4-fix-return-values-for-nfs4_file_open.patch
nfsv4-fix-return-value-in-nfs_finish_open.patch
nfs-fix-initialisation-of-i-o-result-struct-in-nfs_p.patch
nfs-on-fatal-writeback-errors-we-need-to-call-nfs_in.patch
kconfig-fix-the-reference-to-the-idt77105-phy-driver.patch
xdp-unpin-xdp-umem-pages-in-error-path.patch
selftests-bpf-fix-test_cgroup_storage-on-s390.patch
selftests-bpf-add-config-fragment-bpf_jit.patch
qed-add-cleanup-in-qed_slowpath_start.patch
drm-omap-fix-port-lookup-for-sdi-output.patch
drm-virtio-use-virtio_max_dma_size.patch
arm-8874-1-mm-only-adjust-sections-of-valid-mm-struc.patch
batman-adv-only-read-ogm2-tvlv_len-after-buffer-len-.patch
flow_dissector-fix-potential-use-after-free-on-bpf_p.patch
bpf-allow-narrow-loads-of-some-sk_reuseport_md-field.patch
r8152-set-memory-to-all-0xffs-on-failed-reg-reads.patch
x86-apic-fix-arch_dynirq_lower_bound-bug-for-dt-enab.patch
pnfs-flexfiles-don-t-time-out-requests-on-hard-mount.patch
nfs-fix-spurious-eio-read-errors.patch
nfs-fix-writepage-s-error-handling-to-not-report-err.patch
drm-amdgpu-fix-dma_fence_wait-without-reference.patch
netfilter-xt_physdev-fix-spurious-error-message-in-p.patch
netfilter-nf_conntrack_ftp-fix-debug-output.patch
nfsv2-fix-eof-handling.patch
nfsv2-fix-write-regression.patch
nfs-remove-set-but-not-used-variable-mapping.patch
kallsyms-don-t-let-kallsyms_lookup_size_offset-fail-.patch
netfilter-conntrack-make-sysctls-per-namespace-again.patch
drm-amd-powerplay-correct-vega20-dpm-level-related-s.patch
cifs-set-domainname-when-a-domain-key-is-used-in-mul.patch
cifs-use-kzfree-to-zero-out-the-password.patch
libceph-don-t-call-crypto_free_sync_skcipher-on-a-nu.patch
usb-host-xhci-tegra-set-dma-mask-correctly.patch
risc-v-fix-fixmap-area-corruption-on-rv32-systems.patch
arm-8901-1-add-a-criteria-for-pfn_valid-of-arm.patch
ibmvnic-do-not-process-reset-during-or-after-device-.patch
sky2-disable-msi-on-yet-another-asus-boards-p6xxxx.patch
i2c-designware-synchronize-irqs-when-unregistering-s.patch
perf-x86-intel-restrict-period-on-nehalem.patch
perf-x86-amd-ibs-fix-sample-bias-for-dispatched-micr.patch
i2c-iproc-stop-advertising-support-of-smbus-quick-cm.patch
i2c-mediatek-disable-zero-length-transfers-for-mt818.patch
amd-xgbe-fix-error-path-in-xgbe_mod_init.patch
netfilter-nf_flow_table-clear-skb-tstamp-before-xmit.patch
tools-power-x86_energy_perf_policy-fix-uninitialized.patch
tools-power-x86_energy_perf_policy-fix-argument-pars.patch
tools-power-turbostat-fix-leak-of-file-descriptor-on.patch
tools-power-turbostat-fix-file-descriptor-leaks.patch
tools-power-turbostat-fix-buffer-overrun.patch
tools-power-turbostat-fix-haswell-core-systems.patch
tools-power-turbostat-add-ice-lake-nnpi-support.patch
tools-power-turbostat-fix-cpu-c1-display-value.patch
net-aquantia-fix-removal-of-vlan-0.patch
net-aquantia-reapply-vlan-filters-on-up.patch
net-aquantia-linkstate-irq-should-be-oneshot.patch
net-aquantia-fix-out-of-memory-condition-on-rx-side.patch
net-dsa-microchip-add-ksz8563-compatibility-string.patch
enetc-add-missing-call-to-pci_free_irq_vectors-in-pr.patch
net-seeq-fix-the-function-used-to-release-some-memor.patch
arm64-dts-renesas-r8a77995-draak-fix-backlight-regul.patch
dmaengine-ti-dma-crossbar-fix-a-memory-leak-bug.patch
dmaengine-ti-omap-dma-add-cleanup-in-omap_dma_probe.patch
x86-uaccess-don-t-leak-the-ac-flags-into-__get_user-.patch
x86-hyper-v-fix-overflow-bug-in-fill_gva_list.patch
iommu-vt-d-remove-global-page-flush-support.patch
dmaengine-sprd-fix-the-dma-link-list-configuration.patch
dmaengine-rcar-dmac-fix-dmachclr-handling-if-iommu-i.patch
keys-fix-missing-null-pointer-check-in-request_key_a.patch
iommu-amd-flush-old-domains-in-kdump-kernel.patch
iommu-amd-fix-race-in-increase_address_space.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
ppc64le:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
x86_64:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. 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.
From: Masami Hiramatsu <mhiramat(a)kernel.org>
Fix to allow user to enable probe events on unloaded modules.
This operations was allowed before commit 60d53e2c3b75 ("tracing/probe:
Split trace_event related data from trace_probe"), because if users
need to probe module init functions, they have to enable those probe
events before loading module.
Link: http://lkml.kernel.org/r/156879693733.31056.9331322616994665167.stgit@devno…
Cc: stable(a)vger.kernel.org
Fixes: 60d53e2c3b75 ("tracing/probe: Split trace_event related data from trace_probe")
Signed-off-by: Masami Hiramatsu <mhiramat(a)kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt(a)goodmis.org>
---
kernel/trace/trace_kprobe.c | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
index 7579c53bb053..0ba3239c0270 100644
--- a/kernel/trace/trace_kprobe.c
+++ b/kernel/trace/trace_kprobe.c
@@ -371,31 +371,24 @@ static int enable_trace_kprobe(struct trace_event_call *call,
if (enabled)
return 0;
- enabled = false;
list_for_each_entry(pos, trace_probe_probe_list(tp), list) {
tk = container_of(pos, struct trace_kprobe, tp);
if (trace_kprobe_has_gone(tk))
continue;
ret = __enable_trace_kprobe(tk);
- if (ret) {
- if (enabled) {
- __disable_trace_kprobe(tp);
- enabled = false;
- }
+ if (ret)
break;
- }
enabled = true;
}
- if (!enabled) {
- /* No probe is enabled. Roll back */
+ if (ret) {
+ /* Failed to enable one of them. Roll back all */
+ if (enabled)
+ __disable_trace_kprobe(tp);
if (file)
trace_probe_remove_file(tp, file);
else
trace_probe_clear_flag(tp, TP_FLAG_PROFILE);
- if (!ret)
- /* Since all probes are gone, this is not available */
- ret = -EADDRNOTAVAIL;
}
return ret;
--
2.20.1
From: Tom Zanussi <zanussi(a)kernel.org>
Original changelog from Steve Rostedt (except last sentence which
explains the problem, and the Fixes: tag):
I performed a three way histogram with the following commands:
echo 'irq_lat u64 lat pid_t pid' > synthetic_events
echo 'wake_lat u64 lat u64 irqlat pid_t pid' >> synthetic_events
echo 'hist:keys=common_pid:irqts=common_timestamp.usecs if function == 0xffffffff81200580' > events/timer/hrtimer_start/trigger
echo 'hist:keys=common_pid:lat=common_timestamp.usecs-$irqts:onmatch(timer.hrtimer_start).irq_lat($lat,pid) if common_flags & 1' > events/sched/sched_waking/trigger
echo 'hist:keys=pid:wakets=common_timestamp.usecs,irqlat=lat' > events/synthetic/irq_lat/trigger
echo 'hist:keys=next_pid:lat=common_timestamp.usecs-$wakets,irqlat=$irqlat:onmatch(synthetic.irq_lat).wake_lat($lat,$irqlat,next_pid)' > events/sched/sched_switch/trigger
echo 1 > events/synthetic/wake_lat/enable
Basically I wanted to see:
hrtimer_start (calling function tick_sched_timer)
Note:
# grep tick_sched_timer /proc/kallsyms
ffffffff81200580 t tick_sched_timer
And save the time of that, and then record sched_waking if it is called
in interrupt context and with the same pid as the hrtimer_start, it
will record the latency between that and the waking event.
I then look at when the task that is woken is scheduled in, and record
the latency between the wakeup and the task running.
At the end, the wake_lat synthetic event will show the wakeup to
scheduled latency, as well as the irq latency in from hritmer_start to
the wakeup. The problem is that I found this:
<idle>-0 [007] d... 190.485261: wake_lat: lat=27 irqlat=190485230 pid=698
<idle>-0 [005] d... 190.485283: wake_lat: lat=40 irqlat=190485239 pid=10
<idle>-0 [002] d... 190.488327: wake_lat: lat=56 irqlat=190488266 pid=335
<idle>-0 [005] d... 190.489330: wake_lat: lat=64 irqlat=190489262 pid=10
<idle>-0 [003] d... 190.490312: wake_lat: lat=43 irqlat=190490265 pid=77
<idle>-0 [005] d... 190.493322: wake_lat: lat=54 irqlat=190493262 pid=10
<idle>-0 [005] d... 190.497305: wake_lat: lat=35 irqlat=190497267 pid=10
<idle>-0 [005] d... 190.501319: wake_lat: lat=50 irqlat=190501264 pid=10
The irqlat seemed quite large! Investigating this further, if I had
enabled the irq_lat synthetic event, I noticed this:
<idle>-0 [002] d.s. 249.429308: irq_lat: lat=164968 pid=335
<idle>-0 [002] d... 249.429369: wake_lat: lat=55 irqlat=249429308 pid=335
Notice that the timestamp of the irq_lat "249.429308" is awfully
similar to the reported irqlat variable. In fact, all instances were
like this. It appeared that:
irqlat=$irqlat
Wasn't assigning the old $irqlat to the new irqlat variable, but
instead was assigning the $irqts to it.
The issue is that assigning the old $irqlat to the new irqlat variable
creates a variable reference alias, but the alias creation code
forgets to make sure the alias uses the same var_ref_idx to access the
reference.
Link: http://lkml.kernel.org/r/1567375321.5282.12.camel@kernel.org
Cc: Linux Trace Devel <linux-trace-devel(a)vger.kernel.org>
Cc: linux-rt-users <linux-rt-users(a)vger.kernel.org>
Cc: stable(a)vger.kernel.org
Fixes: 7e8b88a30b085 ("tracing: Add hist trigger support for variable reference aliases")
Reported-by: Steven Rostedt (VMware) <rostedt(a)goodmis.org>
Signed-off-by: Tom Zanussi <zanussi(a)kernel.org>
Signed-off-by: Steven Rostedt (VMware) <rostedt(a)goodmis.org>
---
kernel/trace/trace_events_hist.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/kernel/trace/trace_events_hist.c b/kernel/trace/trace_events_hist.c
index 3a6e42aa08e6..9468bd8d44a2 100644
--- a/kernel/trace/trace_events_hist.c
+++ b/kernel/trace/trace_events_hist.c
@@ -2804,6 +2804,8 @@ static struct hist_field *create_alias(struct hist_trigger_data *hist_data,
return NULL;
}
+ alias->var_ref_idx = var_ref->var_ref_idx;
+
return alias;
}
--
2.20.1
The patch titled
Subject: lib/lzo/lzo1x_compress.c: fix alignment bug in lzo-rle
has been added to the -mm tree. Its filename is
lib-lzo-fix-alignment-bug-in-lzo-rle.patch
This patch should soon appear at
http://ozlabs.org/~akpm/mmots/broken-out/lib-lzo-fix-alignment-bug-in-lzo-r…
and later at
http://ozlabs.org/~akpm/mmotm/broken-out/lib-lzo-fix-alignment-bug-in-lzo-r…
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/process/submit-checklist.rst when testing your code ***
The -mm tree is included into linux-next and is updated
there every 3-4 working days
------------------------------------------------------
From: Dave Rodgman <dave.rodgman(a)arm.com>
Subject: lib/lzo/lzo1x_compress.c: fix alignment bug in lzo-rle
Fix an unaligned access which breaks on platforms where this is not
permitted (e.g., Sparc).
Link: http://lkml.kernel.org/r/20190912145502.35229-1-dave.rodgman@arm.com
Signed-off-by: Dave Rodgman <dave.rodgman(a)arm.com>
Cc: Dave Rodgman <dave.rodgman(a)arm.com>
Cc: Markus F.X.J. Oberhumer <markus(a)oberhumer.com>
Cc: Minchan Kim <minchan(a)kernel.org>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
lib/lzo/lzo1x_compress.c | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
--- a/lib/lzo/lzo1x_compress.c~lib-lzo-fix-alignment-bug-in-lzo-rle
+++ a/lib/lzo/lzo1x_compress.c
@@ -83,17 +83,19 @@ next:
ALIGN((uintptr_t)ir, 4)) &&
(ir < limit) && (*ir == 0))
ir++;
- for (; (ir + 4) <= limit; ir += 4) {
- dv = *((u32 *)ir);
- if (dv) {
+ if (IS_ALIGNED((uintptr_t)ir, 4)) {
+ for (; (ir + 4) <= limit; ir += 4) {
+ dv = *((u32 *)ir);
+ if (dv) {
# if defined(__LITTLE_ENDIAN)
- ir += __builtin_ctz(dv) >> 3;
+ ir += __builtin_ctz(dv) >> 3;
# elif defined(__BIG_ENDIAN)
- ir += __builtin_clz(dv) >> 3;
+ ir += __builtin_clz(dv) >> 3;
# else
# error "missing endian definition"
# endif
- break;
+ break;
+ }
}
}
#endif
_
Patches currently in -mm which might be from dave.rodgman(a)arm.com are
lib-lzo-fix-alignment-bug-in-lzo-rle.patch