From: Ben Widawsky <ben@bwidawsk.net>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 3/5] drm/i915: Extract gen6 aliasing ppgtt code
Date: Sat, 29 Dec 2012 11:45:09 -0800 [thread overview]
Message-ID: <20121229114509.0000701b@unknown> (raw)
In-Reply-To: <84c8a8$74vpth@orsmga001.jf.intel.com>
On Sat, 29 Dec 2012 11:49:01 +0000
Chris Wilson <chris@chris-wilson.co.uk> wrote:
> On Fri, 28 Dec 2012 20:27:27 -0800, Ben Widawsky <ben@bwidawsk.net>
> wrote:
> > This refactor clearly identifies the GEN specific portion of the
> > aliased ppgtt code. Aside from some of the gen specific parts being
> > extracted, it also preps us for an upcoming patch that pulls out
> > the size, which has some nice benefits.
>
> Error handling looks a little wonky.
I've not looked in much detail yet, but I'll assume you're right since
I did this pretty quickly. So given that assumption, what do you think
of the patches, useful, or waste of code complexity?
>
> >
> > Signed-off-by: Ben Widawsky <ben@bwidawsk.net>
> > ---
> > drivers/gpu/drm/i915/i915_gem_gtt.c | 51
> > ++++++++++++++++++++++--------------- 1 file changed, 30
> > insertions(+), 21 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > b/drivers/gpu/drm/i915/i915_gem_gtt.c index 94d21aa..3b1bff1 100644
> > --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> > +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> > @@ -108,29 +108,20 @@ static void i915_ppgtt_clear_range(struct
> > i915_hw_ppgtt *ppgtt, }
> > }
> >
> > -static int i915_gem_init_aliasing_ppgtt(struct drm_device *dev)
> > +static int gen6_init_aliasing_ppgtt(struct i915_hw_ppgtt *ppgtt)
> > {
> > + struct drm_device *dev = ppgtt->dev;
> > struct drm_i915_private *dev_priv = dev->dev_private;
> > - struct i915_hw_ppgtt *ppgtt;
> > unsigned first_pd_entry_in_global_pt;
> > - int i;
> > - int ret = -ENOMEM;
> > + int i, ret = -ENOMEM;
> >
> > /* ppgtt PDEs reside in the global gtt pagetable, which
> > has 512*1024
> > * entries. For aliasing ppgtt support we just steal them
> > at the end for
> > * now. */
> > first_pd_entry_in_global_pt =
> > dev_priv->mm.gtt->gtt_total_entries - I915_PPGTT_PD_ENTRIES; -
> > - ppgtt = kzalloc(sizeof(*ppgtt), GFP_KERNEL);
> > - if (!ppgtt)
> > - return ret;
> > -
> > - ppgtt->dev = dev;
> > ppgtt->num_pd_entries = I915_PPGTT_PD_ENTRIES;
> > ppgtt->pt_pages = kzalloc(sizeof(struct page
> > *)*ppgtt->num_pd_entries, GFP_KERNEL);
> > - if (!ppgtt->pt_pages)
> > - goto err_ppgtt;
>
> I think you still want this...
>
> > @@ -185,9 +171,32 @@ err_pt_alloc:
> > if (ppgtt->pt_pages[i])
> > __free_page(ppgtt->pt_pages[i]);
> > }
> > - kfree(ppgtt->pt_pages);
> > -err_ppgtt:
> > - kfree(ppgtt);
> > +
> > + if (!ppgtt->pt_pages)
> > + kfree(ppgtt->pt_pages);
>
> And will want to reconsider this chunk.
> -Chris
>
next prev parent reply other threads:[~2012-12-29 19:45 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-29 4:27 [PATCH 1/5] drm/i915: trivial: kill-agp collateral cleanups Ben Widawsky
2012-12-29 4:27 ` [PATCH 2/5] drm/i915: Reclaim GTT space for failed PPGTT Ben Widawsky
2012-12-29 4:27 ` [PATCH 3/5] drm/i915: Extract gen6 aliasing ppgtt code Ben Widawsky
2012-12-29 11:49 ` Chris Wilson
2012-12-29 19:45 ` Ben Widawsky [this message]
2012-12-29 23:44 ` Chris Wilson
2012-12-29 4:27 ` [PATCH 4/5] drm/i915: Aliased PPGTT size abstraction Ben Widawsky
2012-12-29 4:27 ` [PATCH 5/5] drm/i915: Dynamically calculate dclv Ben Widawsky
-- strict thread matches above, loose matches on Subject: below --
2013-01-26 0:41 [PATCH 0/5] [REPOST] GTT cleanups, rebased Ben Widawsky
2013-01-26 0:41 ` [PATCH 3/5] drm/i915: Extract gen6 aliasing ppgtt code Ben Widawsky
2013-01-29 12:55 ` Daniel Vetter
2013-01-29 19:00 ` Ben Widawsky
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=20121229114509.0000701b@unknown \
--to=ben@bwidawsk.net \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.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.