From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pj1-f73.google.com (mail-pj1-f73.google.com [209.85.216.73]) (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 35F581EDA0B for ; Tue, 26 Aug 2025 21:31:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.73 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756243909; cv=none; b=p/TdTQmLwcNqWrprOn3hsRYlHb/ifO5FPBBRz/k2C2jEgBZ/su5oywJbmsdxUSVPucG1FtsxJbyULkXxSoR7KsOwEcf5vFmX+6KvOj94tGZeQziYD5PjUJSe6qH8qkeBP4UtQwa11CPpx4dgKnFXj5sCljda584N1/a07AnVOWw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1756243909; c=relaxed/simple; bh=CTMJf0x9Y4lC1Yx2gqC2G9l6CWMNnCXR8J8HWYvhDRU=; h=Date:In-Reply-To:Mime-Version:References:Message-ID:Subject:From: To:Cc:Content-Type; b=VBA4M/hxHzf2Bfb/E45iYmiQ6RydPSxud7eg/OBWeoEhBvMC6UAsnHHqWdIYdT/QOs9VmiqYOq+C0YWb1KbSwmVDvGIYb9FNzja8pb0JXsFd81OtR6UMtTN9tSrMdYW38OJZ7OWma6tdrY3hKKEfab6GTWJxm0+X+utrEcPgsd4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=GIwnczoE; arc=none smtp.client-ip=209.85.216.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--seanjc.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="GIwnczoE" Received: by mail-pj1-f73.google.com with SMTP id 98e67ed59e1d1-3275d2cb1cbso937603a91.3 for ; Tue, 26 Aug 2025 14:31:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1756243907; x=1756848707; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:from:to:cc:subject:date:message-id :reply-to; bh=S6RSfBZbzjlqDZ6g2evZXhO4UN2s2ZcsLX6EZtN8OCU=; b=GIwnczoE6vSGbhKx4pPHdW8DNcPb3hE6jiRj62WriJ857kfOANSbhmPAF6HieYtuNI Tr2WkTcq37maHFsEa2qEP5g5kpcuPT4ZY80bw3b5BtYDAPDVg4xTgogJlJXNyy76CrCB e4OC5Ena8bY/e39VHQBBRc1v6xpGi5fdiLdVPL8fiqN3Bjm7AgCu3rZewVjXE/+EWyLq uNX8NcSa9kCsY1grxTm4uG+Miqr3IN3/jGixsr3BdKB7dIdn6EhlbCf3qtEbFmS1wLFi qHyCMKj+i+DtgQXCpNKHeavEPWSNVJt9ibQ/W7Zfuvaf/8esHb07ZeO6xVCfXe4856gs 7rog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1756243907; x=1756848707; h=content-transfer-encoding:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=S6RSfBZbzjlqDZ6g2evZXhO4UN2s2ZcsLX6EZtN8OCU=; b=nGX4J9W0ojnz39CET+AsySHpkbl5XgQdZA9eHH+kI+WMoyLQdwd8ux+YOLA8fJcrFq J/I3WnaF4KIn0z5eLhI0Vd2hOhZDWXRC2yugl3mRpgzRsR9jvsgdr9TX7ueDzhm+HElF f19Pb6sl9v2PVcUQP2w1agoFS02QkDlUIsfdTfYgbho9VNBNLd1tp3LSQrO2udet6jvQ xWqZGcLqjnoVTjRxPwkthBMzFEUo7lPgJ331X4OJbaz/7ffLnkQhtNAYvJW3p1V5RptE OMTWz5VilQjL4sra7NAiGZrhM8yxjfXGMv6KJAl/MnGzMIfyRv620IEuUaTCNB46mN3x /Jzw== X-Forwarded-Encrypted: i=1; AJvYcCWsKHl+STR1qeqt+FvUq7uiKSo7EpzYw2Ja1sAs/Gl8Nbwzg4btmoX8Y5EIdZU9nC0erhLo8AA6M38w30k=@vger.kernel.org X-Gm-Message-State: AOJu0YxZeSRGPYZwNx2l13XvWooYkux3iQXPQNCZf1gAaQgOSv0qGu9w czB3t6sgARokOik31vBQPjlSR4p3qdrI+ck+Fj8WiZ0pRb+6XJyKf5u9hXaUpRLqkSuCqmXEniz c+Pws2g== X-Google-Smtp-Source: AGHT+IEySkuuhaynZ0m/cSLC1ikqBNNsZdkfvVXazMWOeEnEUTq6/sJ6HZtbncnv+ik+NswQSWFlZWAaBAo= X-Received: from pjbsv6.prod.google.com ([2002:a17:90b:5386:b0:31e:d9dc:605f]) (user=seanjc job=prod-delivery.src-stubby-dispatcher) by 2002:a17:90b:1d92:b0:324:f6f8:7701 with SMTP id 98e67ed59e1d1-32515e225a5mr23486092a91.4.1756243907485; Tue, 26 Aug 2025 14:31:47 -0700 (PDT) Date: Tue, 26 Aug 2025 14:31:45 -0700 In-Reply-To: Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 References: <20250821042915.3712925-1-sagis@google.com> <20250821042915.3712925-16-sagis@google.com> <68ae1604a387c_300e8f2947e@iweiny-mobl.notmuch> Message-ID: Subject: Re: [PATCH v9 15/19] KVM: selftests: Hook TDX support to vm and vcpu creation From: Sean Christopherson To: Sagi Shahar Cc: Ira Weiny , linux-kselftest@vger.kernel.org, Paolo Bonzini , Shuah Khan , Ackerley Tng , Ryan Afranji , Andrew Jones , Isaku Yamahata , Erdem Aktas , Rick Edgecombe , Roger Wang , Binbin Wu , Oliver Upton , "Pratik R. Sampat" , Reinette Chatre , Chao Gao , Chenyi Qiang , linux-kernel@vger.kernel.org, kvm@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable On Tue, Aug 26, 2025, Sagi Shahar wrote: > On Tue, Aug 26, 2025 at 3:29=E2=80=AFPM Sagi Shahar wr= ote: > > > > On Tue, Aug 26, 2025 at 3:14=E2=80=AFPM Ira Weiny = wrote: > > > > > > Sean Christopherson wrote: > > > > Ugh. IMO, this is a KVM bug. Allowing KVM_CREATE_IRQCHIP for a TD= X VM is simply > > > > wrong. It _can't_ work. Waiting until KVM_CREATE_VCPU to fail set= up is terrible > > > > ABI. > > > > > > > > If we stretch the meaning of ENOTTY a bit and return that when tryi= ng to create > > > > a fully in-kernel IRQCHIP for a TDX VM, then the selftests code Jus= t Works thanks > > > > to the code below, which handles the scenario where KVM was be buil= t without > > > ^^^^^^^^^^ > > > > > > I'm not following. Was there supposed to be a patch attached? > > > > > > > I think Sean refers to the original implementation which was out of > > the scope for the git diff so it was left out of the patch: Yep, exactly. > /* > * Allocate a fully in-kernel IRQ chip by default, but fall back to a > * split model (x86 only) if that fails (KVM x86 allows compiling out > * support for KVM_CREATE_IRQCHIP). > */ > r =3D __vm_ioctl(vm, KVM_CREATE_IRQCHIP, NULL); > if (r && errno =3D=3D ENOTTY && kvm_has_cap(KVM_CAP_SPLIT_IRQCHIP)) > vm_enable_cap(vm, KVM_CAP_SPLIT_IRQCHIP, 24); > else > TEST_ASSERT_VM_VCPU_IOCTL(!r, KVM_CREATE_IRQCHIP, r, vm);