All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Vetter <daniel@ffwll.ch>
To: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: intel-gfx <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH 3/6] drm/i915: Wrap the preallocated BIOS framebuffer and preserve for KMS fbcon v7
Date: Sat, 14 Dec 2013 11:44:06 +0100	[thread overview]
Message-ID: <20131214104406.GH9804@phenom.ffwll.local> (raw)
In-Reply-To: <20131213164350.49c244c8@jbarnes-desktop>

On Fri, Dec 13, 2013 at 04:43:50PM -0800, Jesse Barnes wrote:
> On Fri, 13 Dec 2013 21:47:45 +0100
> Daniel Vetter <daniel@ffwll.ch> wrote:
> 
> > On Fri, Dec 13, 2013 at 8:09 PM, Jesse Barnes <jbarnes@virtuousgeek.org> wrote:
> > > On Thu, 12 Dec 2013 23:54:37 +0100
> > > Daniel Vetter <daniel@ffwll.ch> wrote:
> > >
> > >> > @@ -258,8 +357,102 @@ static void intel_fbdev_destroy(struct drm_device *dev,
> > >> >
> > >> >     drm_fb_helper_fini(&ifbdev->helper);
> > >> >
> > >> > -   drm_framebuffer_unregister_private(&ifbdev->ifb.base);
> > >> > -   intel_framebuffer_fini(&ifbdev->ifb);
> > >> > +   drm_framebuffer_unregister_private(&ifbdev->fb->base);
> > >> > +   intel_framebuffer_fini(ifbdev->fb);
> > >> > +   kfree(ifbdev->fb);
> > >>
> > >> No need to go the private fb route here anymore since now the fb is
> > >> free-standing. Normal refcounting should work. But a separate prep/cleanup
> > >> patch (prep since switching ifbdev->fb from struct to point would look
> > >> neat as a separate patch).
> > >
> > > Oh and can you explain this?  I wouldn't be surprised if I got the
> > > refcounting wrong, but given how tricky it can be, can you explain
> > > where we'll take the ref here, and show that the right thing will
> > > happen if/when we mode set away from this buffer?
> > >
> > > I haven't actually seen a bug here with or without this patch (no
> > > crashes or warns), but I thought I needed this to make sure the obj
> > > didn't get a negative count after a mode set...
> > 
> > There's no bug here, and if you underrun the the refcount the current
> > logic here won't help. It's just that the explicit call to _fini was
> > an artifact of the old logic with embedding the framebuffer into the
> > fbdev structure. But now that the fbdev framebuffer is freestanding
> > there's no need for that - you exactly duplicate
> > intel_user_framebuffer_destroy now.
> > 
> > So a simple drm_framebuffer_unreference will do the trick and makes it
> > clearer that this is now just another fb object with normal lifetime
> > rules.
> > 
> > I guess I score points for unclear review here ;-)
> 
> Oh!  I had this mixed up with the refs I take in the init_bios code...
> I thought you were saying those weren't necessary and I was getting
> really confused.
> 
> This is just fixing up existing code to use the new field name, so no
> functional change.  I see what you mean about splitting out the field
> change, but now that would be a pain :/

Yeah, the switch from struct to pointer for ifbdev->fb would be neat as a
separate patch, but also real pain to split out now.

> Do you want the above removed as a separate patch regardless of where
> the rest of the patches go?

Imo it should go with the switch to pointers, so this patch here is fine.
Maybe a quick mention in the commit message about it.

Cheers, Daniel
-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch

  reply	other threads:[~2013-12-14 10:43 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-12 20:41 [PATCH 1/6] drm/i915: unconditionally copy mode into crtc at boot time Jesse Barnes
2013-12-12 20:41 ` [PATCH 2/6] drm/i915: retrieve current fb config into new plane_config structure at init Jesse Barnes
2013-12-14 11:01   ` Daniel Vetter
2013-12-17  0:01     ` Jesse Barnes
2013-12-17  8:38       ` Daniel Vetter
2013-12-17 21:04         ` Jesse Barnes
2013-12-17 21:19           ` Daniel Vetter
2013-12-12 20:41 ` [PATCH 3/6] drm/i915: Wrap the preallocated BIOS framebuffer and preserve for KMS fbcon v7 Jesse Barnes
2013-12-12 22:54   ` Daniel Vetter
2013-12-12 23:45     ` Jesse Barnes
2013-12-13 19:09     ` Jesse Barnes
2013-12-13 20:47       ` Daniel Vetter
2013-12-14  0:43         ` Jesse Barnes
2013-12-14 10:44           ` Daniel Vetter [this message]
2013-12-14 11:33             ` Daniel Vetter
2013-12-14 11:13   ` Daniel Vetter
2013-12-14 11:36     ` Daniel Vetter
2014-02-05 14:57       ` Jesse Barnes
2013-12-12 20:41 ` [PATCH 4/6] drm/i915: don't memset the fb buffer if preallocated Jesse Barnes
2013-12-14 11:28   ` Daniel Vetter
2013-12-17  0:17     ` Jesse Barnes
2013-12-17  7:56       ` Daniel Vetter
2013-12-12 20:41 ` [PATCH 5/6] drm/i915/vlv: move DPIO init earlier v2 Jesse Barnes
2013-12-14 10:47   ` Daniel Vetter
2013-12-17  0:02     ` Jesse Barnes
2013-12-12 20:41 ` [PATCH 6/6] drm/i915: inform drm_fb_helper if we abandoned a connected output Jesse Barnes
2013-12-12 22:30   ` Chris Wilson
2013-12-12 22:34     ` Jesse Barnes
2013-12-17  0:18     ` Jesse Barnes
2013-12-12 21:21 ` [PATCH 1/6] drm/i915: unconditionally copy mode into crtc at boot time Daniel Vetter
2013-12-12 21:29   ` Jesse Barnes
2013-12-12 22:39     ` Daniel Vetter
2013-12-12 22:44       ` Jesse Barnes
2013-12-12 23:04         ` Daniel Vetter
2013-12-17  0:35         ` Jesse Barnes
2013-12-17  8:00           ` Daniel Vetter

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=20131214104406.GH9804@phenom.ffwll.local \
    --to=daniel@ffwll.ch \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=jbarnes@virtuousgeek.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.