Revision 9c29bcd189f4ab1644b7125713602532d0aefdb7 authored by Eric Dumazet on 21 September 2018, 22:27:48 UTC, committed by David S. Miller on 24 September 2018, 04:55:25 UTC
As diagnosed by Song Liu, ndo_poll_controller() can
be very dangerous on loaded hosts, since the cpu
calling ndo_poll_controller() might steal all NAPI
contexts (for all RX/TX queues of the NIC). This capture
can last for unlimited amount of time, since one
cpu is generally not able to drain all the queues under load.

mlx5 uses NAPI for TX completions, so we better let core
networking stack call the napi->poll() to avoid the capture.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent a24b66c
History
File Mode Size
c++
cs-etm-decoder
include
intel-pt-decoder
libunwind
scripting-engines
Build -rw-r--r-- 6.6 KB
PERF-VERSION-GEN -rwxr-xr-x 1.0 KB
annotate.c -rw-r--r-- 69.2 KB
annotate.h -rw-r--r-- 10.8 KB
arm-spe-pkt-decoder.c -rw-r--r-- 11.6 KB
arm-spe-pkt-decoder.h -rw-r--r-- 903 bytes
arm-spe.c -rw-r--r-- 5.3 KB
arm-spe.h -rw-r--r-- 748 bytes
auxtrace.c -rw-r--r-- 47.5 KB
auxtrace.h -rw-r--r-- 22.0 KB
block-range.c -rw-r--r-- 6.8 KB
block-range.h -rw-r--r-- 1.6 KB
bpf-loader.c -rw-r--r-- 40.4 KB
bpf-loader.h -rw-r--r-- 6.6 KB
bpf-prologue.c -rw-r--r-- 11.8 KB
bpf-prologue.h -rw-r--r-- 906 bytes
branch.c -rw-r--r-- 2.9 KB
branch.h -rw-r--r-- 566 bytes
build-id.c -rw-r--r-- 19.8 KB
build-id.h -rw-r--r-- 2.0 KB
cache.h -rw-r--r-- 737 bytes
call-path.c -rw-r--r-- 2.8 KB
call-path.h -rw-r--r-- 2.2 KB
callchain.c -rw-r--r-- 36.1 KB
callchain.h -rw-r--r-- 8.0 KB
cgroup.c -rw-r--r-- 4.9 KB
cgroup.h -rw-r--r-- 640 bytes
cloexec.c -rw-r--r-- 2.0 KB
cloexec.h -rw-r--r-- 171 bytes
color.c -rw-r--r-- 4.7 KB
color.h -rw-r--r-- 1.7 KB
comm.c -rw-r--r-- 2.8 KB
comm.h -rw-r--r-- 600 bytes
compress.h -rw-r--r-- 397 bytes
config.c -rw-r--r-- 16.4 KB
config.h -rw-r--r-- 2.1 KB
counts.c -rw-r--r-- 1.1 KB
counts.h -rw-r--r-- 843 bytes
cpumap.c -rw-r--r-- 13.7 KB
cpumap.h -rw-r--r-- 2.1 KB
cs-etm.c -rw-r--r-- 36.8 KB
cs-etm.h -rw-r--r-- 1.9 KB
ctype.c -rw-r--r-- 2.0 KB
data-convert-bt.c -rw-r--r-- 39.4 KB
data-convert-bt.h -rw-r--r-- 341 bytes
data-convert.h -rw-r--r-- 180 bytes
data.c -rw-r--r-- 3.6 KB
data.h -rw-r--r-- 1.4 KB
db-export.c -rw-r--r-- 11.1 KB
db-export.h -rw-r--r-- 3.7 KB
debug.c -rw-r--r-- 5.4 KB
debug.h -rw-r--r-- 2.0 KB
demangle-java.c -rw-r--r-- 4.2 KB
demangle-java.h -rw-r--r-- 288 bytes
demangle-rust.c -rw-r--r-- 6.5 KB
demangle-rust.h -rw-r--r-- 209 bytes
drv_configs.c -rw-r--r-- 1.8 KB
drv_configs.h -rw-r--r-- 844 bytes
dso.c -rw-r--r-- 34.4 KB
dso.h -rw-r--r-- 10.3 KB
dump-insn.c -rw-r--r-- 317 bytes
dump-insn.h -rw-r--r-- 431 bytes
dwarf-aux.c -rw-r--r-- 33.1 KB
dwarf-aux.h -rw-r--r-- 5.0 KB
dwarf-regs.c -rw-r--r-- 1.8 KB
env.c -rw-r--r-- 3.7 KB
env.h -rw-r--r-- 1.6 KB
event.c -rw-r--r-- 42.7 KB
event.h -rw-r--r-- 19.1 KB
evlist.c -rw-r--r-- 41.1 KB
evlist.h -rw-r--r-- 10.5 KB
evsel.c -rw-r--r-- 71.8 KB
evsel.h -rw-r--r-- 14.0 KB
evsel_fprintf.c -rw-r--r-- 5.9 KB
expr.h -rw-r--r-- 588 bytes
expr.y -rw-r--r-- 4.4 KB
find-vdso-map.c -rw-r--r-- 617 bytes
genelf.c -rw-r--r-- 11.4 KB
genelf.h -rw-r--r-- 1.8 KB
genelf_debug.c -rw-r--r-- 14.0 KB
generate-cmdlist.sh -rwxr-xr-x 1.2 KB
group.h -rw-r--r-- 161 bytes
header.c -rw-r--r-- 83.0 KB
header.h -rw-r--r-- 5.0 KB
help-unknown-cmd.c -rw-r--r-- 3.0 KB
help-unknown-cmd.h -rw-r--r-- 0 bytes
hist.c -rw-r--r-- 62.2 KB
hist.h -rw-r--r-- 15.7 KB
intel-bts.c -rw-r--r-- 22.6 KB
intel-bts.h -rw-r--r-- 1.2 KB
intel-pt.c -rw-r--r-- 64.0 KB
intel-pt.h -rw-r--r-- 1.4 KB
intlist.c -rw-r--r-- 3.0 KB
intlist.h -rw-r--r-- 2.1 KB
jit.h -rw-r--r-- 305 bytes
jitdump.c -rw-r--r-- 17.4 KB
jitdump.h -rw-r--r-- 2.8 KB
kvm-stat.h -rw-r--r-- 3.2 KB
levenshtein.c -rw-r--r-- 2.6 KB
levenshtein.h -rw-r--r-- 281 bytes
llvm-utils.c -rw-r--r-- 14.3 KB
llvm-utils.h -rw-r--r-- 2.0 KB
lzma.c -rw-r--r-- 2.6 KB
machine.c -rw-r--r-- 60.2 KB
machine.h -rw-r--r-- 9.3 KB
map.c -rw-r--r-- 19.9 KB
map.h -rw-r--r-- 6.7 KB
mem-events.c -rw-r--r-- 9.2 KB
mem-events.h -rw-r--r-- 2.8 KB
mem2node.c -rw-r--r-- 2.7 KB
mem2node.h -rw-r--r-- 383 bytes
memswap.c -rw-r--r-- 401 bytes
memswap.h -rw-r--r-- 208 bytes
metricgroup.c -rw-r--r-- 11.1 KB
metricgroup.h -rw-r--r-- 791 bytes
mmap.c -rw-r--r-- 7.9 KB
mmap.h -rw-r--r-- 2.7 KB
namespaces.c -rw-r--r-- 4.8 KB
namespaces.h -rw-r--r-- 1.5 KB
ordered-events.c -rw-r--r-- 7.4 KB
ordered-events.h -rw-r--r-- 1.6 KB
parse-branch-options.c -rw-r--r-- 2.2 KB
parse-branch-options.h -rw-r--r-- 307 bytes
parse-events.c -rw-r--r-- 64.5 KB
parse-events.h -rw-r--r-- 7.1 KB
parse-events.l -rw-r--r-- 11.1 KB
parse-events.y -rw-r--r-- 13.8 KB
parse-regs-options.c -rw-r--r-- 1.3 KB
parse-regs-options.h -rw-r--r-- 236 bytes
path.c -rw-r--r-- 1.9 KB
path.h -rw-r--r-- 409 bytes
perf-hooks-list.h -rw-r--r-- 62 bytes
perf-hooks.c -rw-r--r-- 2.0 KB
perf-hooks.h -rw-r--r-- 874 bytes
perf_regs.c -rw-r--r-- 730 bytes
perf_regs.h -rw-r--r-- 933 bytes
pmu.c -rw-r--r-- 32.8 KB
pmu.h -rw-r--r-- 2.7 KB
pmu.l -rw-r--r-- 571 bytes
pmu.y -rw-r--r-- 1.3 KB
print_binary.c -rw-r--r-- 1.4 KB
print_binary.h -rw-r--r-- 945 bytes
probe-event.c -rw-r--r-- 80.3 KB
probe-event.h -rw-r--r-- 6.1 KB
probe-file.c -rw-r--r-- 22.5 KB
probe-file.h -rw-r--r-- 2.5 KB
probe-finder.c -rw-r--r-- 46.4 KB
probe-finder.h -rw-r--r-- 3.4 KB
pstack.c -rw-r--r-- 1.6 KB
pstack.h -rw-r--r-- 494 bytes
python-ext-sources -rw-r--r-- 594 bytes
python.c -rw-r--r-- 36.3 KB
rb_resort.h -rw-r--r-- 4.9 KB
rblist.c -rw-r--r-- 2.4 KB
rblist.h -rw-r--r-- 1.4 KB
record.c -rw-r--r-- 7.1 KB
rwsem.c -rw-r--r-- 674 bytes
rwsem.h -rw-r--r-- 393 bytes
s390-cpumsf-kernel.h -rw-r--r-- 2.5 KB
s390-cpumsf.c -rw-r--r-- 27.6 KB
s390-cpumsf.h -rw-r--r-- 534 bytes
sane_ctype.h -rw-r--r-- 1.5 KB
session.c -rw-r--r-- 60.1 KB
session.h -rw-r--r-- 3.9 KB
setns.c -rw-r--r-- 139 bytes
setup.py -rw-r--r-- 2.3 KB
smt.c -rw-r--r-- 845 bytes
smt.h -rw-r--r-- 57 bytes
sort.c -rw-r--r-- 70.6 KB
sort.h -rw-r--r-- 6.8 KB
srcline.c -rw-r--r-- 13.7 KB
srcline.h -rw-r--r-- 1.7 KB
stat-shadow.c -rw-r--r-- 27.6 KB
stat.c -rw-r--r-- 10.0 KB
stat.h -rw-r--r-- 4.1 KB
strbuf.c -rw-r--r-- 2.9 KB
strbuf.h -rw-r--r-- 2.9 KB
strfilter.c -rw-r--r-- 6.2 KB
strfilter.h -rw-r--r-- 2.5 KB
string.c -rw-r--r-- 8.4 KB
string2.h -rw-r--r-- 1.2 KB
strlist.c -rw-r--r-- 4.2 KB
strlist.h -rw-r--r-- 2.5 KB
svghelper.c -rw-r--r-- 22.6 KB
svghelper.h -rw-r--r-- 1.7 KB
symbol-elf.c -rw-r--r-- 49.7 KB
symbol-minimal.c -rw-r--r-- 7.2 KB
symbol.c -rw-r--r-- 50.1 KB
symbol.h -rw-r--r-- 10.2 KB
symbol_fprintf.c -rw-r--r-- 1.8 KB
syscalltbl.c -rw-r--r-- 4.6 KB
syscalltbl.h -rw-r--r-- 664 bytes
target.c -rw-r--r-- 3.4 KB
target.h -rw-r--r-- 2.1 KB
term.c -rw-r--r-- 728 bytes
term.h -rw-r--r-- 239 bytes
thread-stack.c -rw-r--r-- 14.2 KB
thread-stack.h -rw-r--r-- 3.0 KB
thread.c -rw-r--r-- 8.4 KB
thread.h -rw-r--r-- 3.4 KB
thread_map.c -rw-r--r-- 9.8 KB
thread_map.h -rw-r--r-- 1.7 KB
time-utils.c -rw-r--r-- 7.9 KB
time-utils.h -rw-r--r-- 830 bytes
tool.h -rw-r--r-- 1.8 KB
top.c -rw-r--r-- 3.5 KB
top.h -rw-r--r-- 1.3 KB
trace-event-info.c -rw-r--r-- 11.4 KB
trace-event-parse.c -rw-r--r-- 5.7 KB
trace-event-read.c -rw-r--r-- 8.9 KB
trace-event-scripting.c -rw-r--r-- 4.7 KB
trace-event.c -rw-r--r-- 2.5 KB
trace-event.h -rw-r--r-- 3.1 KB
trigger.h -rw-r--r-- 2.0 KB
tsc.c -rw-r--r-- 656 bytes
tsc.h -rw-r--r-- 728 bytes
units.c -rw-r--r-- 1.1 KB
units.h -rw-r--r-- 391 bytes
unwind-libdw.c -rw-r--r-- 5.5 KB
unwind-libdw.h -rw-r--r-- 553 bytes
unwind-libunwind-local.c -rw-r--r-- 16.9 KB
unwind-libunwind.c -rw-r--r-- 2.2 KB
unwind.h -rw-r--r-- 2.3 KB
usage.c -rw-r--r-- 556 bytes
util-cxx.h -rw-r--r-- 460 bytes
util.c -rw-r--r-- 9.5 KB
util.h -rw-r--r-- 2.1 KB
values.c -rw-r--r-- 7.7 KB
values.h -rw-r--r-- 661 bytes
vdso.c -rw-r--r-- 7.1 KB
vdso.h -rw-r--r-- 639 bytes
xyarray.c -rw-r--r-- 639 bytes
xyarray.h -rw-r--r-- 713 bytes
zlib.c -rw-r--r-- 1.8 KB

back to top