All of lore.kernel.org
 help / color / mirror / Atom feed
From: Aneesh Kumar K.V <aneesh.kumar@kernel.org>
To: Steffen Eiden <seiden@linux.ibm.com>,
	Christian Borntraeger <borntraeger@linux.ibm.com>,
	Janosch Frank <frankja@linux.ibm.com>,
	Claudio Imbrenda <imbrenda@linux.ibm.com>,
	David Hildenbrand <david@kernel.org>,
	Heiko Carstens <hca@linux.ibm.com>,
	Vasily Gorbik <gor@linux.ibm.com>,
	Alexander Gordeev <agordeev@linux.ibm.com>,
	Sven Schnelle <svens@linux.ibm.com>,
	Sean Christopherson <seanjc@google.com>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
	Borislav Petkov <bp@alien8.de>,
	Dave Hansen <dave.hansen@linux.intel.com>,
	x86@kernel.org, "H. Peter Anvin" <hpa@zytor.com>,
	Matthew Rosato <mjrosato@linux.ibm.com>,
	Farhan Ali <alifm@linux.ibm.com>,
	Eric Farman <farman@linux.ibm.com>,
	Tony Krowiak <akrowiak@linux.ibm.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	Jason Herne <jjherne@linux.ibm.com>,
	Harald Freudenberger <freude@linux.ibm.com>,
	Holger Dengler <dengler@linux.ibm.com>,
	Alex Williamson <alex@shazbot.org>
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	Steffen Eiden <seiden@linux.ibm.com>
Subject: Re: [PATCH v3 2/5] KVM: Add file back-pointer to struct kvm
Date: Wed, 30 Sep 2026 11:26:32 +0530	[thread overview]
Message-ID: <yq5afqyruvsf.fsf@kernel.org> (raw)
In-Reply-To: <20260924-vfio-v3-2-4a294307797b@linux.ibm.com>

Steffen Eiden <seiden@linux.ibm.com> writes:

> Add kvm->file as a no-reference back-pointer to the VM file in struct
> kvm. The pointer is set at VM creation time and cleared under
> WRITE_ONCE() in kvm_vm_release() before the file is freed.
> Callers storing the file must take their own reference.
>

I have a series that does something similar and also updates VFIO:

https://lore.kernel.org/all/20260917140159.1163281-2-aneesh.kumar@kernel.org

Any suggestions on how we can combine the two efforts? This series has
received more feedback from maintainers.

>
> Co-developed-by: Sean Christopherson <seanjc@google.com>
> Signed-off-by: Sean Christopherson <seanjc@google.com>
> Signed-off-by: Steffen Eiden <seiden@linux.ibm.com>
> ---
>  include/linux/kvm_host.h | 6 ++++++
>  virt/kvm/kvm_main.c      | 4 ++++
>  2 files changed, 10 insertions(+)
>
> diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
> index e840ceda9f16..943b108f01cd 100644
> --- a/include/linux/kvm_host.h
> +++ b/include/linux/kvm_host.h
> @@ -784,6 +784,12 @@ struct kvm {
>  	 * kvm_swap_active_memslots().
>  	 */
>  	struct mutex slots_arch_lock;
> +	/*
> +	 * Back-reference to the VM file for subsystems (e.g., VFIO). Holds no
> +	 * reference to avoid pinning the VM. Callers storing the file must
> +	 * take their own reference.
> +	 */
> +	struct file *file;
>

I had to add the file pointer as an __rcu field:

@@ -840,6 +842,7 @@ struct kvm {
	struct srcu_struct srcu;
	struct srcu_struct irq_srcu;
	pid_t userspace_pid;
+	struct file __rcu *_file;
	bool override_halt_poll_ns;
	unsigned int max_halt_poll_ns;
	u32 dirty_ring_size;

because my series uses get_file_active().

>  	struct mm_struct *mm; /* userspace tied to this vm */
>  	unsigned long nr_memslot_pages;
>  	/* The two memslot sets - active and inactive (per address space) */
> diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
> index 0172ca94f82e..bab71d398236 100644
> --- a/virt/kvm/kvm_main.c
> +++ b/virt/kvm/kvm_main.c
> @@ -1352,6 +1352,8 @@ static int kvm_vm_release(struct inode *inode, struct file *filp)
>  
>  	kvm_irqfd_release(kvm);
>  
> +	WRITE_ONCE(kvm->file, NULL);
> +
>  	kvm_put_kvm(kvm);
>  	return 0;
>  }
> @@ -5532,6 +5534,8 @@ static int kvm_dev_ioctl_create_vm(unsigned long type)
>  		goto put_kvm;
>  	}
>  
> +	kvm->file = file;
> +
>  	/*
>  	 * Don't call kvm_put_kvm anymore at this point; file->f_op is
>  	 * already set, with ->release() being kvm_vm_release().  In error
>

-aneesh

  parent reply	other threads:[~2026-09-30  5:56 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-24  8:58 [PATCH v3 0/5] KVM/vfio: Use file-based reference counting for KVM Steffen Eiden
2026-09-24  8:58 ` [PATCH v3 1/5] KVM: Introduce file_to_kvm_<arch>() infrastructure Steffen Eiden
2026-09-24  9:06   ` sashiko-bot
2026-09-24  8:58 ` [PATCH v3 2/5] KVM: Add file back-pointer to struct kvm Steffen Eiden
2026-09-24  9:07   ` sashiko-bot
2026-09-30  5:56   ` Aneesh Kumar K.V [this message]
2026-09-30  7:19     ` Aneesh Kumar K.V
2026-10-01 11:51       ` Steffen Eiden
2026-09-24  8:58 ` [PATCH v3 3/5] KVM: x86: Use file_to_kvm_x86() in SEV Steffen Eiden
2026-09-24  9:04   ` sashiko-bot
2026-09-25  8:35   ` Christian Borntraeger
2026-09-25  9:32     ` Steffen Eiden
2026-09-24  8:58 ` [PATCH v3 4/5] KVM/vfio: Use file-based reference counting for KVM Steffen Eiden
2026-09-24  9:14   ` sashiko-bot
2026-09-25 12:22     ` Christian Borntraeger
2026-09-24 12:47   ` Jason J. Herne
2026-09-24  8:58 ` [PATCH v3 5/5] KVM: Restrict kvm_get_kvm/kvm_put_kvm export to internal KVM modules Steffen Eiden
2026-09-24  9:02   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=yq5afqyruvsf.fsf@kernel.org \
    --to=aneesh.kumar@kernel.org \
    --cc=agordeev@linux.ibm.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=alex@shazbot.org \
    --cc=alifm@linux.ibm.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=david@kernel.org \
    --cc=dengler@linux.ibm.com \
    --cc=farman@linux.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=freude@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=hpa@zytor.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=jjherne@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=mjrosato@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=pbonzini@redhat.com \
    --cc=seanjc@google.com \
    --cc=seiden@linux.ibm.com \
    --cc=svens@linux.ibm.com \
    --cc=tglx@kernel.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.