From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752972AbdJaGn0 (ORCPT ); Tue, 31 Oct 2017 02:43:26 -0400 Received: from mail-lf0-f41.google.com ([209.85.215.41]:55523 "EHLO mail-lf0-f41.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752778AbdJaGnY (ORCPT ); Tue, 31 Oct 2017 02:43:24 -0400 X-Google-Smtp-Source: ABhQp+T7lJ9nHZM5jdnXAAdTKdQLVrejYpny5gRfksX51TgN4JVf1l6Bq/X8OGm3E+QtUs4ViZgtjw== Date: Tue, 31 Oct 2017 07:43:13 +0100 From: Christoffer Dall To: Auger Eric Cc: eric.auger.pro@gmail.com, linux-kernel@vger.kernel.org, kvm@vger.kernel.org, kvmarm@lists.cs.columbia.edu, marc.zyngier@arm.com, peter.maydell@linaro.org, andre.przywara@arm.com, wanghaibin.wang@huawei.com, wu.wubin@huawei.com, drjones@redhat.com, wei@redhat.com Subject: Re: [PATCH v6 0/9] vITS Migration fixes and reset Message-ID: <20171031064313.GB2166@lvm> References: <1509031391-4407-1-git-send-email-eric.auger@redhat.com> <20171030062032.GL2166@lvm> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Oct 30, 2017 at 08:59:36AM +0100, Auger Eric wrote: > Hi Christoffer, > > On 30/10/2017 07:20, Christoffer Dall wrote: > > Hi Eric, > > > > On Thu, Oct 26, 2017 at 05:23:02PM +0200, Eric Auger wrote: > >> This series fixes various bugs observed when saving/restoring the > >> ITS state before the guest writes the ITS registers (on first boot or > >> after reset/reboot). > >> > >> This is a follow up of Wanghaibin's series [1] plus additional > >> patches following additional code review. It also proposes one > >> ITS reset implementation. > >> > >> Currently, the in-kernel emulated ITS is not reset. After a > >> reset/reboot, the ITS register values and caches are left > >> unchanged. Registers may point to some tables in guest memory > >> which do not exist anymore. If an ITS state backup is initiated > >> before the guest re-writes the registers, the save fails > >> because inconsistencies are detected. Also restore of data saved > >> as such moment is failing. > >> > >> Patches [1-4] are fixes of bugs observed during migration at > >> early guets boot stage. > >> - handle case where all collection, device and ITT entries are > >> invalid on restore (which is not an error) > >> - Check the GITS_BASER valid bit before attempting the save > >> any table > >> - Check the GITS_BASER and GITS_CBASER are valid before enabling > >> the ITS > >> > >> Patches [5-9] allow to empty the caches on reset and implement a > >> new ITS reset IOCTL > > > > I applied patches 1-4 to kvmarm/master and included them in a late pull > > request to kvm. > > > > I also took the remaining patches with the adjusted comment in > > kvmarm/next. > > OK Thanks. > > > > One question: Don't we have a remaining issue to support saving the > > collection table even if the device table is inconsistent and vice > > versa? Are you planning on picking up that work? > > Actually to make it clear, patches 1-4 don't fix all failures but we > discussed at KVM forum that we shouldn't try to fix all of them without > a proper ITS reset implementation. So indeed even with patches 1-4 you > can get the migration failing as the save can happen after a reset, > in-between the collection creation and the PCIe device MSI registration. > This happens because the caches are not void and the L1 device table > entries are not valid. In that case the device table save fails and we > get no chance to save the collection as we abort the save immediately. > So on restore, guest will not work properly. > > But on top of kvmarm/next, caches are void and we shouldn't face this > issue anymore. So in case the device table save fails, I think it still > makes sense to return an error. > > But this means that the migration of ITS at early guest boot stage only > is fixed on kvmarm/next. > I think you're right. Thanks, -Christoffer