08ae95f4fd
nohz_full: Allow the boot CPU to be nohz_full
...
Allow the boot CPU/CPU0 to be nohz_full. Have the boot CPU take the
do_timer duty during boot until a housekeeping CPU can take over.
This is supported when CONFIG_PM_SLEEP_SMP is not configured, or when
it is configured and the arch allows suspend on non-zero CPUs.
nohz_full has been trialed at a large supercomputer site and found to
significantly reduce jitter. In order to deploy it in production, they
need CPU0 to be nohz_full because their job control system requires
the application CPUs to start from 0, and the housekeeping CPUs are
placed higher. An equivalent job scheduling that uses CPU0 for
housekeeping could be achieved by modifying their system, but it is
preferable if nohz_full can support their environment without
modification.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linuxppc-dev@lists.ozlabs.org
Link: https://lkml.kernel.org/r/20190411033448.20842-6-npiggin@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-05-03 19:42:58 +02:00
9219565aa8
sched/isolation: Require a present CPU in housekeeping mask
...
During housekeeping mask setup, currently a possible CPU is required.
That does not guarantee the CPU would be available at boot time, so
check to ensure that at least one present CPU is in the mask.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linuxppc-dev@lists.ozlabs.org
Link: https://lkml.kernel.org/r/20190411033448.20842-5-npiggin@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-05-03 19:42:58 +02:00
9ca12ac04b
kernel/cpu: Allow non-zero CPU to be primary for suspend / kexec freeze
...
This patch provides an arch option, ARCH_SUSPEND_NONZERO_CPU, to
opt-in to allowing suspend to occur on one of the housekeeping CPUs
rather than hardcoded CPU0.
This will allow CPU0 to be a nohz_full CPU with a later change.
It may be possible for platforms with hardware/firmware restrictions
on suspend/wake effectively support this by handing off the final
stage to CPU0 when kernel housekeeping is no longer required. Another
option is to make housekeeping / nohz_full mask dynamic at runtime,
but the complexity could not be justified at this time.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linuxppc-dev@lists.ozlabs.org
Link: https://lkml.kernel.org/r/20190411033448.20842-4-npiggin@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-05-03 19:42:58 +02:00
2f1a6fbbef
power/suspend: Add function to disable secondaries for suspend
...
This adds a function to disable secondary CPUs for suspend that are
not necessarily non-zero / non-boot CPUs. Platforms will be able to
use this to suspend using non-zero CPUs.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linuxppc-dev@lists.ozlabs.org
Link: https://lkml.kernel.org/r/20190411033448.20842-3-npiggin@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-05-03 19:42:41 +02:00
aaebdf8d68
genirq/msi: Add a new field in msi_desc to store an IOMMU cookie
...
When an MSI doorbell is located downstream of an IOMMU, it is required
to swizzle the physical address with an appropriately-mapped IOVA for any
device attached to one of our DMA ops domain.
At the moment, the allocation of the mapping may be done when composing
the message. However, the composing may be done in non-preemtible
context while the allocation requires to be called from preemptible
context.
A follow-up change will split the current logic in two functions
requiring to keep an IOMMU cookie per MSI.
A new field is introduced in msi_desc to store an IOMMU cookie. As the
cookie may not be required in some configuration, the field is protected
under a new config CONFIG_IRQ_MSI_IOMMU.
A pair of helpers has also been introduced to access the field.
Signed-off-by: Julien Grall <julien.grall@arm.com >
Reviewed-by: Robin Murphy <robin.murphy@arm.com >
Reviewed-by: Eric Auger <eric.auger@redhat.com >
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com >
2019-05-03 15:19:20 +01:00
77a5352ba9
sched/core: Allow the remote scheduler tick to be started on CPU0
...
This has no effect yet because CPU0 will always be a housekeeping CPU
until a later change.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Frederic Weisbecker <fweisbec@gmail.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rafael J . Wysocki <rafael.j.wysocki@intel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: linuxppc-dev@lists.ozlabs.org
Link: https://lkml.kernel.org/r/20190411033448.20842-2-npiggin@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-05-03 12:53:14 +02:00
176d2323c7
Merge branch 'linus' into sched/core, to pick up fixes
...
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-05-03 12:52:45 +02:00
26ae4f4406
perf/ring_buffer: Fix AUX software double buffering
...
This recent commit:
5768402fd9
("perf/ring_buffer: Use high order allocations for AUX buffers optimistically")
overlooked the fact that the previous one page granularity of the AUX buffer
provided an implicit double buffering capability to the PMU driver, which
went away when the entire buffer became one high-order page.
Always make the full-trace mode AUX allocation at least two-part to preserve
the previous behavior and allow the implicit double buffering to continue.
Reported-by: Ammy Yi <ammy.yi@intel.com >
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com >
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl >
Cc: Arnaldo Carvalho de Melo <acme@redhat.com >
Cc: Jiri Olsa <jolsa@redhat.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Stephane Eranian <eranian@google.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Vince Weaver <vincent.weaver@maine.edu >
Cc: adrian.hunter@intel.com
Fixes: 5768402fd9
("perf/ring_buffer: Use high order allocations for AUX buffers optimistically")
Link: http://lkml.kernel.org/r/20190503085536.24119-2-alexander.shishkin@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-05-03 12:46:10 +02:00
ff24e4980a
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
...
Three trivial overlapping conflicts.
Signed-off-by: David S. Miller <davem@davemloft.net >
2019-05-02 22:14:21 -04:00
03197fc02b
tracing: kdb: Allow ftdump to skip all but the last few entries
...
The 'ftdump' command in kdb is currently a bit of a last resort, at
least if you have lots of traces turned on. It's going to print a
whole boatload of data out your serial port which is probably running
at 115200. This could easily take many, many minutes.
Usually you're most interested in what's at the _end_ of the ftrace
buffer, AKA what happened most recently. That means you've got to
wait the full time for the dump. The 'ftdump' command does attempt to
help you a little bit by allowing you to skip a fixed number of
entries. Unfortunately it provides no way for you to know how many
entries you should skip.
Let's do similar to python and allow you to use a negative number to
indicate that you want to skip all entries except the last few. This
allows you to quickly see what you want.
Note that we also change the printout in ftdump to print the
(positive) number of entries actually skipped since that could be
helpful to know when you've specified a negative skip count.
Link: http://lkml.kernel.org/r/20190319171206.97107-3-dianders@chromium.org
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
2019-05-02 21:32:55 -04:00
ecffc8a8c7
tracing: Add trace_total_entries() / trace_total_entries_cpu()
...
These two new exported functions will be used in a future patch by
kdb_ftdump() to quickly skip all but the last few trace entries.
Link: http://lkml.kernel.org/r/20190319171206.97107-2-dianders@chromium.org
Acked-by: Daniel Thompson <daniel.thompson@linaro.org >
Suggested-by: Steven Rostedt <rostedt@goodmis.org >
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
2019-05-02 21:32:31 -04:00
dbfe67334a
tracing: kdb: The skip_lines parameter should have been skip_entries
...
The things skipped by kdb's "ftdump" command when you pass it a
parameter has always been entries, not lines. The difference usually
doesn't matter but when the trace buffer has multi-line entries (like
a stack dump) it can matter.
Let's fix this both in the help text for ftdump and also in the local
variable names.
Link: http://lkml.kernel.org/r/20190319171206.97107-1-dianders@chromium.org
Acked-by: Daniel Thompson <daniel.thompson@linaro.org >
Signed-off-by: Douglas Anderson <dianders@chromium.org >
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
2019-05-02 21:31:19 -04:00
ea9866793d
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
...
Pull networking fixes from David Miller:
1) Out of bounds access in xfrm IPSEC policy unlink, from Yue Haibing.
2) Missing length check for esp4 UDP encap, from Sabrina Dubroca.
3) Fix byte order of RX STBC access in mac80211, from Johannes Berg.
4) Inifnite loop in bpftool map create, from Alban Crequy.
5) Register mark fix in ebpf verifier after pkt/null checks, from Paul
Chaignon.
6) Properly use rcu_dereference_sk_user_data in L2TP code, from Eric
Dumazet.
7) Buffer overrun in marvell phy driver, from Andrew Lunn.
8) Several crash and statistics handling fixes to bnxt_en driver, from
Michael Chan and Vasundhara Volam.
9) Several fixes to the TLS layer from Jakub Kicinski (copying negative
amounts of data in reencrypt, reencrypt frag copying, blind nskb->sk
NULL deref, etc).
10) Several UDP GRO fixes, from Paolo Abeni and Eric Dumazet.
11) PID/UID checks on ipv6 flow labels are inverted, from Willem de
Bruijn.
12) Use after free in l2tp, from Eric Dumazet.
13) IPV6 route destroy races, also from Eric Dumazet.
14) SCTP state machine can erroneously run recursively, fix from Xin
Long.
15) Adjust AF_PACKET msg_name length checks, add padding bytes if
necessary. From Willem de Bruijn.
16) Preserve skb_iif, so that forwarded packets have consistent values
even if fragmentation is involved. From Shmulik Ladkani.
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (69 commits)
udp: fix GRO packet of death
ipv6: A few fixes on dereferencing rt->from
rds: ib: force endiannes annotation
selftests: fib_rule_tests: print the result and return 1 if any tests failed
ipv4: ip_do_fragment: Preserve skb_iif during fragmentation
net/tls: avoid NULL pointer deref on nskb->sk in fallback
selftests: fib_rule_tests: Fix icmp proto with ipv6
packet: validate msg_namelen in send directly
packet: in recvmsg msg_name return at least sizeof sockaddr_ll
sctp: avoid running the sctp state machine recursively
stmmac: pci: Fix typo in IOT2000 comment
Documentation: fix netdev-FAQ.rst markup warning
ipv6: fix races in ip6_dst_destroy()
l2ip: fix possible use-after-free
appletalk: Set error code if register_snap_client failed
net: dsa: bcm_sf2: fix buffer overflow doing set_rxnfc
rxrpc: Fix net namespace cleanup
ipv6/flowlabel: wait rcu grace period before put_pid()
vrf: Use orig netdev to count Ip6InNoRoutes and a fresh route lookup when sending dest unreach
tcp: add sanity tests in tcp_add_backlog()
...
2019-05-02 11:03:34 -07:00
9b555c4d78
kdb: kdb_support: replace strcpy() by strscpy()
...
The strcpy() function is being deprecated. Replace it by the safer
strscpy() and fix the following Coverity warning:
"You might overrun the 129-character fixed-size string ks_namebuf
by copying name without checking the length."
Addresses-Coverity-ID: 138995 ("Copy into fixed size buffer")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com >
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org >
2019-05-02 13:42:01 +01:00
4cc168eaf3
gdbstub: Replace strcpy() by strscpy()
...
The strcpy() function is being deprecated. Replace it by the safer
strscpy() and fix the following Coverity warning:
"You might overrun the 1024-character fixed-size string remcom_in_buffer
by copying cmd without checking the length."
Addresses-Coverity-ID: 138999 ("Copy into fixed size buffer")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com >
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org >
2019-05-02 13:40:27 +01:00
a5d5092c92
gdbstub: mark expected switch fall-throughs
...
In preparation to enabling -Wimplicit-fallthrough, mark switch
cases where we are expecting to fall through.
This patch fixes the following warnings:
kernel/debug/gdbstub.c: In function ‘gdb_serial_stub’:
kernel/debug/gdbstub.c:1031:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
if (remcom_in_buffer[1] == '\0') {
^
kernel/debug/gdbstub.c:1036:3: note: here
case 'C': /* Exception passing */
^~~~
kernel/debug/gdbstub.c:1040:7: warning: this statement may fall through [-Wimplicit-fallthrough=]
if (tmp == 0)
^
kernel/debug/gdbstub.c:1043:3: note: here
case 'c': /* Continue packet */
^~~~
kernel/debug/gdbstub.c:1050:4: warning: this statement may fall through [-Wimplicit-fallthrough=]
dbg_activate_sw_breakpoints();
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/debug/gdbstub.c:1052:3: note: here
default:
^~~~~~~
Warning level 3 was used: -Wimplicit-fallthrough=3
Notice that, in this particular case, the code comment is modified
in accordance with what GCC is expecting to find.
This patch is part of the ongoing efforts to enable
-Wimplicit-fallthrough.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com >
Acked-by: Jason Wessel <jason.wessel@windriver.com >
Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org >
2019-05-02 13:38:04 +01:00
98587c2d89
s390: simplify disabled_wait
...
The disabled_wait() function uses its argument as the PSW address when
it stops the CPU with a wait PSW that is disabled for interrupts.
The different callers sometimes use a specific number like 0xdeadbeef
to indicate a specific failure, the early boot code uses 0 and some
other calls sites use __builtin_return_address(0).
At the time a dump is created the current PSW and the registers of a
CPU are written to lowcore to make them avaiable to the dump analysis
tool. For a CPU stopped with disabled_wait the PSW and the registers
do not really make sense together, the PSW address does not point to
the function the registers belong to.
Simplify disabled_wait() by using _THIS_IP_ for the PSW address and
drop the argument to the function.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com >
2019-05-02 13:54:11 +02:00
524845ff9c
bpf: switch to ->free_inode()
...
Acked-by: Alexei Starovoitov <ast@kernel.org >
Acked-by: Song Liu <songliubraving@fb.com >
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk >
2019-05-01 22:43:26 -04:00
50abbe1962
Merge branch 'for-next/mitigations' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux into for-next/core
2019-05-01 15:34:56 +01:00
2bd1298ac1
genirq: Introduce irq_chip_{request,release}_resource_parent() apis
...
Introduce irq_chip_{request,release}_resource_parent() apis so
that these can be used in hierarchical irqchips.
Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com >
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com >
2019-05-01 10:41:38 +01:00
d53d2f78ce
bpf: Use vmalloc special flag
...
Use new flag VM_FLUSH_RESET_PERMS for handling freeing of special
permissioned memory in vmalloc and remove places where memory was set RW
before freeing which is no longer needed. Don't track if the memory is RO
anymore because it is now tracked in vmalloc.
Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: <akpm@linux-foundation.org >
Cc: <ard.biesheuvel@linaro.org >
Cc: <deneen.t.dock@intel.com >
Cc: <kernel-hardening@lists.openwall.com >
Cc: <kristen@linux.intel.com >
Cc: <linux_dti@icloud.com >
Cc: <will.deacon@arm.com >
Cc: Alexei Starovoitov <ast@kernel.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Daniel Borkmann <daniel@iogearbox.net >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Nadav Amit <nadav.amit@gmail.com >
Cc: Rik van Riel <riel@surriel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: https://lkml.kernel.org/r/20190426001143.4983-19-namit@vmware.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-30 12:37:59 +02:00
1a7b7d9220
modules: Use vmalloc special flag
...
Use new flag for handling freeing of special permissioned memory in vmalloc
and remove places where memory was set RW before freeing which is no longer
needed.
Since freeing of VM_FLUSH_RESET_PERMS memory is not supported in an
interrupt by vmalloc, the freeing of init sections is moved to a work
queue. Instead of call_rcu it now uses synchronize_rcu() in the work
queue.
Lastly, there is now a WARN_ON in module_memfree since it should not be
called in an interrupt with special memory as is required for
VM_FLUSH_RESET_PERMS.
Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: <akpm@linux-foundation.org >
Cc: <ard.biesheuvel@linaro.org >
Cc: <deneen.t.dock@intel.com >
Cc: <kernel-hardening@lists.openwall.com >
Cc: <kristen@linux.intel.com >
Cc: <linux_dti@icloud.com >
Cc: <will.deacon@arm.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Jessica Yu <jeyu@kernel.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Nadav Amit <nadav.amit@gmail.com >
Cc: Rik van Riel <riel@surriel.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: https://lkml.kernel.org/r/20190426001143.4983-18-namit@vmware.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-30 12:37:58 +02:00
d633269286
mm/hibernation: Make hibernation handle unmapped pages
...
Make hibernate handle unmapped pages on the direct map when
CONFIG_ARCH_HAS_SET_ALIAS=y is set. These functions allow for setting pages
to invalid configurations, so now hibernate should check if the pages have
valid mappings and handle if they are unmapped when doing a hibernate
save operation.
Previously this checking was already done when CONFIG_DEBUG_PAGEALLOC=y
was configured. It does not appear to have a big hibernating performance
impact. The speed of the saving operation before this change was measured
as 819.02 MB/s, and after was measured at 813.32 MB/s.
Before:
[ 4.670938] PM: Wrote 171996 kbytes in 0.21 seconds (819.02 MB/s)
After:
[ 4.504714] PM: Wrote 178932 kbytes in 0.22 seconds (813.32 MB/s)
Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Acked-by: Pavel Machek <pavel@ucw.cz >
Cc: <akpm@linux-foundation.org >
Cc: <ard.biesheuvel@linaro.org >
Cc: <deneen.t.dock@intel.com >
Cc: <kernel-hardening@lists.openwall.com >
Cc: <kristen@linux.intel.com >
Cc: <linux_dti@icloud.com >
Cc: <will.deacon@arm.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Nadav Amit <nadav.amit@gmail.com >
Cc: Rafael J. Wysocki <rjw@rjwysocki.net >
Cc: Rik van Riel <riel@surriel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: https://lkml.kernel.org/r/20190426001143.4983-16-namit@vmware.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-30 12:37:57 +02:00
f2c65fb322
x86/modules: Avoid breaking W^X while loading modules
...
When modules and BPF filters are loaded, there is a time window in
which some memory is both writable and executable. An attacker that has
already found another vulnerability (e.g., a dangling pointer) might be
able to exploit this behavior to overwrite kernel code. Prevent having
writable executable PTEs in this stage.
In addition, avoiding having W+X mappings can also slightly simplify the
patching of modules code on initialization (e.g., by alternatives and
static-key), as would be done in the next patch. This was actually the
main motivation for this patch.
To avoid having W+X mappings, set them initially as RW (NX) and after
they are set as RO set them as X as well. Setting them as executable is
done as a separate step to avoid one core in which the old PTE is cached
(hence writable), and another which sees the updated PTE (executable),
which would break the W^X protection.
Suggested-by: Thomas Gleixner <tglx@linutronix.de >
Suggested-by: Andy Lutomirski <luto@amacapital.net >
Signed-off-by: Nadav Amit <namit@vmware.com >
Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: <akpm@linux-foundation.org >
Cc: <ard.biesheuvel@linaro.org >
Cc: <deneen.t.dock@intel.com >
Cc: <kernel-hardening@lists.openwall.com >
Cc: <kristen@linux.intel.com >
Cc: <linux_dti@icloud.com >
Cc: <will.deacon@arm.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Jessica Yu <jeyu@kernel.org >
Cc: Kees Cook <keescook@chromium.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Masami Hiramatsu <mhiramat@kernel.org >
Cc: Rik van Riel <riel@surriel.com >
Link: https://lkml.kernel.org/r/20190426001143.4983-12-namit@vmware.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-30 12:37:55 +02:00
13585fa066
fork: Provide a function for copying init_mm
...
Provide a function for copying init_mm. This function will be later used
for setting a temporary mm.
Tested-by: Masami Hiramatsu <mhiramat@kernel.org >
Signed-off-by: Nadav Amit <namit@vmware.com >
Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org >
Cc: <akpm@linux-foundation.org >
Cc: <ard.biesheuvel@linaro.org >
Cc: <deneen.t.dock@intel.com >
Cc: <kernel-hardening@lists.openwall.com >
Cc: <kristen@linux.intel.com >
Cc: <linux_dti@icloud.com >
Cc: <will.deacon@arm.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dave Hansen <dave.hansen@intel.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Kees Cook <keescook@chromium.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Rik van Riel <riel@surriel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: https://lkml.kernel.org/r/20190426001143.4983-6-namit@vmware.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-30 12:37:51 +02:00
aad42dd44d
uprobes: Initialize uprobes earlier
...
In order to have a separate address space for text poking, we need to
duplicate init_mm early during start_kernel(). This, however, introduces
a problem since uprobes functions are called from dup_mmap(), but
uprobes is still not initialized in this early stage.
Since uprobes initialization is necassary for fork, and since all the
dependant initialization has been done when fork is initialized (percpu
and vmalloc), move uprobes initialization to fork_init(). It does not
seem uprobes introduces any security problem for the poking_mm.
Crash and burn if uprobes initialization fails, similarly to other early
initializations. Change the init_probes() name to probes_init() to match
other early initialization functions name convention.
Reported-by: kernel test robot <lkp@intel.com >
Signed-off-by: Nadav Amit <namit@vmware.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Arnaldo Carvalho de Melo <acme@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Rick Edgecombe <rick.p.edgecombe@intel.com >
Cc: Rik van Riel <riel@surriel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: akpm@linux-foundation.org
Cc: ard.biesheuvel@linaro.org
Cc: deneen.t.dock@intel.com
Cc: kernel-hardening@lists.openwall.com
Cc: kristen@linux.intel.com
Cc: linux_dti@icloud.com
Cc: will.deacon@arm.com
Link: https://lkml.kernel.org/r/20190426232303.28381-6-nadav.amit@gmail.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-30 12:37:51 +02:00
c7b6f29b62
bpf: Fail bpf_probe_write_user() while mm is switched
...
When using a temporary mm, bpf_probe_write_user() should not be able to
write to user memory, since user memory addresses may be used to map
kernel memory. Detect these cases and fail bpf_probe_write_user() in
such cases.
Suggested-by: Jann Horn <jannh@google.com >
Reported-by: Jann Horn <jannh@google.com >
Signed-off-by: Nadav Amit <namit@vmware.com >
Signed-off-by: Rick Edgecombe <rick.p.edgecombe@intel.com >
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: <akpm@linux-foundation.org >
Cc: <ard.biesheuvel@linaro.org >
Cc: <deneen.t.dock@intel.com >
Cc: <kernel-hardening@lists.openwall.com >
Cc: <kristen@linux.intel.com >
Cc: <linux_dti@icloud.com >
Cc: <will.deacon@arm.com >
Cc: Alexei Starovoitov <ast@kernel.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Borislav Petkov <bp@alien8.de >
Cc: Daniel Borkmann <daniel@iogearbox.net >
Cc: Dave Hansen <dave.hansen@linux.intel.com >
Cc: H. Peter Anvin <hpa@zytor.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Rik van Riel <riel@surriel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Link: https://lkml.kernel.org/r/20190426001143.4983-24-namit@vmware.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-30 12:37:48 +02:00
9a4f26cc98
sched/cpufreq: Fix kobject memleak
...
Currently the error return path from kobject_init_and_add() is not
followed by a call to kobject_put() - which means we are leaking
the kobject.
Fix it by adding a call to kobject_put() in the error path of
kobject_init_and_add().
Signed-off-by: Tobin C. Harding <tobin@kernel.org >
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Tobin C. Harding <tobin@kernel.org >
Cc: Vincent Guittot <vincent.guittot@linaro.org >
Cc: Viresh Kumar <viresh.kumar@linaro.org >
Link: http://lkml.kernel.org/r/20190430001144.24890-1-tobin@kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-30 07:57:23 +02:00
83a50840e7
Merge tag 'seccomp-v5.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
...
Pull seccomp fixes from Kees Cook:
"Syzbot found a use-after-free bug in seccomp due to flags that should
not be allowed to be used together.
Tycho fixed this, I updated the self-tests, and the syzkaller PoC has
been running for several days without triggering KASan (before this
fix, it would reproduce). These patches have also been in -next for
almost a week, just to be sure.
- Add logic for making some seccomp flags exclusive (Tycho)
- Update selftests for exclusivity testing (Kees)"
* tag 'seccomp-v5.1-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
seccomp: Make NEW_LISTENER and TSYNC flags exclusive
selftests/seccomp: Prepare for exclusive seccomp flags
2019-04-29 13:24:34 -07:00
43d8ce9d65
Provide in-kernel headers to make extending kernel easier
...
Introduce in-kernel headers which are made available as an archive
through proc (/proc/kheaders.tar.xz file). This archive makes it
possible to run eBPF and other tracing programs that need to extend the
kernel for tracing purposes without any dependency on the file system
having headers.
A github PR is sent for the corresponding BCC patch at:
https://github.com/iovisor/bcc/pull/2312
On Android and embedded systems, it is common to switch kernels but not
have kernel headers available on the file system. Further once a
different kernel is booted, any headers stored on the file system will
no longer be useful. This is an issue even well known to distros.
By storing the headers as a compressed archive within the kernel, we can
avoid these issues that have been a hindrance for a long time.
The best way to use this feature is by building it in. Several users
have a need for this, when they switch debug kernels, they do not want to
update the filesystem or worry about it where to store the headers on
it. However, the feature is also buildable as a module in case the user
desires it not being part of the kernel image. This makes it possible to
load and unload the headers from memory on demand. A tracing program can
load the module, do its operations, and then unload the module to save
kernel memory. The total memory needed is 3.3MB.
By having the archive available at a fixed location independent of
filesystem dependencies and conventions, all debugging tools can
directly refer to the fixed location for the archive, without concerning
with where the headers on a typical filesystem which significantly
simplifies tooling that needs kernel headers.
The code to read the headers is based on /proc/config.gz code and uses
the same technique to embed the headers.
Other approaches were discussed such as having an in-memory mountable
filesystem, but that has drawbacks such as requiring an in-kernel xz
decompressor which we don't have today, and requiring usage of 42 MB of
kernel memory to host the decompressed headers at anytime. Also this
approach is simpler than such approaches.
Reviewed-by: Masahiro Yamada <yamada.masahiro@socionext.com >
Signed-off-by: Joel Fernandes (Google) <joel@joelfernandes.org >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2019-04-29 16:48:03 +02:00
08970ecf74
irq/irqdomain: Fix typo in the comment on top of __irq_domain_alloc_irqs()
...
The word 'number' has been misspelt in the comment on top of
_irq_domain_alloc_irqs().
Signed-off-by: Julien Grall <julien.grall@arm.com >
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com >
2019-04-29 15:45:00 +01:00
d671002be6
locking/lockdep: Remove unnecessary unlikely()
...
DEBUG_LOCKS_WARN_ON() already contains an unlikely(), there is no need
for another one.
Signed-off-by: zhengbin <zhengbin13@huawei.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: Will Deacon <will.deacon@arm.com >
Cc: houtao1@huawei.com
Link: http://lkml.kernel.org/r/1556540791-23110-1-git-send-email-zhengbin13@huawei.com
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2019-04-29 16:11:01 +02:00
31adf2308f
livepatch: Convert error about unsupported reliable stacktrace into a warning
...
The commit d0807da78e
("livepatch: Remove immediate feature") caused
that any livepatch was refused when reliable stacktraces were not supported
on the given architecture.
The limitation is too strong. User space processes are safely migrated
even when entering or leaving the kernel. Kthreads transition would
need to get forced. But it is safe when:
+ The livepatch does not change the semantic of the code.
+ Callbacks do not depend on a safely finished transition.
Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Miroslav Benes <mbenes@suse.cz >
Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com >
Signed-off-by: Petr Mladek <pmladek@suse.com >
2019-04-29 14:46:07 +02:00
214d8ca6ee
stacktrace: Provide common infrastructure
...
All architectures which support stacktrace carry duplicated code and
do the stack storage and filtering at the architecture side.
Provide a consolidated interface with a callback function for consuming the
stack entries provided by the architecture specific stack walker. This
removes lots of duplicated code and allows to implement better filtering
than 'skip number of entries' in the future without touching any
architecture specific code.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: linux-arch@vger.kernel.org
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Link: https://lkml.kernel.org/r/20190425094803.713568606@linutronix.de
2019-04-29 12:37:57 +02:00
988ec8841c
stacktrace: Remove obsolete functions
...
No more users of the struct stack_trace based interfaces. Remove them.
Remove the macro stubs for !CONFIG_STACKTRACE as well as they are pointless
because the storage on the call sites is conditional on CONFIG_STACKTRACE
already. No point to be 'smart'.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094803.524796783@linutronix.de
2019-04-29 12:37:57 +02:00
25e39e32b0
livepatch: Simplify stack trace retrieval
...
Replace the indirection through struct stack_trace by using the storage
array based interfaces.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Miroslav Benes <mbenes@suse.cz >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094803.437950229@linutronix.de
2019-04-29 12:37:56 +02:00
9f50c91b11
tracing: Remove the last struct stack_trace usage
...
Simplify the stack retrieval code by using the storage array based
interface.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094803.340000461@linutronix.de
2019-04-29 12:37:56 +02:00
ee6dd0db4d
tracing: Simplify stack trace retrieval
...
Replace the indirection through struct stack_trace by using the storage
array based interfaces.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094803.248604594@linutronix.de
2019-04-29 12:37:55 +02:00
c438f140cc
tracing: Make ftrace_trace_userstack() static and conditional
...
It's only used in trace.c and there is absolutely no point in compiling it
in when user space stack traces are not supported.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Steven Rostedt <rostedt@goodmis.org >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094803.162400595@linutronix.de
2019-04-29 12:37:55 +02:00
2a820bf749
tracing: Use percpu stack trace buffer more intelligently
...
The per cpu stack trace buffer usage pattern is odd at best. The buffer has
place for 512 stack trace entries on 64-bit and 1024 on 32-bit. When
interrupts or exceptions nest after the per cpu buffer was acquired the
stacktrace length is hardcoded to 8 entries. 512/1024 stack trace entries
in kernel stacks are unrealistic so the buffer is a complete waste.
Split the buffer into 4 nest levels, which are 128/256 entries per
level. This allows nesting contexts (interrupts, exceptions) to utilize the
cpu buffer for stack retrieval and avoids the fixed length allocation along
with the conditional execution pathes.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094803.066064076@linutronix.de
2019-04-29 12:37:55 +02:00
e7d916632b
tracing: Simplify stacktrace retrieval in histograms
...
The indirection through struct stack_trace is not necessary at all. Use the
storage array based interface.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Tested-by: Tom Zanussi <tom.zanussi@linux.intel.com >
Reviewed-by: Tom Zanussi <tom.zanussi@linux.intel.com >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094802.979089273@linutronix.de
2019-04-29 12:37:54 +02:00
c120bce780
lockdep: Simplify stack trace handling
...
Replace the indirection through struct stack_trace by using the storage
array based interfaces and storing the information is a small lockdep
specific data structure.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094802.891724020@linutronix.de
2019-04-29 12:37:54 +02:00
76b14436b4
lockdep: Remove save argument from check_prev_add()
...
There is only one caller which hands in save_trace as function pointer.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094802.803362058@linutronix.de
2019-04-29 12:37:53 +02:00
b1abe4622d
lockdep: Remove unused trace argument from print_circular_bug()
...
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094802.716274532@linutronix.de
2019-04-29 12:37:53 +02:00
746017ed8d
dma/debug: Simplify stracktrace retrieval
...
Replace the indirection through struct stack_trace with an invocation of
the storage array based interface.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Christoph Hellwig <hch@lst.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094802.248658135@linutronix.de
2019-04-29 12:37:50 +02:00
f93877214a
latency_top: Simplify stack trace handling
...
Replace the indirection through struct stack_trace with an invocation of
the storage array based interface.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094801.683039030@linutronix.de
2019-04-29 12:37:48 +02:00
1b59562d3a
backtrace-test: Simplify stack trace handling
...
Replace the indirection through struct stack_trace by using the storage
array based interfaces.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094801.501919093@linutronix.de
2019-04-29 12:37:47 +02:00
e9b98e162a
stacktrace: Provide helpers for common stack trace operations
...
All operations with stack traces are based on struct stack_trace. That's a
horrible construct as the struct is a kitchen sink for input and
output. Quite some usage sites embed it into their own data structures
which creates weird indirections.
There is absolutely no point in doing so. For all use cases a storage array
and the number of valid stack trace entries in the array is sufficient.
Provide helper functions which avoid the struct stack_trace indirection so
the usage sites can be cleaned up.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Steven Rostedt <rostedt@goodmis.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094801.324810708@linutronix.de
2019-04-29 12:37:46 +02:00
3d9a807291
tracing: Cleanup stack trace code
...
- Remove the extra array member of stack_dump_trace[] along with the
ARRAY_SIZE - 1 initialization for struct stack_trace :: max_entries.
Both are historical leftovers of no value. The stack tracer never exceeds
the array and there is no extra storage requirement either.
- Make variables which are only used in trace_stack.c static.
- Simplify the enable/disable logic.
- Rename stack_trace_print() as it's using the stack_trace_ namespace. Free
the name up for stack trace related functions.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Reviewed-by: Steven Rostedt <rostedt@goodmis.org >
Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com >
Cc: Andy Lutomirski <luto@kernel.org >
Cc: Alexander Potapenko <glider@google.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Christoph Lameter <cl@linux.com >
Cc: Pekka Enberg <penberg@kernel.org >
Cc: linux-mm@kvack.org
Cc: David Rientjes <rientjes@google.com >
Cc: Catalin Marinas <catalin.marinas@arm.com >
Cc: Dmitry Vyukov <dvyukov@google.com >
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com >
Cc: kasan-dev@googlegroups.com
Cc: Mike Rapoport <rppt@linux.vnet.ibm.com >
Cc: Akinobu Mita <akinobu.mita@gmail.com >
Cc: Christoph Hellwig <hch@lst.de >
Cc: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com >
Cc: Marek Szyprowski <m.szyprowski@samsung.com >
Cc: Johannes Thumshirn <jthumshirn@suse.de >
Cc: David Sterba <dsterba@suse.com >
Cc: Chris Mason <clm@fb.com >
Cc: Josef Bacik <josef@toxicpanda.com >
Cc: linux-btrfs@vger.kernel.org
Cc: dm-devel@redhat.com
Cc: Mike Snitzer <snitzer@redhat.com >
Cc: Alasdair Kergon <agk@redhat.com >
Cc: Daniel Vetter <daniel@ffwll.ch >
Cc: intel-gfx@lists.freedesktop.org
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com >
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com >
Cc: dri-devel@lists.freedesktop.org
Cc: David Airlie <airlied@linux.ie >
Cc: Jani Nikula <jani.nikula@linux.intel.com >
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com >
Cc: Tom Zanussi <tom.zanussi@linux.intel.com >
Cc: Miroslav Benes <mbenes@suse.cz >
Cc: linux-arch@vger.kernel.org
Link: https://lkml.kernel.org/r/20190425094801.230654524@linutronix.de
2019-04-29 12:37:46 +02:00
7a5da02de8
locking/lockdep: check for freed initmem in static_obj()
...
The following warning occurred on s390:
WARNING: CPU: 0 PID: 804 at kernel/locking/lockdep.c:1025 lockdep_register_key+0x30/0x150
This is because the check in static_obj() assumes that all memory within
[_stext, _end] belongs to static objects, which at least for s390 isn't
true. The init section is also part of this range, and freeing it allows
the buddy allocator to allocate memory from it. We have virt == phys for
the kernel on s390, so that such allocations would then have addresses
within the range [_stext, _end].
To fix this, introduce arch_is_kernel_initmem_freed(), similar to
arch_is_kernel_text/data(), and add it to the checks in static_obj().
This will always return 0 on architectures that do not define
arch_is_kernel_initmem_freed. On s390, it will return 1 if initmem has
been freed and the address is in the range [__init_begin, __init_end].
Signed-off-by: Gerald Schaefer <gerald.schaefer@de.ibm.com >
Reviewed-by: Heiko Carstens <heiko.carstens@de.ibm.com >
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com >
2019-04-29 10:47:10 +02:00