All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alex Williamson <alex.williamson@redhat.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Jason Gunthorpe <jgg@nvidia.com>,
	Kirti Wankhede <kwankhede@nvidia.com>,
	Tony Krowiak <akrowiak@linux.ibm.com>,
	Halil Pasic <pasic@linux.ibm.com>,
	Jason Herne <jjherne@linux.ibm.com>,
	Eric Farman <farman@linux.ibm.com>,
	Matthew Rosato <mjrosato@linux.ibm.com>,
	Zhenyu Wang <zhenyuw@linux.intel.com>,
	Zhi Wang <zhi.a.wang@intel.com>,
	kvm@vger.kernel.org, linux-s390@vger.kernel.org,
	intel-gvt-dev@lists.freedesktop.org
Subject: Re: [PATCH 15/15] vfio/mdev: remove an extra parent kobject reference
Date: Thu, 7 Jul 2022 17:01:39 -0600	[thread overview]
Message-ID: <20220707170139.1b2f977e.alex.williamson@redhat.com> (raw)
In-Reply-To: <20220707134052.GC19060@lst.de>

On Thu, 7 Jul 2022 15:40:52 +0200
Christoph Hellwig <hch@lst.de> wrote:

> On Wed, Jul 06, 2022 at 11:38:33AM -0300, Jason Gunthorpe wrote:
> > On Wed, Jul 06, 2022 at 09:42:19AM +0200, Christoph Hellwig wrote:  
> > > The mdev_type already holds a reference to the parent through
> > > mdev_types_kset, so drop the extra reference.  
> > 
> > I would drop this patch, but at least the explanation needs tweaking..  
> 
> I'm fine with that.  Alex, any preferences?

Modulo the bogus kobject_put()s, this essentially reverts:

commit 9a302449a58d45d0ef2aab686f64b35919bc604c
Author: Jason Gunthorpe <jgg@ziepe.ca>
Date:   Tue Apr 6 16:40:30 2021 -0300

    vfio/mdev: Add missing reference counting to mdev_type
    
    struct mdev_type holds a pointer to the kref'd object struct mdev_parent,
    but doesn't hold the kref. The lifetime of the parent becomes implicit
    because parent_remove_sysfs_files() is supposed to remove all the access
    before the parent can be freed, but this is very hard to reason about.
    
    Make it obviously correct by adding the missing get.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: Kevin Tian <kevin.tian@intel.com>
    Reviewed-by: Cornelia Huck <cohuck@redhat.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Message-Id: <7-v2-d36939638fc6+d54-vfio2_jgg@nvidia.com>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>

Which we all seemed to think was a good thing 15 months ago.  It is
still difficult to reason when the mdev_type_ktype.release function
occurs relative to the parent reference held by the kset, but without
an explanation how we're safe, I'm ok with a little paranoia and
explicit references.  Thanks,

Alex


  reply	other threads:[~2022-07-07 23:01 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-06  7:42 simplify the mdev interface v5 Christoph Hellwig
2022-07-06  7:42 ` [PATCH 01/15] drm/i915/gvt: fix a memory leak in intel_gvt_init_vgpu_types Christoph Hellwig
2022-07-06  7:42 ` [PATCH 02/15] drm/i915/gvt: simplify vgpu configuration management Christoph Hellwig
2022-07-07  2:18   ` Tian, Kevin
2022-07-06  7:42 ` [PATCH 03/15] vfio/mdev: make mdev.h standalone includable Christoph Hellwig
2022-07-06  7:42 ` [PATCH 04/15] vfio/mdev: embedd struct mdev_parent in the parent data structure Christoph Hellwig
2022-07-06 13:29   ` Kirti Wankhede
2022-07-07  3:08   ` Eric Farman
2022-07-07  7:22     ` Vineeth Vijayan
2022-07-07 13:40       ` Christoph Hellwig
2022-07-06  7:42 ` [PATCH 05/15] vfio/mdev: simplify mdev_type handling Christoph Hellwig
2022-07-06 13:31   ` Kirti Wankhede
2022-07-06  7:42 ` [PATCH 06/15] vfio/mdev: remove mdev_from_dev Christoph Hellwig
2022-07-06  7:42 ` [PATCH 07/15] vfio/mdev: unexport mdev_bus_type Christoph Hellwig
2022-07-06  7:42 ` [PATCH 08/15] vfio/mdev: remove mdev_parent_dev Christoph Hellwig
2022-07-06  7:42 ` [PATCH 09/15] vfio/mdev: remove mtype_get_parent_dev Christoph Hellwig
2022-07-06  7:42 ` [PATCH 10/15] vfio/mdev: consolidate all the device_api sysfs into the core code Christoph Hellwig
2022-07-06  7:42 ` [PATCH 11/15] vfio/mdev: consolidate all the name " Christoph Hellwig
2022-07-06  7:42 ` [PATCH 12/15] vfio/mdev: consolidate all the available_instance " Christoph Hellwig
2022-07-06  7:42 ` [PATCH 13/15] vfio/mdev: consolidate all the description " Christoph Hellwig
2022-07-06  7:42 ` [PATCH 14/15] vfio/mdev: add mdev available instance checking to the core Christoph Hellwig
2022-07-06 13:37   ` Kirti Wankhede
2022-07-07  3:08   ` Eric Farman
2022-07-08  5:48     ` Christoph Hellwig
2022-07-06  7:42 ` [PATCH 15/15] vfio/mdev: remove an extra parent kobject reference Christoph Hellwig
2022-07-06 13:48   ` Kirti Wankhede
2022-07-07 13:37     ` Christoph Hellwig
2022-07-06 14:38   ` Jason Gunthorpe
2022-07-07 13:40     ` Christoph Hellwig
2022-07-07 23:01       ` Alex Williamson [this message]
2022-07-07  2:19   ` Tian, Kevin

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=20220707170139.1b2f977e.alex.williamson@redhat.com \
    --to=alex.williamson@redhat.com \
    --cc=akrowiak@linux.ibm.com \
    --cc=farman@linux.ibm.com \
    --cc=hch@lst.de \
    --cc=intel-gvt-dev@lists.freedesktop.org \
    --cc=jgg@nvidia.com \
    --cc=jjherne@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwankhede@nvidia.com \
    --cc=linux-s390@vger.kernel.org \
    --cc=mjrosato@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=zhenyuw@linux.intel.com \
    --cc=zhi.a.wang@intel.com \
    /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.