From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8BD302744E for ; Tue, 31 Oct 2023 22:40:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="1K8ZS/bJ" Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 91953118 for ; Tue, 31 Oct 2023 15:40:14 -0700 (PDT) Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-4083740f92dso47905315e9.3 for ; Tue, 31 Oct 2023 15:40:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1698792013; x=1699396813; darn=vger.kernel.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=dJWbuo+9TPVToDVPf96jeRxWUliwPBKXtZxQViTwJnU=; b=1K8ZS/bJ+GdgqaZUvAP2WwNROh7zVafE6rW0I41BI7g6Cuii9iWqj6tqLetfVQnuij mqrLEsygd5w8lFAbQgvkcROrnJCCEWMldrHP4O25qc38/KI1iGCpM4/wrvLPnGiRRjUy UET+n2k3pAZakVazyzGziZONC7dCPAfAWcn8RnZtvZvjJ74w7BjYg9SOd2E/VCWJsh/Q hjUqjy6DwE0Kw7wq3scIRWXIYCWNSNlnBFHdqI4GR7b6c9oH1dXwTcZ3eALS/mu/CWM4 6h7c+KWgRKLbE/7nXwFViCsz1g/egULjDKcBBbXrfllPtyavfMqnz40g0XlTC3tuQAJS fXUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698792013; x=1699396813; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dJWbuo+9TPVToDVPf96jeRxWUliwPBKXtZxQViTwJnU=; b=iGZ4kv7Zki50AHIbTHJogSUwRzOLgOoJ0qUIvLAaKcAh/S4zcziR2HeuhoottrCCxQ bMyCDP8eKGUgkKGba6gfieLzA2/NKbDg6XMXXMxd2gAFj9aGGI4sPb30QUUV+nkIr1w/ eT3wlkMtsBTJ3oC6kJsGXp/VvoK3pfjYtvigZ51XUYjMMhdTv7lkr6cTUpyQZCNLB3F/ c0Zq53XUkiw/ZVL1paZfJ19eWrZFdHjFVYoCqRknzYJueMKwGzpiBuYgjOhY1RJnH47R Zs/q0IEa6PmM2XLp/yPHpfGsmSGwr5ICQkgH0umysCFUpqxUXntekdwoy3Zmg2H+YFJT C8AA== X-Gm-Message-State: AOJu0Ywdqzwwz3aJLWO1hNoddL2IzXMkayZkwrgpTaZ7P/m0G95RK8EC GR9L7kPptyR3L5K0ihyoObLh5jL2sjE67PYIPdhEww== X-Google-Smtp-Source: AGHT+IHkDiPkYLUipg1BNgD620eOceDAkQD+A32NnZclx+AVnVsN45AUMqsjx/qUof6Oj5kTmFWO4hEnjV9b1jDP2pc= X-Received: by 2002:adf:d1ef:0:b0:32f:7db1:22fb with SMTP id g15-20020adfd1ef000000b0032f7db122fbmr8716023wrd.28.1698792012937; Tue, 31 Oct 2023 15:40:12 -0700 (PDT) Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20231027182217.3615211-1-seanjc@google.com> <20231027182217.3615211-17-seanjc@google.com> In-Reply-To: From: David Matlack Date: Tue, 31 Oct 2023 15:39:42 -0700 Message-ID: Subject: Re: [PATCH v13 16/35] KVM: Add KVM_CREATE_GUEST_MEMFD ioctl() for guest-specific backing memory To: Sean Christopherson Cc: Paolo Bonzini , Marc Zyngier , Oliver Upton , Huacai Chen , Michael Ellerman , Anup Patel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexander Viro , Christian Brauner , "Matthew Wilcox (Oracle)" , Andrew Morton , kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, linux-mips@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, kvm-riscv@lists.infradead.org, linux-riscv@lists.infradead.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Xiaoyao Li , Xu Yilun , Chao Peng , Fuad Tabba , Jarkko Sakkinen , Anish Moorthy , Yu Zhang , Isaku Yamahata , =?UTF-8?B?TWlja2HDq2wgU2FsYcO8bg==?= , Vlastimil Babka , Vishal Annapurve , Ackerley Tng , Maciej Szmigiero , David Hildenbrand , Quentin Perret , Michael Roth , Wang , Liam Merwick , Isaku Yamahata , "Kirill A . Shutemov" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Oct 31, 2023 at 2:36=E2=80=AFPM Sean Christopherson wrote: > On Tue, Oct 31, 2023, David Matlack wrote: > > On 2023-10-27 11:21 AM, Sean Christopherson wrote: > > > Introduce an ioctl(), KVM_CREATE_GUEST_MEMFD, to allow creating file-= based > > > memory that is tied to a specific KVM virtual machine and whose prima= ry > > > purpose is to serve guest memory. > > > Maybe can you sketch out how you see this proposal being extensible to > > using guest_memfd for shared mappings? > > For in-place conversions, e.g. pKVM, no additional guest_memfd is needed.= What's > missing there is the ability to (safely) mmap() guest_memfd, e.g. KVM nee= ds to > ensure there are no outstanding references when converting back to privat= e. > > For TDX/SNP, assuming we don't find a performant and robust way to do in-= place > conversions, a second fd+offset pair would be needed. Is there a way to support non-in-place conversions within a single guest_me= mfd?