On Friday, November 2, 2018 2:37:08 PM MST Jens Axboe wrote:
> On 11/2/18 2:32 PM, Thomas Fjellstrom wrote:
> > On Saturday, October 27, 2018 1:20:10 PM MDT Jens Axboe wrote:
> >> On Oct 27, 2018, at 12:40 PM, Thomas Fjellstrom <[email protected]>
> >
> > [snip]
> >
> >> Can you try 4.19? A patch went in since 4.18 that fixes a starvation
> >> issue
> >> around requeue conditions, which SATA is the one to most often hit.
> >>
> >> Jens
> >
> > I just had to do a clean, and I have the mq kernel options I mentioned in
> > my previous mail enabled. (mq should be disabled) and it appears to still
> > be causing issues. current io scheduler appears to be cfq, and it took
> > that "make clean" about 4 minutes, a lot of that time was spent with
> > plasma, intelij, and chrome all starved of IO.
> >
> > I did switch to a terminal and checked iostat -d 1, and it showed very
> > little actual io for the time I was looking at it.
> >
> > I have no idea what's going on.
>
> If you're using cfq, then it's not using mq at all. Maybe do something ala:
Yeah, I switched off mq to test. I mentioned it in a previous mail.
> # perf record -ag -- sleep 10
>
> while the slowdown is happening and then do perf report -g --no-children and
> see if that yields anything interesting. Sounds like time is being spent
> elsewhere and you aren't actually waiting on IO.
Ok, with the 4.19.1 kernel from linux-stable I've managed to catch the issue
during real use, rather than just a dd command.
I should note that I have swap turned off, so I'm not sure what
the "swapper" process in the below log is doing.
I also see the problem with swap enabled. But right now I'd rather
certain apps die rather than slow the entire system down.
I also have a perf report -t log if that'd be helpful. It shows a lot of "use"
in do_idle/acpi_idle_do_entry though I presume that's actual real idle time,
not actual use. The next most eye catching item in the -t log is chrome
spending
17% of its time in glibc's free function.
(the top 100~ lines from perf report -g)
# Total Lost Samples: 0
#
# Samples: 456K of event 'cycles'
# Event count (approx.): 136347735217
#
# Overhead Command Shared Object Symbol
# ........ ............... ......................................
.........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
#
25.64% swapper [kernel.kallsyms] [k]
acpi_idle_do_entry
|
---0xffffffffa16000d4
|
|--22.23%--start_secondary
| cpu_startup_entry
| do_idle
| cpuidle_enter_state
| acpi_idle_enter
| acpi_idle_do_entry
|
--3.41%--start_kernel
cpu_startup_entry
do_idle
cpuidle_enter_state
acpi_idle_enter
acpi_idle_do_entry
0.61% swapper [kernel.kallsyms] [k]
apic_timer_interrupt
|
---0xffffffffa16000d4
|
--0.52%--start_secondary
cpu_startup_entry
do_idle
|
--0.52%--cpuidle_enter_state
0.54% chrome chrome [.] _fini
0.42% swapper [kernel.kallsyms] [k]
native_sched_clock
0.41% swapper [kernel.kallsyms] [k]
menu_select
0.40% swapper [kernel.kallsyms] [k]
check_preemption_disabled
0.35% http.so libQt5Core.so.5.11.2 [.]
QTranslatorPrivate::do_translate
0.35% swapper [kernel.kallsyms] [k]
x86_pmu_disable_all
0.32% TaskSchedulerFo [kernel.kallsyms] [k]
osq_lock
0.31% Chrome_IOThread chrome [.] _fini
0.30% chrome libpthread-2.27.so [.]
__pthread_mutex_lock
0.29% swapper [kernel.kallsyms] [k]
_raw_spin_lock_irqsave
0.28% swapper [kernel.kallsyms] [k]
read_tsc
0.26% chrome libpthread-2.27.so [.]
__pthread_mutex_unlock_usercnt
0.26% swapper [kernel.kallsyms] [k]
reschedule_interrupt
0.24% swapper [kernel.kallsyms] [k]
_raw_spin_lock
0.24% swapper [kernel.kallsyms] [k]
__sched_text_start
0.24% swapper [kernel.kallsyms] [k]
native_load_gs_index
0.23% swapper [kernel.kallsyms] [k]
__switch_to
0.22% swapper [kernel.kallsyms] [k] do_idle
0.21% TaskSchedulerFo [kernel.kallsyms] [k]
mutex_lock
0.21% swapper [kernel.kallsyms] [k]
cpuidle_enter_state
0.21% TaskSchedulerFo chrome [.]
0x000000000306c000
0.20% chrome [kernel.kallsyms] [k]
native_sched_clock
0.20% TaskSchedulerFo [kernel.kallsyms] [k]
mutex_unlock
0.18% chrome [kernel.kallsyms] [k]
entry_SYSCALL_64
0.18% thumbnail.so ld-2.27.so [.]
do_lookup_x
0.17% Xorg [kernel.kallsyms] [k]
delay_tsc
0.17% rm [ext4] [k]
ext4_mark_iloc_dirty
0.16% swapper [kernel.kallsyms] [k]
update_blocked_averages
0.16% chrome [kernel.kallsyms] [k]
check_preemption_disabled
0.15% swapper [kernel.kallsyms] [k]
update_load_avg
0.15% swapper [kernel.kallsyms] [k]
interrupt_entry
0.15% swapper [kernel.kallsyms] [k]
ktime_get
0.15% swapper [kernel.kallsyms] [k]
switch_mm_irqs_off
0.15% TaskSchedulerFo [kernel.kallsyms] [k]
__mutex_lock.isra.5
0.14% rm [kernel.kallsyms] [k]
check_preemption_disabled
0.14% TaskSchedulerFo chrome [.]
0x000000000306c009
0.13% swapper [kernel.kallsyms] [k]
__update_load_avg_se
0.13% chrome libc-2.27.so [.]
__memcpy_ssse3
0.13% swapper [kernel.kallsyms] [k]
__update_load_avg_cfs_rq
0.12% http.so libQt5Core.so.5.11.2 [.]
QCoreApplicationPrivate::sendPostedEvents
0.12% rm [kernel.kallsyms] [k]
__find_get_block
0.12% swapper [kernel.kallsyms] [k]
timerqueue_add
0.12% swapper [kernel.kallsyms] [k]
acpi_idle_enter
0.12% apt-cache libz.so.1.2.11 [.]
adler32_z
0.12% swapper [kernel.kallsyms] [k]
rcu_dynticks_eqs_exit
0.12% Xorg [radeon] [k]
cail_reg_read
0.12% swapper [kernel.kallsyms] [k]
trace_hardirqs_off
0.11% swapper [kernel.kallsyms] [k]
set_next_entity
0.11% swapper [kernel.kallsyms] [k]
_raw_spin_unlock_irqrestore
0.11% http.so libQt5Core.so.5.11.2 [.]
QCoreApplication::translate
0.11% http.so [kernel.kallsyms] [k]
__switch_to
0.11% Chrome_ChildIOT chrome [.] _fini
0.11% chrome [kernel.kallsyms] [k] __fget
0.10% swapper [kernel.kallsyms] [k]
__hrtimer_next_event_base
0.10% http.so [kernel.kallsyms] [k]
native_load_gs_index
0.10% swapper [kernel.kallsyms] [k]
rcu_check_callbacks
0.10% drkonqi ld-2.27.so [.]
do_lookup_x
0.10% TaskSchedulerFo chrome [.]
0x000000000306e42b
0.10% http.so [kernel.kallsyms] [k]
native_sched_clock
0.10% swapper [kernel.kallsyms] [k]
x86_pmu_enable_all
0.10% swapper [kernel.kallsyms] [k]
find_busiest_group
0.10% radeon_cs:0 [kernel.kallsyms] [k]
refcount_sub_and_test_checked
0.10% http.so [vdso] [.]
0x00000000000008d9
Thanks,
--
Thomas Fjellstrom
[email protected]