Thread (52 messages) 52 messages, 8 authors, 2019-06-13

Re: CFQ idling kills I/O performance on ext4 with blkio cgroup controller

From: Paolo Valente <hidden>
Date: 2019-05-24 06:51:53
Also in: cgroups, linux-ext4, linux-fsdevel, lkml

Il giorno 24 mag 2019, alle ore 01:43, Srivatsa S. Bhat [off-list ref] ha scritto:

On 5/23/19 10:22 AM, Paolo Valente wrote:
quoted
quoted
Il giorno 23 mag 2019, alle ore 11:19, Paolo Valente [off-list ref] ha scritto:
quoted
Il giorno 23 mag 2019, alle ore 04:30, Srivatsa S. Bhat [off-list ref] ha scritto:
[...]
quoted
quoted
quoted
Also, I'm very happy to run additional tests or experiments to help
track down this issue. So, please don't hesitate to let me know if
you'd like me to try anything else or get you additional traces etc. :)
Here's to you!  :) I've attached a new small improvement that may
reduce fluctuations (path to apply on top of the others, of course).
Unfortunately, I don't expect this change to boost the throughput
though.

In contrast, I've thought of a solution that might be rather
effective: making BFQ aware (heuristically) of trivial
synchronizations between processes in different groups.  This will
require a little more work and time.
Hi Srivatsa,
I'm back :)

First, there was a mistake in the last patch I sent you, namely in
0001-block-bfq-re-sample-req-service-times-when-possible.patch.
Please don't apply that patch at all.

I've attached a new series of patches instead.  The first patch in this
series is a fixed version of the faulty patch above (if I'm creating too
much confusion, I'll send you again all patches to apply on top of
mainline).
No problem, I got it :)
quoted
This series also implements the more effective idea I told you a few
hours ago.  In my system, the loss is now around only 10%, even with
low_latency on.
When trying to run multiple dd tasks simultaneously, I get the kernel
panic shown below (mainline is fine, without these patches).
Could you please provide me somehow with a list *(bfq_serv_to_charge+0x21) ?

