Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp2183422ybi; Thu, 18 Jul 2019 04:41:33 -0700 (PDT) X-Google-Smtp-Source: APXvYqzJF7uD+vmeavsZ5LOmQOA/0zz72hXQ9DfKQLhW207LYPqJAnU3h4dsXXcjznY7e0A8REMK X-Received: by 2002:a63:fe52:: with SMTP id x18mr44387718pgj.344.1563450092969; Thu, 18 Jul 2019 04:41:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1563450092; cv=none; d=google.com; s=arc-20160816; b=ZeWR0eadf6lyXGVcF+fnX8Dgr4gqBpEYtvntEwnZ5Xp7VqpJEEZ4nmIyUIoKskjS/Z buI36aysCuZWKNwzWUI8FCCZkqUtUYRpJlw0T7g+hGyMvigiUqmDuGxmaiRb1sHgCDfQ vuAdCrGehGwZImNDArshZdtPOSYR4dfwUjBcOTjM1EJrI6VkUzI7GnaIF/RYCVnXro6A mftePseY5amfesfyl6CMP5JdVr8HaVqQIAhpS0vDU0oIBO9+OXTfalp0L3U53Xq0ogvY /cvm32NzoBuCjGvmg0wUBtVCi7hUHK2HKS1/EZC+AXSuPbOPxMMo7BTvYfAOplfBUvwY hm7A== 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=0wT5Tj/n2RBfQhJG08mVc86LI5QLyQMdXu4Aow//MCg=; b=Zlg0J3NJZNIh16iDV6uQvRaROBRzQre5hJPMLryXYBuGi8yGd5P9HyU01KnerEjPGm 8QuQZaCqQRzj/WRYZhseWeaVDtfcz8t+7JuTGRUz6PKwJLZO7FnkPCQLM+aI0XXphPSG hO7xUu77uRH4H3ifm9v823XYXRODUsYZIbHRSQXRxItP4SZf8Vib2AqR2tqfaPmjdoLB eWOdLmZaHdyZSqnrpfss11LKtwnDOqzep5GGmeTwz4th43Ff10TGZubLD4DLReWkvq3P mlvPKi/i210+fui1YXTolY+2Ny/g+a68KFWdUk+NDnCdrAb5rgjmWDaR4O/y09UkD7hL HVyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b="Z7xXDV/4"; 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 cl7si101761plb.267.2019.07.18.04.41.17; Thu, 18 Jul 2019 04:41:32 -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="Z7xXDV/4"; 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 S2390117AbfGRLkO (ORCPT + 99 others); Thu, 18 Jul 2019 07:40:14 -0400 Received: from mail-ot1-f67.google.com ([209.85.210.67]:46294 "EHLO mail-ot1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727882AbfGRLkO (ORCPT ); Thu, 18 Jul 2019 07:40:14 -0400 Received: by mail-ot1-f67.google.com with SMTP id z23so318758ote.13; Thu, 18 Jul 2019 04:40:13 -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=0wT5Tj/n2RBfQhJG08mVc86LI5QLyQMdXu4Aow//MCg=; b=Z7xXDV/4TY1dg6KBkMskZBDH3w92Xls9x8KPY9aIyeqdukEOhimPJD/+5aFOdB+zlk UO10r/49CLzHyeb4CgO06m5s/qPl7+MhGOP4AJq5SLVjIj8jPBYROtT5OX3RltkAvPDn mN3ombIS7+3MdpXh9/Z58mAvk40Jkjqa2qKqmayuD+DPoldj5z9QJKD/PJPW7CpvIdPh fqJgrcLYzNsbUTVKz7j197z0/k4LMhb9D+ChPFPbXSLshlmThLpUtmk2pJCVPDtzzwma e7wdUNUjOP1XNPz6mf9rTm1DkkOJcIFMOXC0f0GpP6XDS5WS56P1XTPEpuwxe34INHoN pcTA== 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=0wT5Tj/n2RBfQhJG08mVc86LI5QLyQMdXu4Aow//MCg=; b=GJL2SlPdZVQyh5PKVs1vwRQxK4Wjbm2NrvDwkont3LlKmNOHANzvrMOVyv9SGw/BsA GdWx404cZJf1vyHfmo7xX2h+NNnTRSVxCyf2ILZ/bfdlUApvw4Sc2VADPy+iCc0BiQ+s 8LvXqiYNNla+3TeKCfjcB27BmVqSs+1aF8ujmAhUVD0cxe9HP4ZCCthBZzRmHRXA5wRd yB/d4+KArCCoQ4l8HUnhKuPhFpkcyl+cBoEhNzNkATthPBfWAIPby/ScAiboqz9RCl8t e44593pgCCzyjKDWxVTGF80FbEUiq6EC5f+Bzph6Ul/MbqN8Yctn2BkdZf63WsowXcDp Osow== X-Gm-Message-State: APjAAAX3L4BqscPwuFG0klP9SEQ6T1Q0LQwBOZxjq7YinGV0m3zrfTwL frY/lO5bj3bRscnHtxvPSbfbyRS3iseSJxvdxR8= X-Received: by 2002:a9d:1b02:: with SMTP id l2mr14808131otl.45.1563450013270; Thu, 18 Jul 2019 04:40:13 -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 19:40:04 +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 17:39, Paolo Bonzini wrote: > > On 18/07/19 11:29, Wanpeng Li wrote: > > On Thu, 18 Jul 2019 at 17:07, Paolo Bonzini wrote: > >> > >> On 18/07/19 10:43, Wanpeng Li wrote: > >>>>> 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. > >> > >> Ok, I was totally blind to that "if" around vcpu->preempted = true, it's > >> obvious now. > >> > >> I think we need two flags then, for example vcpu->preempted and vcpu->ready: > >> > >> - kvm_sched_out sets both of them to true iff current->state == TASK_RUNNING > >> > >> - kvm_vcpu_kick sets vcpu->ready to true > >> > >> - kvm_sched_in clears both of them > > ... and also kvm_vcpu_on_spin should check vcpu->ready. vcpu->preempted > remains only for use by vmx_vcpu_pi_put. Done in v2, please have a look. :) Regards, Wanpeng Li