From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4AEE8C0650F for ; Mon, 5 Aug 2019 06:55:46 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 204CE206C1 for ; Mon, 5 Aug 2019 06:55:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="o1IGM/pb"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=brainfault-org.20150623.gappssmtp.com header.i=@brainfault-org.20150623.gappssmtp.com header.b="ZW+9EsnP" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 204CE206C1 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=brainfault.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-riscv-bounces+infradead-linux-riscv=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=vKM3X5utlPkY2KohzWD8FSDsexub14DtsZhBnWyD2vY=; b=o1IGM/pbvcG02z 0JiaR1e93n4oRWM8b53xLXPTRciKvs/gtgxkrIq5yiw+TZ05e6oidQG+BzHjFiL5majCX5ue3iIhq qvXSdPLPdJMLm4dkosZTK3vW0xsSD3XNb9CsFUQFKT65XF2OstlCDdLYdUr4nGL4TMhmFfouaJseT 2oggMzRR6cu8Qolzmhu8i655KctSojzOljdms7qxgwA8EAvNnmyuiiwT8DeI8g/sdOjRH1tAJ4QEc wly6ZeYa9+qHj33PCwmvDE3/yBzacmH8kbJ7+2QRE2+zZCkOnw5KhubPALsFLMtGjeXLHYtPrcPXV gTE09EsZYLzuVXCxqdMQ==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1huWu8-0006sU-Ad; Mon, 05 Aug 2019 06:55:36 +0000 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1huWu5-0006s2-Ne for linux-riscv@lists.infradead.org; Mon, 05 Aug 2019 06:55:35 +0000 Received: by mail-wr1-x441.google.com with SMTP id f9so4273723wre.12 for ; Sun, 04 Aug 2019 23:55:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brainfault-org.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=4TTBYe7R89ObYhNrQ7Cl1PDjf+qeeSySCDSm/yvi8hE=; b=ZW+9EsnPgnlzTYewisjxT+EOSy6r2aUxK55FB/Fm+mi+AtDooHD4mu+yQ4gb37M10g NFW40A+O1T6r5RXaZM/8SExP8R6DwkNY4tOg66IuS30k7+H4zGVIjXQc5CsCiFM2+BMe V0+mlrOMXhxPEG24hqd84dDo9gu3cphW0r9/JFlKTTaR+vGq0uS9aklZTp2Wcx8DcdRa 2kuzuR1HDGS6PxOG/Lzvo154FcmiWh5jjA0bm9vC2WXhhhOramW5aZIV01jvhSj2rdDM n+kO58hpipZI6NalfKRWflgcGxRn2DNY40LLNgm/sPPLUvZwPDy7XRixemaSGUe+O/Df PYaQ== 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=4TTBYe7R89ObYhNrQ7Cl1PDjf+qeeSySCDSm/yvi8hE=; b=TUmCTpegBaS+x0gnvh9jb6MrxIr6/cJDTE4KusMiHN9kJDhRnuRkpEN48VsFrlrzOZ ekNh0cCEpYIRuO7p2jS8vjQYyrmL4Omy8hExMGeI79Zfl3qM2Ri4E7iej4t6j5sxne/y Xp/QVlEPNGh6z7KIAq4x974ZZ9qidRSV8mnXR0NUrnhHpMzsxOr0X6vvOUYQPbr4q4qk d3QDZ0YeV7VgyajkLOKNG99smUV9l62d98ZbCzyaNwJTt7TpJ+hEKnZVFqJ56Lb/bLPt 2Hz+JaYUDL31+pEt5K7vmBJL8aHbadv5xYKXTv2zFoVYFl+vwZFWJRoRAYsy23QEyRUu 6e3A== X-Gm-Message-State: APjAAAVLEVKCLm9JeQcAbuCX1B2tBtos5rboj6K71Mk6T59Mn4rGyAzX Z9BQ05FU/iXo+VD5fZ5gsbBgM/OeRGqLCyA+WW4= X-Google-Smtp-Source: APXvYqxAjiUTpRBRVnl8zo2WRruaXTltVlSlDaYn0gjxaCM1yH1vbKfeokdHZ8Ie7GExj9eQjB7BsoJu8wlqK+dlYTk= X-Received: by 2002:adf:b1cb:: with SMTP id r11mr150790179wra.328.1564988131513; Sun, 04 Aug 2019 23:55:31 -0700 (PDT) MIME-Version: 1.0 References: <20190802074620.115029-1-anup.patel@wdc.com> <20190802074620.115029-8-anup.patel@wdc.com> <03f60f3a-bb50-9210-8352-da16cca322b9@redhat.com> In-Reply-To: <03f60f3a-bb50-9210-8352-da16cca322b9@redhat.com> From: Anup Patel Date: Mon, 5 Aug 2019 12:25:20 +0530 Message-ID: Subject: Re: [RFC PATCH v2 07/19] RISC-V: KVM: Implement KVM_GET_ONE_REG/KVM_SET_ONE_REG ioctls To: Paolo Bonzini X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190804_235533_800631_CAA01059 X-CRM114-Status: GOOD ( 13.82 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Damien Le Moal , Palmer Dabbelt , Daniel Lezcano , "kvm@vger.kernel.org" , Radim K , Anup Patel , "linux-kernel@vger.kernel.org" , Christoph Hellwig , Atish Patra , Alistair Francis , Paul Walmsley , Thomas Gleixner , "linux-riscv@lists.infradead.org" Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-riscv" Errors-To: linux-riscv-bounces+infradead-linux-riscv=archiver.kernel.org@lists.infradead.org On Fri, Aug 2, 2019 at 2:33 PM Paolo Bonzini wrote: > > On 02/08/19 09:47, Anup Patel wrote: > > + if (reg_num == KVM_REG_RISCV_CSR_REG(sip)) > > + kvm_riscv_vcpu_flush_interrupts(vcpu, false); > > Not updating the vsip CSR here can cause an interrupt to be lost, if the > next call to kvm_riscv_vcpu_flush_interrupts finds a zero mask. Thanks for catching this issue. I will address it in v3. If we think more on similar lines then we also need to handle the case where Guest VCPU had pending interrupts and we suddenly stopped it for Guest migration. In this case, we would eventually use SET_ONE_REG ioctl on destination Host which should set vsip_shadow instead of vsip so that we force update HW after resuming Guest VCPU on destination host. > > You could add a new field vcpu->vsip_shadow that is updated every time > CSR_VSIP is written (including kvm_arch_vcpu_load) with a function like > > void kvm_riscv_update_vsip(struct kvm_vcpu *vcpu) > { > if (vcpu->vsip_shadow != vcpu->arch.guest_csr.vsip) { > csr_write(CSR_VSIP, vcpu->arch.guest_csr.vsip); > vcpu->vsip_shadow = vcpu->arch.guest_csr.vsip; > } > } > > And just call this unconditionally from kvm_vcpu_ioctl_run. The cost is > just a memory load per VS-mode entry, it should hardly be measurable. > I think we can do this at start of kvm_riscv_vcpu_flush_interrupts() as well. Regards, Anup _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv