From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f51.google.com (mail-wr1-f51.google.com [209.85.221.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F5C3322A1C for ; Thu, 13 Aug 2026 05:57:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.51 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786600673; cv=none; b=Q1n1pbTch7Pi3ZV4nAEQvDhlHP+4rF24AHRVm4Ud3RC+qHqZ67cQja06x2kZBFq/iea29WlQBgBx6yf65V2bIPXORHtzYD2OXdRNj3Ngh49yzaN1rxAEIV6CTX1R8T3q0/YFQN2Ny87+uR3RjnHtjoQleowEMxKMZyDrvcHVDjU= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786600673; c=relaxed/simple; bh=Mrl9k2OYxCttpt0oaJBvFcDv/awuA7xGxUf0yffgjFU=; h=Date:From:To:Cc:Subject:Message-ID:References:MIME-Version: Content-Type:Content-Disposition:In-Reply-To; b=Ds44G6heCZhA7WhUYtTab78+cTRyMl8F120wtMI8cKTjfjGBYBu+X4A8Oe7QJfW5URH3hb1iibFqWBzH3G84dcBEdI7qCeUwwqupVjKIRvj/C8lOvuxuNz503W7KP6ejhi6+qATrOVFpbtkDP4RGBOlbZ6OEeKHO4TNabciQMek= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Y5r8olKb; arc=none smtp.client-ip=209.85.221.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Y5r8olKb" Received: by mail-wr1-f51.google.com with SMTP id ffacd0b85a97d-47c2b362ee2so270337f8f.1 for ; Wed, 12 Aug 2026 22:57:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786600671; x=1787205471; darn=vger.kernel.org; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:from:to:cc:subject :date:message-id:reply-to:content-type; bh=+7PeLXe+ue8rItbBi6+JlGfhsV/36WDiPAKPGI7m+do=; b=Y5r8olKbQA4KmcW9MwLfY1sP4HOfESCCn2SatRrFA1havzjn0jngfHP5fQr+C0cUyG fTw0KXazOJ/aIWTvGZrcSno+nEZYHc6nPo1dPcOgL9YSixO6mslcCv0kUUkP+0l5o8CP ZXzKp1GQ9ztiLIIAl1MNiLrcukdAk6UsKM6ziWifIzBFTPYnbUdxfzMYowI6cXBbOgDq 3hMccu51xyUq6krsQ1N1jxgU/eGuNjm7yai5L9fy2tdTvgdlex6VAQ3rz2trW7TZmYCA r8NEtB3BBC0y1MW3r2OSGnroBwfSCih2ThnoroyJ2prTNj8hiVMI0sifs/YiREQ/8NEG Eu+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786600671; x=1787205471; h=in-reply-to:content-disposition:content-type:mime-version :references:message-id:subject:cc:to:from:date:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=+7PeLXe+ue8rItbBi6+JlGfhsV/36WDiPAKPGI7m+do=; b=TrAJRSyBn9NKV4ZHdOPdMAv15PrUH6etGMAcsLk254LIyCXkUttYI8XULK647GloZO gzNi2l4iS43BnLImeyVe2s6edXUb3CzkTQTclAm/XXaPNhwYP3LlGe2+C/BNHbLTHhTM fHTrArQBb2uUs0lw9sb4nUVBICO1LzZfpZTEzyP97vFOVlinV8r9Wyy4q4qtQXdFNGEm sKHxCvT9q9CaECstDsq3Sv3p9PlLk9zjSg+3NeKJ9XOOhrIc8QhFgFoaNmt2dH/VjukR BoOnQFJh9BiyN8IwHMao/Oc+YvDTm6OquSCKUFxC6zQd/NSBCQRWY29hc6JOTHe+Mo7J o4WA== X-Forwarded-Encrypted: i=1; AHgh+RoDinpqXt0H2oZH9LWNaRsG8Ez6++IawlFsNGYXREao1dTD+bxrPcEmWxTBnr7a272BzuxK315XLeW6xjA=@vger.kernel.org X-Gm-Message-State: AOJu0Yzx1nzrxBRWZ1vgA7jnQZXQAsWy/uiWZcoTxjp+prPgDG4QI+7N yQW4urtwdhumYf/LfVKUltz8/Mcbe72FwOdqAMxXJZ2nXpilslBQ0Q2/ X-Gm-Gg: AR+sD13Htm60PVfZrlStKcQIHw9s6nNcNb4Lw4Bjex3G+nZNcetXEin/pVSbDlfDctV sJqTUtMDNRo7rDzpYknqMsXUSOozpR864YZzy7R4oa673eCkZp0E3NYt9CSU/RQg6kIKTv/PIiA +QZyVd3dJMCJGgn2nBTPW3Js1kYxguRe/jJDIUaUB5d5YXuunabMIVJmuflyiiupaGfYDChMG0f edQv1MLflYGEibxhh+l4cEVAbzN8I2eVbG0AjYzwlsf09ey6zHAW7XabbW8Xs3b0S2+iF2Jb58Q 9by78mIU6hY44bnWnkhCkfsftL8WuoNB0MXLGu53k3OViyFnWIpXmA5/lDogB2Dc5qhwQLKJEzs tCcklQ2FLmFjVO+xbj7F4akgKqDNcNgyLkELtDv41M7FQG5h6wfm7aaf4iLTSJQyjGhRvoMofB7 /SGNMaYLPH//z5ZFXfT0QpKgRWD30/z/hU+NxA09gy50nQlR5KbIW7TiH6CwNv2nxJDaq8X0WG6 ZDrBaxbokJr0SP4F868BZIOlVjSiE2SMYAnIHuO3MjF06lnxjBS6CxnsxROjqiHOqhtfBZS5ZYX 7byU6pN/aeZnu1UV14OR1Z+jgkrO60yrGfJFzb/g+s0SD/w+WbFH+fp655zTbfeLchk= X-Received: by 2002:a05:600c:190f:b0:499:484a:98e7 with SMTP id 5b1f17b1804b1-4998218e63dmr29591735e9.14.1786600670592; Wed, 12 Aug 2026 22:57:50 -0700 (PDT) Received: from MacBook-Pro-von-Karl (dynamic-2a02-3100-9c79-1f01-1565-573d-10dc-99f9.310.pool.telefonica.de. [2a02:3100:9c79:1f01:1565:573d:10dc:99f9]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4998216cf70sm28991305e9.12.2026.08.12.22.57.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Aug 2026 22:57:49 -0700 (PDT) Date: Thu, 13 Aug 2026 07:57:48 +0200 From: Karl Mehltretter To: Marc Zyngier Cc: Oliver Upton , kvmarm@lists.linux.dev, Fuad Tabba , Joey Gouly , Steffen Eiden , Suzuki K Poulose , Zenghui Yu , Catalin Marinas , Will Deacon , Paolo Bonzini , Shuah Khan , Eric Auger , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: Re: [RFC PATCH 1/2] KVM: arm64: vgic-v3: Roll back failed redistributor region setup Message-ID: References: <4e00fc25aa61ec52e6ef033a53588ce3f5550982.1786344511.git.kmehltretter@gmail.com> <86tsp2139b.wl-maz@kernel.org> <86jypv1lxo.wl-maz@kernel.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <86jypv1lxo.wl-maz@kernel.org> On Wed, Aug 12, 2026 at 02:57:07PM +0100, Marc Zyngier wrote: > On Mon, 10 Aug 2026 22:22:37 +0100, > Karl Mehltretter wrote: > > Is this closer to what you had in mind? > > No. I want *all* RDs to be gone on failure, and the next successful > registration to result in all possible RDs to be matched against a > vcpu if there are enough of them. Effectively an atomic behaviour from > the PoV of userspace. > > See the patch below for what I came up with. > Understood. I believe your sketch needs two small adjustments: free_index must be incremented before kvm_io_bus_register_dev(). If registration fails, the current vCPU already has an RD assignment, but there is otherwise no increment for the teardown path to undo. The garbage collection in vgic_v3_free_redist_region() should remain. VM teardown frees the regions before unregistering the RD iodevs, so removing it would leave rdreg pointers referring to freed regions. Does that look OK to you? If so, I could include both in v2. I'll also split the selftest change and have it check only the final state after the retry. Thanks, Karl