Re: suspicious RCU usage with kvm_pr
On 9/18/15, Thomas Huthwrote: > On 16/09/15 12:59, Denis Kirjanov wrote: >> On 9/16/15, Thomas Huth wrote: >>> On 16/09/15 10:51, Denis Kirjanov wrote: Hi, I see the following trace on qemu startup (ps700 blade): v4.2-11169-g64d1def [ 143.369638] === [ 143.369640] [ INFO: suspicious RCU usage. ] [ 143.369643] 4.2.0-11169-g64d1def #10 Tainted: G S [ 143.369645] --- [ 143.369647] arch/powerpc/kvm/../../../virt/kvm/kvm_main.c:3310 suspicious rcu_dereference_check() usage! [ 143.369649] other info that might help us debug this: [ 143.369652] rcu_scheduler_active = 1, debug_locks = 1 [ 143.369655] 1 lock held by qemu-system-ppc/2292: [ 143.369656] #0: (>mutex){+.+.+.}, at: [] .vcpu_load+0x2c/0xb0 [kvm] [ 143.369672] stack backtrace: [ 143.369675] CPU: 12 PID: 2292 Comm: qemu-system-ppc Tainted: G S 4.2.0-11169-g64d1def #10 [ 143.369677] Call Trace: [ 143.369682] [c001d08bf200] [c0816dd0] .dump_stack+0x98/0xd4 (unreliable) [ 143.369687] [c001d08bf280] [c00f7058] .lockdep_rcu_suspicious+0x108/0x170 [ 143.369696] [c001d08bf310] [d42296d8] .kvm_io_bus_read+0x1d8/0x220 [kvm] [ 143.369705] [c001d08bf3c0] [d422f980] .kvmppc_h_logical_ci_load+0x60/0xe0 [kvm] >>> >>> Could it be that we need to srcu_read_lock(>kvm->srcu) before >>> calling the kvm_io_bus_read/write() function in the >>> kvmppc_h_logical_ci_load/store() function? >> >> I haven't had time to dig into this. I'll try it. > > FYI, I had the same problem with kvm_hv, so I tried to come up with a > patch: > > https://patchwork.ozlabs.org/patch/519143/ > > Sorry, forgot to CC: you there, but it would be great if you could give > it a try! It fixed the issue. Thanks! > > Thomas > > ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: suspicious RCU usage with kvm_pr
On 16/09/15 12:59, Denis Kirjanov wrote: > On 9/16/15, Thomas Huthwrote: >> On 16/09/15 10:51, Denis Kirjanov wrote: >>> Hi, >>> >>> I see the following trace on qemu startup (ps700 blade): >>> >>> v4.2-11169-g64d1def >>> >>> >>> [ 143.369638] === >>> [ 143.369640] [ INFO: suspicious RCU usage. ] >>> [ 143.369643] 4.2.0-11169-g64d1def #10 Tainted: G S >>> [ 143.369645] --- >>> [ 143.369647] arch/powerpc/kvm/../../../virt/kvm/kvm_main.c:3310 >>> suspicious rcu_dereference_check() usage! >>> [ 143.369649] >>> other info that might help us debug this: >>> >>> [ 143.369652] >>> rcu_scheduler_active = 1, debug_locks = 1 >>> [ 143.369655] 1 lock held by qemu-system-ppc/2292: >>> [ 143.369656] #0: (>mutex){+.+.+.}, at: [] >>> .vcpu_load+0x2c/0xb0 [kvm] >>> [ 143.369672] >>> stack backtrace: >>> [ 143.369675] CPU: 12 PID: 2292 Comm: qemu-system-ppc Tainted: G S >>> 4.2.0-11169-g64d1def #10 >>> [ 143.369677] Call Trace: >>> [ 143.369682] [c001d08bf200] [c0816dd0] >>> .dump_stack+0x98/0xd4 (unreliable) >>> [ 143.369687] [c001d08bf280] [c00f7058] >>> .lockdep_rcu_suspicious+0x108/0x170 >>> [ 143.369696] [c001d08bf310] [d42296d8] >>> .kvm_io_bus_read+0x1d8/0x220 [kvm] >>> [ 143.369705] [c001d08bf3c0] [d422f980] >>> .kvmppc_h_logical_ci_load+0x60/0xe0 [kvm] >> >> Could it be that we need to srcu_read_lock(>kvm->srcu) before >> calling the kvm_io_bus_read/write() function in the >> kvmppc_h_logical_ci_load/store() function? > > I haven't had time to dig into this. I'll try it. FYI, I had the same problem with kvm_hv, so I tried to come up with a patch: https://patchwork.ozlabs.org/patch/519143/ Sorry, forgot to CC: you there, but it would be great if you could give it a try! Thomas ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
suspicious RCU usage with kvm_pr
Hi, I see the following trace on qemu startup (ps700 blade): v4.2-11169-g64d1def [ 143.369638] === [ 143.369640] [ INFO: suspicious RCU usage. ] [ 143.369643] 4.2.0-11169-g64d1def #10 Tainted: G S [ 143.369645] --- [ 143.369647] arch/powerpc/kvm/../../../virt/kvm/kvm_main.c:3310 suspicious rcu_dereference_check() usage! [ 143.369649] other info that might help us debug this: [ 143.369652] rcu_scheduler_active = 1, debug_locks = 1 [ 143.369655] 1 lock held by qemu-system-ppc/2292: [ 143.369656] #0: (>mutex){+.+.+.}, at: [] .vcpu_load+0x2c/0xb0 [kvm] [ 143.369672] stack backtrace: [ 143.369675] CPU: 12 PID: 2292 Comm: qemu-system-ppc Tainted: G S 4.2.0-11169-g64d1def #10 [ 143.369677] Call Trace: [ 143.369682] [c001d08bf200] [c0816dd0] .dump_stack+0x98/0xd4 (unreliable) [ 143.369687] [c001d08bf280] [c00f7058] .lockdep_rcu_suspicious+0x108/0x170 [ 143.369696] [c001d08bf310] [d42296d8] .kvm_io_bus_read+0x1d8/0x220 [kvm] [ 143.369705] [c001d08bf3c0] [d422f980] .kvmppc_h_logical_ci_load+0x60/0xe0 [kvm] [ 143.369712] [c001d08bf450] [d42d8d30] .kvmppc_h_pr+0x4f0/0xc80 [kvm_pr] [ 143.369718] [c001d08bf570] [d42d9a30] .kvmppc_core_emulate_op_pr+0x270/0x720 [kvm_pr] [ 143.369723] [c001d08bf630] [d42d0684] .kvmppc_emulate_instruction+0xd4/0x7c0 [kvm_pr] [ 143.369728] [c001d08bf6f0] [d42d82f8] .kvmppc_handle_exit_pr+0xc98/0xf80 [kvm_pr] [ 143.369734] [c001d08bf790] [d42dab2c] after_sprg3_load+0x88/0x98 [kvm_pr] [ 143.369739] [c001d08bf960] [d42d742c] .kvmppc_vcpu_run_pr+0xdc/0x190 [kvm_pr] [ 143.369748] [c001d08bf9f0] [d423114c] .kvmppc_vcpu_run+0x2c/0x40 [kvm] [ 143.369756] [c001d08bfa60] [d422e4b4] .kvm_arch_vcpu_ioctl_run+0x54/0x170 [kvm] [ 143.369764] [c001d08bfaf0] [d4226298] .kvm_vcpu_ioctl+0x5f8/0x8b0 [kvm] [ 143.369768] [c001d08bfcb0] [c0297c24] .do_vfs_ioctl+0x4d4/0x820 [ 143.369771] [c001d08bfd90] [c0297fc8] .SyS_ioctl+0x58/0xb0 [ 143.369775] [c001d08bfe30] [c000916c] system_call+0x38/0xd0 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: suspicious RCU usage with kvm_pr
On 9/16/15, Thomas Huthwrote: > On 16/09/15 10:51, Denis Kirjanov wrote: >> Hi, >> >> I see the following trace on qemu startup (ps700 blade): >> >> v4.2-11169-g64d1def >> >> >> [ 143.369638] === >> [ 143.369640] [ INFO: suspicious RCU usage. ] >> [ 143.369643] 4.2.0-11169-g64d1def #10 Tainted: G S >> [ 143.369645] --- >> [ 143.369647] arch/powerpc/kvm/../../../virt/kvm/kvm_main.c:3310 >> suspicious rcu_dereference_check() usage! >> [ 143.369649] >> other info that might help us debug this: >> >> [ 143.369652] >> rcu_scheduler_active = 1, debug_locks = 1 >> [ 143.369655] 1 lock held by qemu-system-ppc/2292: >> [ 143.369656] #0: (>mutex){+.+.+.}, at: [] >> .vcpu_load+0x2c/0xb0 [kvm] >> [ 143.369672] >> stack backtrace: >> [ 143.369675] CPU: 12 PID: 2292 Comm: qemu-system-ppc Tainted: G S >> 4.2.0-11169-g64d1def #10 >> [ 143.369677] Call Trace: >> [ 143.369682] [c001d08bf200] [c0816dd0] >> .dump_stack+0x98/0xd4 (unreliable) >> [ 143.369687] [c001d08bf280] [c00f7058] >> .lockdep_rcu_suspicious+0x108/0x170 >> [ 143.369696] [c001d08bf310] [d42296d8] >> .kvm_io_bus_read+0x1d8/0x220 [kvm] >> [ 143.369705] [c001d08bf3c0] [d422f980] >> .kvmppc_h_logical_ci_load+0x60/0xe0 [kvm] > > Could it be that we need to srcu_read_lock(>kvm->srcu) before > calling the kvm_io_bus_read/write() function in the > kvmppc_h_logical_ci_load/store() function? I haven't had time to dig into this. I'll try it. Thanks > > Thomas > > ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: suspicious RCU usage with kvm_pr
On 16/09/15 10:51, Denis Kirjanov wrote: > Hi, > > I see the following trace on qemu startup (ps700 blade): > > v4.2-11169-g64d1def > > > [ 143.369638] === > [ 143.369640] [ INFO: suspicious RCU usage. ] > [ 143.369643] 4.2.0-11169-g64d1def #10 Tainted: G S > [ 143.369645] --- > [ 143.369647] arch/powerpc/kvm/../../../virt/kvm/kvm_main.c:3310 > suspicious rcu_dereference_check() usage! > [ 143.369649] > other info that might help us debug this: > > [ 143.369652] > rcu_scheduler_active = 1, debug_locks = 1 > [ 143.369655] 1 lock held by qemu-system-ppc/2292: > [ 143.369656] #0: (>mutex){+.+.+.}, at: [] > .vcpu_load+0x2c/0xb0 [kvm] > [ 143.369672] > stack backtrace: > [ 143.369675] CPU: 12 PID: 2292 Comm: qemu-system-ppc Tainted: G S > 4.2.0-11169-g64d1def #10 > [ 143.369677] Call Trace: > [ 143.369682] [c001d08bf200] [c0816dd0] > .dump_stack+0x98/0xd4 (unreliable) > [ 143.369687] [c001d08bf280] [c00f7058] > .lockdep_rcu_suspicious+0x108/0x170 > [ 143.369696] [c001d08bf310] [d42296d8] > .kvm_io_bus_read+0x1d8/0x220 [kvm] > [ 143.369705] [c001d08bf3c0] [d422f980] > .kvmppc_h_logical_ci_load+0x60/0xe0 [kvm] Could it be that we need to srcu_read_lock(>kvm->srcu) before calling the kvm_io_bus_read/write() function in the kvmppc_h_logical_ci_load/store() function? Thomas ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev