Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp1997162ybi; Thu, 18 Jul 2019 01:44:31 -0700 (PDT) X-Google-Smtp-Source: APXvYqwbVqVcU93UBUCxkMd631N4sNqMbOyMVB/qg9Irt6BQrFwbjpHQkliDD1Qiw9PeToDJZlwM X-Received: by 2002:a63:6c7:: with SMTP id 190mr45760663pgg.7.1563439471117; Thu, 18 Jul 2019 01:44:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563439471; cv=none; d=google.com; s=arc-20160816; b=G4rCvJB5+hhZOcAdfDNkCGqmoQw6hImnGLpbsWKT7IO/xWU5su3ojXhQa2BHYjOSot lWHloRrEOxnR0vYLyJTARygX6OrkqCtGpMLvq24wqq8dDVyzX5ochfKmVsgyL21d5AqU nTEDWmrVoRpzV0O7Wd6ia1knLdkmm/tO9v4PIyiivEe5SRKdmDNEXWFplCD7d2n52pK4 uAn+pkoi/uhky4oEdzmvrOq4zTghQNnkbNmhLcmTUOF8N2y0VD/qthrrCS1LkfNJ5rKI QRxc3pWWKLaaD9gubMD8ZwUoEXSt/duEqFihTqi5ES8s1JlcgPZGDV0OW5t29dhOUTVh Su+Q== 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 :in-reply-to:references:mime-version:dkim-signature; bh=d2Q3qNlicAJFSj13hQsbAPBZr2sr3JIHVAU8/U9TgNw=; b=Pmo+lM41tDzg34KAVG+cKdfKci0xebmQ0gVbmG+ILb4hx1f5MqL+FM1f4v0jdTJ/Zg YxXWi/HIijrVPz9tFCR/wLub2QjHuxnZ/7s2/mMs2AaetgYlQYGbjO5fH8PJaCdxWQ7Q D7GQbMeHwxAzMxyRLp1fWxXmrzW9cbsekf8yMdP5zZtLkQqq5D7MJOER8MGv+q696kh8 SfLwx7JcXK+crYHW6294cDJv1LEE+EQPC1FJrQ9Dp4XcmWS3H57LYnwF3EKXaDiOb7M2 kKBCsl83s15Yj7C7JS3eoblqEhwgK6CBkgK50Cod17VLY2o955lt3xe3ASOobPB+ZysD gJcQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=NKuW4qeR; 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=QUARANTINE 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 i19si270450pfa.232.2019.07.18.01.44.15; Thu, 18 Jul 2019 01:44:31 -0700 (PDT) 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=NKuW4qeR; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389582AbfGRIni (ORCPT + 99 others); Thu, 18 Jul 2019 04:43:38 -0400 Received: from mail-ot1-f66.google.com ([209.85.210.66]:42299 "EHLO mail-ot1-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726488AbfGRInh (ORCPT ); Thu, 18 Jul 2019 04:43:37 -0400 Received: by mail-ot1-f66.google.com with SMTP id l15so28152163otn.9; Thu, 18 Jul 2019 01:43:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=d2Q3qNlicAJFSj13hQsbAPBZr2sr3JIHVAU8/U9TgNw=; b=NKuW4qeRZrqPwnUXP5Y15D4GRPwypc0idrFTYQ+p1hW4EGtRC1hFQCLVQrW/IaLw3G 2y1M35J86sAKLEGvwJHL8nNn4z5ploMmTVLoBYRhaMMNlDsah1foDMMtdGAXakBlOZe6 SghOlESbA2vA1zwz5uGrJN8bNJgA2vJ4J1jhh6w9nxSoTEXWMeGXJ74xwTuIfmXG86GS HVmhG2ad/5ic79f5pSCAx85O0ckrkCb/eT68neFVfF9oV8biQNXBhV2ngQ6bPuKXftp/ rXcj9lDL/ifeVKw9+W17/+TGo6Lrl+3/znt+l9+UrODwg64f00L8M8LwHGbWzfnHucye kKLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=d2Q3qNlicAJFSj13hQsbAPBZr2sr3JIHVAU8/U9TgNw=; b=Z9SFDA4cBL4QOB5afzmwf8BPtLEUhP13/QRp+boeCH41t9M54j2sqgmdxYy1EXuWWY EdguwE8A+u5WWDaKbdJDr62FAHY9Y51lwnss/85Rk6TOenXWWN7CwL4U1tFMKkhUK3dc wo5O8azIbhS6mBDKFrSTgGxw9LDqBq03brRwj21d2doUiWeOgLOIfP/eO81hiSyBOy3d tpnczSyPsYoJS2G0/espkHvuQRlcdXblkpoKPWX2Tz2gS187nMLiRzKwQtbpTg3mP6Xg PMWwL12b/EIxNbQP7h3CMwLwdvn5XrK0s/rC81g3nsS65Exi/ugGH01NDqn0aheUvsF7 lmjg== X-Gm-Message-State: APjAAAUiNxOiOlk+nSApO1hn4Met4SiUF2YQ6JqJ+SDjpYzvk0kz2iQT LEOIRhY+Tkve6KnyM9CdmhHlnuFQ0TASh85XVc0= X-Received: by 2002:a9d:2c47:: with SMTP id f65mr34015931otb.185.1563439416885; Thu, 18 Jul 2019 01:43:36 -0700 (PDT) MIME-Version: 1.0 References: <1562915730-9490-1-git-send-email-wanpengli@tencent.com> In-Reply-To: From: Wanpeng Li Date: Thu, 18 Jul 2019 16:43:28 +0800 Message-ID: Subject: Re: [PATCH RESEND] KVM: Boosting vCPUs that are delivering interrupts To: Paolo Bonzini Cc: Christian Borntraeger , LKML , kvm , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= 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 On Thu, 18 Jul 2019 at 16:34, Paolo Bonzini wrote: > > On 18/07/19 10:15, Christian Borntraeger wrote: > > > > > > On 18.07.19 09:59, Paolo Bonzini wrote: > >> On 12/07/19 09:15, Wanpeng Li wrote: > >>> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > >>> index b4ab59d..2c46705 100644 > >>> --- a/virt/kvm/kvm_main.c > >>> +++ b/virt/kvm/kvm_main.c > >>> @@ -2404,8 +2404,10 @@ void kvm_vcpu_kick(struct kvm_vcpu *vcpu) > >>> int me; > >>> int cpu = vcpu->cpu; > >>> > >>> - if (kvm_vcpu_wake_up(vcpu)) > >>> + if (kvm_vcpu_wake_up(vcpu)) { > >>> + vcpu->preempted = true; > >>> return; > >>> + } > >>> > >>> me = get_cpu(); > >>> if (cpu != me && (unsigned)cpu < nr_cpu_ids && cpu_online(cpu)) > >>> > >> > >> Who is resetting vcpu->preempted to false in this case? This also > >> applies to s390 in fact. > > > > Isnt that done by the sched_in handler? > > I am a bit confused because, if it is done by the sched_in later, I > don't understand why the sched_out handler hasn't set vcpu->preempted > already. > > The s390 commit message is not very clear, but it talks about "a former > sleeping cpu" that "gave up the cpu voluntarily". Does "voluntarily" > that mean it is in kvm_vcpu_block? But then at least for x86 it would see the prepare_to_swait_exlusive() in kvm_vcpu_block(), the task will be set in TASK_INTERRUPTIBLE state, kvm_sched_out will set vcpu->preempted to true iff current->state == TASK_RUNNING. Regards, Wanpeng Li