Thanks,
Paolo
[  568.232231] BUG: kernel NULL pointer dereference, address: 0000000000000024
[  568.232257] #PF: supervisor read access in kernel mode
[  568.232273] #PF: error_code(0x0000) - not-present page
[  568.232289] PGD 0 P4D 0
[  568.232299] Oops: 0000 [#1] SMP PTI
[  568.232312] CPU: 0 PID: 1029 Comm: dd Tainted: G            E     5.1.0-io-dbg-4+ #6
[  568.232334] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/05/2016
[  568.232388] RIP: 0010:bfq_serv_to_charge+0x21/0x50
[  568.232404] Code: ff e8 c3 5e bc ff 0f 1f 00 0f 1f 44 00 00 48 8b 86 20 01 00 00 55 48 89 e5 53 48 89 fb a8 40 75 09 83 be a0 01 00 00 01 76 09 <8b> 43 24 c1 e8 09 5b 5d c3 48 8b 7e 08 e8 5d fd ff ff 84 c0 75 ea
[  568.232473] RSP: 0018:ffffa73a42dab750 EFLAGS: 00010002
[  568.232489] RAX: 0000000000001052 RBX: 0000000000000000 RCX: ffffa73a42dab7a0
[  568.232510] RDX: ffffa73a42dab657 RSI: ffff8b7b6ba2ab70 RDI: 0000000000000000
[  568.232530] RBP: ffffa73a42dab758 R08: 0000000000000000 R09: 0000000000000001
[  568.232551] R10: 0000000000000000 R11: ffffa73a42dab7a0 R12: ffff8b7b6aed3800
[  568.232571] R13: 0000000000000000 R14: 0000000000000000 R15: ffff8b7b6aed3800
[  568.232592] FS:  00007fb5b0724540(0000) GS:ffff8b7b6f800000(0000) knlGS:0000000000000000
[  568.232615] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  568.232632] CR2: 0000000000000024 CR3: 00000004266be002 CR4: 00000000001606f0
[  568.232690] Call Trace:
[  568.232703]  bfq_select_queue+0x781/0x1000
[  568.232717]  bfq_dispatch_request+0x1d7/0xd60
[  568.232731]  ? bfq_bfqq_handle_idle_busy_switch.isra.36+0x2cd/0xb20
[  568.232751]  blk_mq_do_dispatch_sched+0xa8/0xe0
[  568.232765]  blk_mq_sched_dispatch_requests+0xe3/0x150
[  568.232783]  __blk_mq_run_hw_queue+0x56/0x100
[  568.232798]  __blk_mq_delay_run_hw_queue+0x107/0x160
[  568.232814]  blk_mq_run_hw_queue+0x75/0x190
[  568.232828]  blk_mq_sched_insert_requests+0x7a/0x100
[  568.232844]  blk_mq_flush_plug_list+0x1d7/0x280
[  568.232859]  blk_flush_plug_list+0xc2/0xe0
[  568.232872]  blk_finish_plug+0x2c/0x40
[  568.232886]  ext4_writepages+0x592/0xe60
[  568.233381]  ? ext4_mark_iloc_dirty+0x52b/0x860
[  568.233851]  do_writepages+0x3c/0xd0
[  568.234304]  ? ext4_mark_inode_dirty+0x1a0/0x1a0
[  568.234748]  ? do_writepages+0x3c/0xd0
[  568.235197]  ? __generic_write_end+0x4e/0x80
[  568.235644]  __filemap_fdatawrite_range+0xa5/0xe0
[  568.236089]  ? __filemap_fdatawrite_range+0xa5/0xe0
[  568.236533]  ? ext4_da_write_end+0x13c/0x280
[  568.236983]  file_write_and_wait_range+0x5a/0xb0
[  568.237407]  ext4_sync_file+0x11e/0x3e0
[  568.237819]  vfs_fsync_range+0x48/0x80
[  568.238217]  ext4_file_write_iter+0x234/0x3d0
[  568.238610]  ? _cond_resched+0x19/0x40
[  568.238982]  new_sync_write+0x112/0x190
[  568.239347]  __vfs_write+0x29/0x40
[  568.239705]  vfs_write+0xb1/0x1a0
[  568.240078]  ksys_write+0x89/0xc0
[  568.240428]  __x64_sys_write+0x1a/0x20
[  568.240771]  do_syscall_64+0x5b/0x140
[  568.241115]  entry_SYSCALL_64_after_hwframe+0x49/0xbe
[  568.241456] RIP: 0033:0x7fb5b02325f4
[  568.241787] Code: 00 f7 d8 64 89 02 48 c7 c0 ff ff ff ff eb b3 0f 1f 80 00 00 00 00 48 8d 05 09 11 2d 00 8b 00 85 c0 75 13 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 54 f3 c3 66 90 41 54 55 49 89 d4 53 48 89 f5
[  568.242842] RSP: 002b:00007ffcb12e2968 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[  568.243220] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fb5b02325f4
[  568.243616] RDX: 0000000000000200 RSI: 000055698f2ad000 RDI: 0000000000000001
[  568.244026] RBP: 0000000000000200 R08: 0000000000000004 R09: 0000000000000003
[  568.244401] R10: 00007fb5b04feca0 R11: 0000000000000246 R12: 000055698f2ad000
[  568.244775] R13: 0000000000000000 R14: 0000000000000000 R15: 000055698f2ad000
[  568.245154] Modules linked in: xt_MASQUERADE(E) nf_conntrack_netlink(E) nfnetlink(E) xfrm_user(E) xfrm_algo(E) xt_addrtype(E) br_netfilter(E) bridge(E) stp(E) llc(E) overlay(E) vmw_vsock_vmci_transport(E) vsock(E) ip6table_filter(E) ip6_tables(E) xt_conntrack(E) iptable_mangle(E) iptable_nat(E) nf_nat(E) iptable_filter
[  568.248651] CR2: 0000000000000024
[  568.249142] ---[ end trace 0ddd315e0a5bdfba ]---


Regards,
Srivatsa
VMware Photon OS
  

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help