Received: by 10.223.164.202 with SMTP id h10csp73122wrb; Mon, 6 Nov 2017 02:50:35 -0800 (PST) X-Google-Smtp-Source: ABhQp+QDgQ2ez8ChoKodvlz5BjlPIFG+Aqvzptgak1CBVkC8IVtZdy3Yn3bJBObR3m8jH2uhP01r X-Received: by 10.84.136.36 with SMTP id 33mr14530244plk.108.1509965435634; Mon, 06 Nov 2017 02:50:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1509965435; cv=none; d=google.com; s=arc-20160816; b=Ctc3mNIPSoNshYarUfydWG+biA2scA14kbvXuszP4qg+FTLcQBm6S8SxjPgGIvx8IJ l8hqTRLFyjSFokkIF7gNBZF1/ZxKA6Dz3aZ6Fjg4zc89tfO9sRF1XlkOPWMBrCP8BYJP Z3w/2FKouQEbK1wPsAQ8lEZTiXiSVdJ7saN79QmyfKrUB1xP0hBJ6kcd8fJi0UkKDn03 HR+HUAJCb9Kqf2Sbwr6rKOxgUDr5AMFqmFHHq7D7J7LFPFdr3BswIVBNTGe7eXawPX+n fcuVdJkud5ekA8MVu9ztZ6WXberD/qA5fizZWiiR/smoX5Gvz3olNEskNg/jqFzRg3TW 6iEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :references:in-reply-to:mime-version:dkim-signature :arc-authentication-results; bh=3DKSpGH+ztuPE9f0vOXZRwKTgkgg1vfdRCs1NmokqsI=; b=rbU2Qcuo38xKtF5Es/Es2KOvAtGl+VR5lS3PcPMJcQGkg2xaF1xVMo2K4TcRMPGJop UH0AaP20ho8Vm+o62GhB+AAuGVQXT7j/Amu+aOX7wUhJOk67FMnKqritsNiD0gjhICM0 kujIqgIZjFqC+ybFY0fxImHuEfOhiGesUq5tJIaD+D87tt8F4sgIVtMjkXg0H87QjfcV qHdR0d+2J1x2VXwDRcu4Q1eXxTYSAUUBYpD6HiT0eFm7ABOTCjnwVHPYOerFfovyBEvu hyzvzQDAi1Pl1xDJXI2Yb5h54JJMI5bvxdU31jAR267rDB7PxX36sYJFOaDBe5pepM1N xe9A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Y4Cr3+cc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id f66si12001237pfc.315.2017.11.06.02.50.21; Mon, 06 Nov 2017 02:50:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Y4Cr3+cc; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752266AbdKFKtj (ORCPT + 99 others); Mon, 6 Nov 2017 05:49:39 -0500 Received: from mail-oi0-f68.google.com ([209.85.218.68]:47779 "EHLO mail-oi0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751490AbdKFKtW (ORCPT ); Mon, 6 Nov 2017 05:49:22 -0500 Received: by mail-oi0-f68.google.com with SMTP id h200so6737403oib.4; Mon, 06 Nov 2017 02:49:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=3DKSpGH+ztuPE9f0vOXZRwKTgkgg1vfdRCs1NmokqsI=; b=Y4Cr3+ccPZpBRISnC6Na0SnG6i77jPxwfJjXAKc35krtcsMQ5jpl2nl0fZw9HkkVxf VwA5LnX45aHxXMKV7+Q+U9fWWjl1m1yX2qWVm6lhw40emY3Z2pr1cn/PLHokkp667VtR AApye87YlEJAv3yHdgw+w+ACHrk+AmPLamAxmzL28hdYukUUdN6yDV+THm4jlLuGvieQ cI67kxLbbHUusAbZSYdAS/IzvFLQMaolEDT9feVIk0+/qkn8fBXUOaPDZK4OyV8ne+GA SSmvIg8z5nXuAp/eA/IsSBFVANl5l/RyRlHftAncAWwAxUFhfgn6G/6mxZ4pFARj5Fri gPNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=3DKSpGH+ztuPE9f0vOXZRwKTgkgg1vfdRCs1NmokqsI=; b=mWpRq3eAsBe3yBG94vFQNTobZRgfseqEjPYRZfWdexLNYMtqoWc3Jl0RQX9XUIdDqO VfrR8glvUeA+tisDB7bBUw2ou99Ql55ldiI1Oc19iFZAkonPgdApXhFCO84t5cKh6Abi s9SMujLoJrzPfGoUwt2W6CV5xgNxDTBF8YffGOjB4MkWNnP/mMdiTRiCVwAHAgYVaVsh Qt2dXz8e24UG5qNgpH1UMnF3JrnWC6COxWL84Z6iU6PhKBDYjAT8oT32d5BLGpWrhhSy a3TYlF2Kr6rOoOet0DHMeQ/z7iRIcM1/Wpfp7r/fTxYoC80mU6dCiA341tjzaPqeIvTm 7N0Q== X-Gm-Message-State: AMCzsaUnG9AE7/JG6OXlo6uEXwV4B+2QqaSX8E5lT/6V7ZPikdDH1h1S zATc1peei70bXD871WY32vxSh/ePP9X89jKxc80v4Q== X-Received: by 10.202.206.196 with SMTP id e187mr8296239oig.349.1509965362244; Mon, 06 Nov 2017 02:49:22 -0800 (PST) MIME-Version: 1.0 Received: by 10.74.53.27 with HTTP; Mon, 6 Nov 2017 02:49:21 -0800 (PST) In-Reply-To: References: <1509929721-3027-1-git-send-email-wanpeng.li@hotmail.com> <5b0d3e0b-141f-b18b-d74a-bc56265d34df@redhat.com> From: Wanpeng Li Date: Mon, 6 Nov 2017 18:49:21 +0800 Message-ID: Subject: Re: [PATCH] KVM: X86: Fix softlockup when get the current kvmclock timestamp To: Paolo Bonzini Cc: "linux-kernel@vger.kernel.org" , kvm , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Wanpeng Li Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2017-11-06 18:21 GMT+08:00 Paolo Bonzini : > On 06/11/2017 11:06, Wanpeng Li wrote: >> 2017-11-06 17:29 GMT+08:00 Paolo Bonzini : >>> On 06/11/2017 01:55, Wanpeng Li wrote: >>>> This can be reproduced when running kvm-unit-tests/hyperv_stimer.flat and >>>> cpu-hotplug stress simultaneously. kvm_get_time_scale() takes too long which >>>> results in softlockup. >>> >>> Apart from the pr_debug, kvm_get_time_scale should take less than a >>> microsecond. The patch is fine, but can you confirm that pr_debug is >>> the culprit? >> >> I can still encounter softlockup after removing the pr_debug. > > Is kvm_get_time_scale getting into an infinite loop then? That would be > the actual bug. I think so, kvm_get_time_scale almost occupy 100% cpu utilization. : static void kvm_get_time_scale(uint64_t scaled_hz, uint64_t base_hz, : s8 *pshift, u32 *pmultiplier) : { 8.97 : 21a34: test %rdx,%rbx 0.00 : 21a37: jne 21a86 : uint64_t tps64; : uint32_t tps32; : : tps64 = base_hz; : scaled64 = scaled_hz; : while (tps64 > scaled64*2 || tps64 & 0xffffffff00000000ULL) { 28.01 : 21a39: test %r13d,%r13d : tps64 >>= 1; 0.00 : 21a3c: js 21a86 : shift--; 6.16 : 21a3e: add %r13d,%r13d : uint64_t tps64; : uint32_t tps32; : : tps64 = base_hz; : scaled64 = scaled_hz; : while (tps64 > scaled64*2 || tps64 & 0xffffffff00000000ULL) { 7.22 : 21a41: mov %r13d,%eax 17.86 : 21a44: add $0x1,%r14d 0.00 : 21a48: cmp %rax,%rbx : tps64 >>= 1; : shift--; : } : : tps32 = (uint32_t)tps64; : while (tps32 <= scaled64 || scaled64 & 0xffffffff00000000ULL) { 31.78 : 21a4b: jae 21a34 0.00 : 21a4d: mov %r15,%rdi : while (tps64 > scaled64*2 || tps64 & 0xffffffff00000000ULL) { : tps64 >>= 1; : shift--; : } Regards, Wanpeng Li From 1583311730838623162@xxx Mon Nov 06 10:22:12 +0000 2017 X-GM-THRID: 1583276151146767154 X-Gmail-Labels: Inbox,Category Forums,HistoricalUnread