• Christian Borntraeger's avatar
    KVM: s390: do not block CPU on dirty logging · 70c88a00
    Christian Borntraeger authored
    When doing dirty logging on huge guests (e.g.600GB) we sometimes
    get rcu stall timeouts with backtraces like
    
    [ 2753.194083] ([<0000000000112fb2>] show_trace+0x12a/0x130)
    [ 2753.194092]  [<0000000000113024>] show_stack+0x6c/0xe8
    [ 2753.194094]  [<00000000001ee6a8>] rcu_pending+0x358/0xa48
    [ 2753.194099]  [<00000000001f20cc>] rcu_check_callbacks+0x84/0x168
    [ 2753.194102]  [<0000000000167654>] update_process_times+0x54/0x80
    [ 2753.194107]  [<00000000001bdb5c>] tick_sched_handle.isra.16+0x4c/0x60
    [ 2753.194113]  [<00000000001bdbd8>] tick_sched_timer+0x68/0x90
    [ 2753.194115]  [<0000000000182a88>] __run_hrtimer+0x88/0x1f8
    [ 2753.194119]  [<00000000001838ba>] hrtimer_interrupt+0x122/0x2b0
    [ 2753.194121]  [<000000000010d034>] do_extint+0x16c/0x170
    [ 2753.194123]  [<00000000005e206e>] ext_skip+0x38/0x3e
    [ 2753.194129]  [<000000000012157c>] gmap_test_and_clear_dirty+0xcc/0x118
    [ 2753.194134] ([<00000000001214ea>] gmap_test_and_clear_dirty+0x3a/0x118)
    [ 2753.194137]  [<0000000000132da4>] kvm_vm_ioctl_get_dirty_log+0xd4/0x1b0
    [ 2753.194143]  [<000000000012ac12>] kvm_vm_ioctl+0x21a/0x548
    [ 2753.194146]  [<00000000002b57f6>] do_vfs_ioctl+0x30e/0x518
    [ 2753.194149]  [<00000000002b5a9c>] SyS_ioctl+0x9c/0xb0
    [ 2753.194151]  [<00000000005e1ae6>] sysc_tracego+0x14/0x1a
    [ 2753.194153]  [<000003ffb75f3972>] 0x3ffb75f3972
    
    We should do a cond_resched in here.
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
    Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    70c88a00
kvm-s390.c 73.4 KB