Message ID | 20170112041817.1102-4-michel.thierry@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On ke, 2017-01-11 at 20:18 -0800, Michel Thierry wrote: > From: Arun Siluvery <arun.siluvery@linux.intel.com> > > In preparation for engine reset work update this parameter to handle more > than one type of reset. Default at the moment is still full gpu reset. > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> > Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com> > Signed-off-by: Michel Thierry <michel.thierry@intel.com> <SNIP> > @@ -113,8 +113,8 @@ MODULE_PARM_DESC(vbt_sdvo_panel_type, > > "Override/Ignore selection of SDVO panel mode in the VBT " > > "(-2=ignore, -1=auto [default], index in VBT BIOS table)"); > > -module_param_named_unsafe(reset, i915.reset, bool, 0600); > -MODULE_PARM_DESC(reset, "Attempt GPU resets (default: true)"); > +module_param_named_unsafe(reset, i915.reset, int, 0600); > +MODULE_PARM_DESC(reset, "Attempt GPU resets (0=disabled, 1=full gpu reset [default], 2=engine reset)"); Would it make sense to have this as bitflags? So you could disable full GPU reset but still enable engine reset? Regards, Joonas
On Thu, Jan 12, 2017 at 02:22:21PM +0200, Joonas Lahtinen wrote: > On ke, 2017-01-11 at 20:18 -0800, Michel Thierry wrote: > > From: Arun Siluvery <arun.siluvery@linux.intel.com> > > > > In preparation for engine reset work update this parameter to handle more > > than one type of reset. Default at the moment is still full gpu reset. > > > > Cc: Chris Wilson <chris@chris-wilson.co.uk> > > Cc: Mika Kuoppala <mika.kuoppala@linux.intel.com> > > Signed-off-by: Arun Siluvery <arun.siluvery@linux.intel.com> > > Signed-off-by: Michel Thierry <michel.thierry@intel.com> > > <SNIP> > > > @@ -113,8 +113,8 @@ MODULE_PARM_DESC(vbt_sdvo_panel_type, > > > "Override/Ignore selection of SDVO panel mode in the VBT " > > > "(-2=ignore, -1=auto [default], index in VBT BIOS table)"); > > > > -module_param_named_unsafe(reset, i915.reset, bool, 0600); > > -MODULE_PARM_DESC(reset, "Attempt GPU resets (default: true)"); > > +module_param_named_unsafe(reset, i915.reset, int, 0600); > > +MODULE_PARM_DESC(reset, "Attempt GPU resets (0=disabled, 1=full gpu reset [default], 2=engine reset)"); > > Would it make sense to have this as bitflags? So you could disable full > GPU reset but still enable engine reset? As it stands from the code currently, not really. The per-engine reset (conceptually) does the same operations as the full reset, just under an engine mask. If we have issues with a global reset, those should plague per-engine reset as well. I would like to keep the user options to a minimum. If our only usecase for this parameter is testing, let's develop those as kselftests. Though disabling reset will still be desired to w/a the occasional hw death. -Chris
diff --git a/drivers/gpu/drm/i915/i915_params.c b/drivers/gpu/drm/i915/i915_params.c index 0e280fbd52f1..c858c4d50491 100644 --- a/drivers/gpu/drm/i915/i915_params.c +++ b/drivers/gpu/drm/i915/i915_params.c @@ -46,7 +46,7 @@ struct i915_params i915 __read_mostly = { .prefault_disable = 0, .load_detect_test = 0, .force_reset_modeset_test = 0, - .reset = true, + .reset = 1, .error_capture = true, .invert_brightness = 0, .disable_display = 0, @@ -113,8 +113,8 @@ MODULE_PARM_DESC(vbt_sdvo_panel_type, "Override/Ignore selection of SDVO panel mode in the VBT " "(-2=ignore, -1=auto [default], index in VBT BIOS table)"); -module_param_named_unsafe(reset, i915.reset, bool, 0600); -MODULE_PARM_DESC(reset, "Attempt GPU resets (default: true)"); +module_param_named_unsafe(reset, i915.reset, int, 0600); +MODULE_PARM_DESC(reset, "Attempt GPU resets (0=disabled, 1=full gpu reset [default], 2=engine reset)"); #if IS_ENABLED(CONFIG_DRM_I915_CAPTURE_ERROR) module_param_named(error_capture, i915.error_capture, bool, 0600); diff --git a/drivers/gpu/drm/i915/i915_params.h b/drivers/gpu/drm/i915/i915_params.h index 8e433de04679..da569e20bbec 100644 --- a/drivers/gpu/drm/i915/i915_params.h +++ b/drivers/gpu/drm/i915/i915_params.h @@ -34,6 +34,7 @@ struct i915_params { int lvds_channel_mode; int panel_use_ssc; int vbt_sdvo_panel_type; + int reset; int enable_rc6; int enable_dc; int enable_fbc; @@ -58,7 +59,6 @@ struct i915_params { bool prefault_disable; bool load_detect_test; bool force_reset_modeset_test; - bool reset; bool error_capture; bool disable_display; bool verbose_state_checks;