From: Daniel Vetter <daniel@ffwll.ch>
To: "Volkin, Bradley D" <bradley.d.volkin@intel.com>
Cc: "intel-gfx@lists.freedesktop.org" <intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915: Use hash tables for the command parser
Date: Mon, 12 May 2014 18:24:06 +0200 [thread overview]
Message-ID: <20140512162406.GK25056@phenom.ffwll.local> (raw)
In-Reply-To: <20140508160218.GA21867@bdvolkin-ubuntu-desktop>
On Thu, May 08, 2014 at 09:02:18AM -0700, Volkin, Bradley D wrote:
> On Thu, May 08, 2014 at 08:45:07AM -0700, Ville Syrjälä wrote:
> > On Thu, May 08, 2014 at 08:27:16AM -0700, Volkin, Bradley D wrote:
> > > On Thu, May 08, 2014 at 02:56:05AM -0700, Tvrtko Ursulin wrote:
> > > >
> > > > Hi Brad,
> > > >
> > > > On 04/28/2014 04:22 PM, bradley.d.volkin@intel.com wrote:
> > > > [snip]
> > > > > - BUG_ON(!validate_cmds_sorted(ring));
> > > > > + BUG_ON(!validate_cmds_sorted(ring, cmd_tables, cmd_table_count));
> > > > > BUG_ON(!validate_regs_sorted(ring));
> > > > > +
> > > > > + BUG_ON(init_hash_table(ring, cmd_tables, cmd_table_count));
> > > >
> > > > Is a BUG_ON a bit harsh since the above fails only on ENOMEM condition?
> > > >
> > > > If the concern is not allowing any command execution if parser setup has
> > > > failed, it would be nicer to the system as whole to just keep rejecting
> > > > everything, but let the rest of the kernel live to enable debug or whatever?
> > > >
> > > > I know it won't happen almost ever so it's a minor point really. I just
> > > > dislike actively hosing the whole system if it is avoidable.
> > >
> > > Hi Tvrtko,
> > >
> > > I agree that a BUG_ON might be harsh here. I suppose we could log an
> > > error and disable the command parser. Most command buffers would
> > > still go through fine but HW parsing would reject some that the SW
> > > parser might otherwise allow. That could be a bit odd if we ever did
> > > get a failure - apps/functionality that worked the last time I booted
> > > suddenly don't this time. The issue would be in the log though.
> > >
> > > I don't have a strong preference on this. Whatever people prefer.
> >
> > If the memory allocation fails there's probably not much point in
> > trying to limp along and continue the driver init. So just pass error
> > up and let the caller deal with it.
> >
> > Looking at the error paths up from ring init, we probably leak a ton
> > of junk but at least the kernel should remain otherwise operational.
>
> Passing the error up is probably a good option. There was a recent change
> to mark the GPU as wedged if ring init fails, which seems like a reasonable
> enough response to parser init failure. I'll have to look at the cleanup
> paths. The per-ring parser init can probably move around to avoid excessive
> additional cleanup code on failure paths.
With the latest ring init rework from Chris we should just fail the gem
side of things and declare the gpu terminally wedged. But the modeset side
should keep on working, which means users will be able to take a look at
dmesg instead of a black screen (since that's what you get from BUG_ON in
driver load often).
Working modeset with broken gpu is infinitely better than a black screen,
so no BUG_ON here please. At least if the error code isn't much more than
a simply return, we always have to balance bugs in the error code with
better abilities to limp on long enough for a useful bug report.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
next prev parent reply other threads:[~2014-05-12 16:24 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-28 15:22 [PATCH] drm/i915: Use hash tables for the command parser bradley.d.volkin
2014-04-28 15:42 ` Daniel Vetter
2014-04-28 16:01 ` Volkin, Bradley D
2014-04-28 15:48 ` Volkin, Bradley D
2014-04-28 15:53 ` Daniel Vetter
2014-04-28 16:07 ` Volkin, Bradley D
2014-04-28 16:11 ` Daniel Vetter
2014-05-07 16:34 ` Volkin, Bradley D
2014-05-08 9:56 ` Tvrtko Ursulin
2014-05-08 11:44 ` Damien Lespiau
2014-05-08 12:25 ` Tvrtko Ursulin
2014-05-08 13:02 ` Damien Lespiau
2014-05-08 13:24 ` Tvrtko Ursulin
2014-05-08 13:52 ` Damien Lespiau
2014-05-08 15:27 ` Volkin, Bradley D
2014-05-08 15:45 ` Ville Syrjälä
2014-05-08 16:02 ` Volkin, Bradley D
2014-05-12 16:24 ` Daniel Vetter [this message]
2014-05-12 16:41 ` Volkin, Bradley D
2014-05-12 17:47 ` Daniel Vetter
2014-05-08 15:50 ` Tvrtko Ursulin
2014-05-08 16:04 ` Volkin, Bradley D
2014-05-08 13:05 ` Damien Lespiau
2014-05-08 13:15 ` Damien Lespiau
2014-05-08 15:53 ` Volkin, Bradley D
2014-05-08 15:59 ` Damien Lespiau
2014-05-08 13:42 ` Tvrtko Ursulin
2014-05-08 15:40 ` Volkin, Bradley D
-- strict thread matches above, loose matches on Subject: below --
2014-05-10 21:10 bradley.d.volkin
2014-05-12 13:47 ` Damien Lespiau
2014-05-12 14:49 ` Tvrtko Ursulin
2014-05-12 16:49 ` 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=20140512162406.GK25056@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=bradley.d.volkin@intel.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox