[Intel-gfx] [PATCH xf86-video-intel] sna/io: Align the linear source buffer to cache line for 2d blt

2018-09-03 Thread Guang Bai
On SKL+ the linear source buffer has to start from cache line boundary
to meet the 2d engine source copy requirements.

Signed-off-by: Guang Bai 
---
 src/sna/sna_io.c | 17 +++--
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/sna/sna_io.c b/src/sna/sna_io.c
index d32bd58..5bfbdbb 100644
--- a/src/sna/sna_io.c
+++ b/src/sna/sna_io.c
@@ -1064,7 +1064,7 @@ tile:
if (kgem->gen >= 0100) {
cmd |= 8;
do {
-   int nbox_this_time, rem;
+   int nbox_this_time, rem, pitch_aligned;
 
nbox_this_time = nbox;
rem = kgem_batch_space(kgem);
@@ -1077,12 +1077,16 @@ tile:
 
/* Count the total number of bytes to be read and 
allocate a
 * single buffer large enough. Or if it is very small, 
combine
-* with other allocations. */
+* with other allocations. Each sub-buffer starting 
point has
+* to be aligned to 64 bytes to conform latest hardware 
requirments.
+* Align the pitch of each sub-buffer to 64 bytes for 
simplicities.
+*/
offset = 0;
for (n = 0; n < nbox_this_time; n++) {
int height = box[n].y2 - box[n].y1;
int width = box[n].x2 - box[n].x1;
-   offset += PITCH(width, 
dst->drawable.bitsPerPixel >> 3) * height;
+   pitch_aligned = ALIGN(PITCH(width, 
dst->drawable.bitsPerPixel >> 3), 64);
+   offset += pitch_aligned * height;
}
 
src_bo = kgem_create_buffer(kgem, offset,
@@ -1113,9 +1117,10 @@ tile:
assert(box->x1 + dst_dx >= 0);
assert(box->y1 + dst_dy >= 0);
 
+   pitch_aligned = ALIGN(pitch, 64);
memcpy_blt(src, (char *)ptr + offset,
   dst->drawable.bitsPerPixel,
-  stride, pitch,
+  stride, pitch_aligned,
   box->x1 + src_dx, box->y1 + 
src_dy,
   0, 0,
   width, height);
@@ -1133,7 +1138,7 @@ tile:
 
KGEM_RELOC_FENCED,
 0);
b[6] = 0;
-   b[7] = pitch;
+   b[7] = pitch_aligned;
*(uint64_t *)(b+8) =
kgem_add_reloc64(kgem, 
kgem->nbatch + 8, src_bo,
 
I915_GEM_DOMAIN_RENDER << 16 |
@@ -1142,7 +1147,7 @@ tile:
kgem->nbatch += 10;
 
box++;
-   offset += pitch * height;
+   offset += pitch_aligned * height;
} while (--nbox_this_time);
assert(offset == __kgem_buffer_size(src_bo));
sigtrap_put();
-- 
2.7.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] [intel-gfx] drm/i915/intel_csr.c Added ICL Stepping info.

2018-09-03 Thread Yadav, Jyoti R
Yeah, Thanks for the "Acked-by" Rodrigo.

I request Imre/Anusha to review/acknowledge the same.

Regards
Jyoti

-Original Message-
From: Vivi, Rodrigo 
Sent: Tuesday, September 4, 2018 11:02 AM
To: Yadav, Jyoti R 
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [Intel-gfx] [PATCH] [intel-gfx] drm/i915/intel_csr.c Added ICL 
Stepping info.

On Mon, Sep 03, 2018 at 03:45:13AM -0400, Jyoti Yadav wrote:
> As DMC Package contain DMC FW for multiple steppings including default 
> stepping. This patch will help to load FW for that particular 
> stepping, if FW for that stepping is available, instead of loading default FW.
> 

Cc: Imre Deak 
Cc: Anusha Srivatsa 
> Signed-off-by: Jyoti Yadav 

I'm not sure if I can properly review this, but based on previous platforms 
patch lgtm.

Acked-by: Rodrigo Vivi 

I'm just not pushing because I'd like an ack from Anusha and/or Imre.

> ---
>  drivers/gpu/drm/i915/intel_csr.c | 8 
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_csr.c 
> b/drivers/gpu/drm/i915/intel_csr.c
> index 1ec4f09..f6352ab 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -183,6 +183,11 @@ struct stepping_info {
>   {'A', '0'}, {'A', '1'}, {'A', '2'},
>   {'B', '0'}, {'B', '1'}, {'B', '2'}
>  };

nip by checkpatch: missing blank line here.

> +static const struct stepping_info icl_stepping_info[] = {
> + {'A', '0'}, {'A', '1'}, {'A', '2'},
> + {'B', '0'}, {'B', '2'},
> + {'C', '0'}
> +};
>  
>  static const struct stepping_info no_stepping_info = { '*', '*' };
>  
> @@ -198,6 +203,9 @@ struct stepping_info {
>   } else if (IS_BROXTON(dev_priv)) {
>   size = ARRAY_SIZE(bxt_stepping_info);
>   si = bxt_stepping_info;
> + } else if (IS_ICELAKE(dev_priv)) {
> + size = ARRAY_SIZE(icl_stepping_info);
> + si = icl_stepping_info;
>   } else {
>   size = 0;
>   si = NULL;
> --
> 1.9.1
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] [intel-gfx] drm/i915/intel_csr.c Added ICL Stepping info.

2018-09-03 Thread Rodrigo Vivi
On Mon, Sep 03, 2018 at 03:45:13AM -0400, Jyoti Yadav wrote:
> As DMC Package contain DMC FW for multiple steppings including default
> stepping. This patch will help to load FW for that particular stepping,
> if FW for that stepping is available, instead of loading default FW.
> 

Cc: Imre Deak 
Cc: Anusha Srivatsa 
> Signed-off-by: Jyoti Yadav 

I'm not sure if I can properly review this, but based on previous
platforms patch lgtm.

Acked-by: Rodrigo Vivi 

I'm just not pushing because I'd like an ack from Anusha and/or Imre.

> ---
>  drivers/gpu/drm/i915/intel_csr.c | 8 
>  1 file changed, 8 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_csr.c 
> b/drivers/gpu/drm/i915/intel_csr.c
> index 1ec4f09..f6352ab 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -183,6 +183,11 @@ struct stepping_info {
>   {'A', '0'}, {'A', '1'}, {'A', '2'},
>   {'B', '0'}, {'B', '1'}, {'B', '2'}
>  };

nip by checkpatch: missing blank line here.

> +static const struct stepping_info icl_stepping_info[] = {
> + {'A', '0'}, {'A', '1'}, {'A', '2'},
> + {'B', '0'}, {'B', '2'},
> + {'C', '0'}
> +};
>  
>  static const struct stepping_info no_stepping_info = { '*', '*' };
>  
> @@ -198,6 +203,9 @@ struct stepping_info {
>   } else if (IS_BROXTON(dev_priv)) {
>   size = ARRAY_SIZE(bxt_stepping_info);
>   si = bxt_stepping_info;
> + } else if (IS_ICELAKE(dev_priv)) {
> + size = ARRAY_SIZE(icl_stepping_info);
> + si = icl_stepping_info;
>   } else {
>   size = 0;
>   si = NULL;
> -- 
> 1.9.1
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/1] firmware/dmc/icl: load v1.07 on icelake.

2018-09-03 Thread Rodrigo Vivi
On Mon, Sep 03, 2018 at 01:00:39PM +0300, Imre Deak wrote:
> On Mon, Aug 27, 2018 at 05:38:44PM -0700, Anusha Srivatsa wrote:
> > Add Support to load DMC on Icelake.
> > 
> > While at it, also add support to load the firmware
> > during system resume.
> > 
> > v2: load firmware during system resume.(Imre)
> > 
> > v3: enable has_csr for icelake.(Jyoti)
> > 
> > v4: Only load the firmware in this patch
> > 
> > Cc: Jyoti Yadav 
> > Cc: Imre Deak 
> > Cc: Rodrigo Vivi 
> > Cc: Paulo Zanoni 
> > Signed-off-by: Anusha Srivatsa 
> 
> Reviewed-by: Imre Deak 
> 
> Is it ok to push this already now that the ICL 1.07 firmware is in [1]
> or do we have to wait until it propagates to [2]?

The main motivation behind having drm-firmware is the unpredictability
of linux-firmware.git pull requests acceptance. It may take 1 day or it
may take 2 months.

So on drm-firmware we at least have it public in a way OSVs
could easisly backport. Although hopefully by the end of 4.20
cycle I believe it will be there on linux-firmware.git already.

So if fw is already on drm-firmware and passing all tests
we should be able to push the patch to dinq.

Thanks,
Rodrigo.

> 
> [1] https://cgit.freedesktop.org/drm/drm-firmware/
> [2] 
> https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
> 
> > ---
> >  drivers/gpu/drm/i915/intel_csr.c| 7 +++
> >  drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++
> >  2 files changed, 10 insertions(+)
> > 
> > diff --git a/drivers/gpu/drm/i915/intel_csr.c 
> > b/drivers/gpu/drm/i915/intel_csr.c
> > index 1ec4f09c61f6..6d9d47322405 100644
> > --- a/drivers/gpu/drm/i915/intel_csr.c
> > +++ b/drivers/gpu/drm/i915/intel_csr.c
> > @@ -34,6 +34,9 @@
> >   * low-power state and comes back to normal.
> >   */
> >  
> > +#define I915_CSR_ICL "i915/icl_dmc_ver1_07.bin"
> > +#define ICL_CSR_VERSION_REQUIRED   CSR_VERSION(1, 7)
> > +
> >  #define I915_CSR_GLK "i915/glk_dmc_ver1_04.bin"
> >  MODULE_FIRMWARE(I915_CSR_GLK);
> >  #define GLK_CSR_VERSION_REQUIRED   CSR_VERSION(1, 4)
> > @@ -301,6 +304,8 @@ static uint32_t *parse_csr_fw(struct drm_i915_private 
> > *dev_priv,
> > if (csr->fw_path == i915_modparams.dmc_firmware_path) {
> > /* Bypass version check for firmware override. */
> > required_version = csr->version;
> > +   } else if (IS_ICELAKE(dev_priv)) {
> > +   required_version = ICL_CSR_VERSION_REQUIRED;
> > } else if (IS_CANNONLAKE(dev_priv)) {
> > required_version = CNL_CSR_VERSION_REQUIRED;
> > } else if (IS_GEMINILAKE(dev_priv)) {
> > @@ -458,6 +463,8 @@ void intel_csr_ucode_init(struct drm_i915_private 
> > *dev_priv)
> >  
> > if (i915_modparams.dmc_firmware_path)
> > csr->fw_path = i915_modparams.dmc_firmware_path;
> > +   else if (IS_ICELAKE(dev_priv))
> > +   csr->fw_path = I915_CSR_ICL;
> > else if (IS_CANNONLAKE(dev_priv))
> > csr->fw_path = I915_CSR_CNL;
> > else if (IS_GEMINILAKE(dev_priv))
> > diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c 
> > b/drivers/gpu/drm/i915/intel_runtime_pm.c
> > index 2852395125cd..bd7da068e813 100644
> > --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> > +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> > @@ -3563,6 +3563,9 @@ static void icl_display_core_init(struct 
> > drm_i915_private *dev_priv,
> >  
> > /* 7. Setup MBUS. */
> > icl_mbus_init(dev_priv);
> > +
> > +   if (resume && dev_priv->csr.dmc_payload)
> > +   intel_csr_load_program(dev_priv);
> >  }
> >  
> >  static void icl_display_core_uninit(struct drm_i915_private *dev_priv)
> > -- 
> > 2.17.1
> > 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH v2] drm/i915: Fix ICL+ HDMI clock readout

2018-09-03 Thread Rodrigo Vivi
On Mon, Sep 03, 2018 at 05:28:41PM +0300, Ville Syrjala wrote:
> From: Ville Syrjälä 
> 
> Copy the 38.4 vs. 19.2 MHz ref clock exception from the dpll
> mgr into the clock readout function as well.
> 
> v2: Refactor the code into a common function
> s/is_icl/gen11+/ (Rodrigo)

neat

> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107722
> Signed-off-by: Ville Syrjälä 
> Reviewed-by: Rodrigo Vivi  #v1

Reviewed-by: Rodrigo Vivi 

> ---
>  drivers/gpu/drm/i915/intel_ddi.c  |  2 +-
>  drivers/gpu/drm/i915/intel_dpll_mgr.c | 23 +++
>  drivers/gpu/drm/i915/intel_dpll_mgr.h |  1 +
>  3 files changed, 17 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_ddi.c 
> b/drivers/gpu/drm/i915/intel_ddi.c
> index f3b115ce4029..3e64488a2b0a 100644
> --- a/drivers/gpu/drm/i915/intel_ddi.c
> +++ b/drivers/gpu/drm/i915/intel_ddi.c
> @@ -1414,7 +1414,7 @@ static int cnl_calc_wrpll_link(struct drm_i915_private 
> *dev_priv,
>   break;
>   }
>  
> - ref_clock = dev_priv->cdclk.hw.ref;
> + ref_clock = cnl_hdmi_pll_ref_clock(dev_priv);
>  
>   dco_freq = (cfgcr0 & DPLL_CFGCR0_DCO_INTEGER_MASK) * ref_clock;
>  
> diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c 
> b/drivers/gpu/drm/i915/intel_dpll_mgr.c
> index 04d41bc1a4bb..e6cac9225536 100644
> --- a/drivers/gpu/drm/i915/intel_dpll_mgr.c
> +++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c
> @@ -2212,6 +2212,20 @@ static void cnl_wrpll_params_populate(struct 
> skl_wrpll_params *params,
>   params->dco_fraction = dco & 0x7fff;
>  }
>  
> +int cnl_hdmi_pll_ref_clock(struct drm_i915_private *dev_priv)
> +{
> + int ref_clock = dev_priv->cdclk.hw.ref;
> +
> + /*
> +  * For ICL+, the spec states: if reference frequency is 38.4,
> +  * use 19.2 because the DPLL automatically divides that by 2.
> +  */
> + if (INTEL_GEN(dev_priv) >= 11 && ref_clock == 38400)
> + ref_clock = 19200;
> +
> + return ref_clock;
> +}
> +
>  static bool
>  cnl_ddi_calculate_wrpll(int clock,
>   struct drm_i915_private *dev_priv,
> @@ -2251,14 +2265,7 @@ cnl_ddi_calculate_wrpll(int clock,
>  
>   cnl_wrpll_get_multipliers(best_div, , , );
>  
> - ref_clock = dev_priv->cdclk.hw.ref;
> -
> - /*
> -  * For ICL, the spec states: if reference frequency is 38.4, use 19.2
> -  * because the DPLL automatically divides that by 2.
> -  */
> - if (IS_ICELAKE(dev_priv) && ref_clock == 38400)
> - ref_clock = 19200;
> + ref_clock = cnl_hdmi_pll_ref_clock(dev_priv);
>  
>   cnl_wrpll_params_populate(wrpll_params, best_dco, ref_clock, pdiv, qdiv,
> kdiv);
> diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.h 
> b/drivers/gpu/drm/i915/intel_dpll_mgr.h
> index 7e522cf4f13f..bf0de8a4dc63 100644
> --- a/drivers/gpu/drm/i915/intel_dpll_mgr.h
> +++ b/drivers/gpu/drm/i915/intel_dpll_mgr.h
> @@ -344,5 +344,6 @@ void intel_dpll_dump_hw_state(struct drm_i915_private 
> *dev_priv,
> struct intel_dpll_hw_state *hw_state);
>  int icl_calc_dp_combo_pll_link(struct drm_i915_private *dev_priv,
>  uint32_t pll_id);
> +int cnl_hdmi_pll_ref_clock(struct drm_i915_private *dev_priv);
>  
>  #endif /* _INTEL_DPLL_MGR_H_ */
> -- 
> 2.16.4
> 
> ___
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PULL] gvt-fixes for 4.19

2018-09-03 Thread Rodrigo Vivi
On Tue, Sep 04, 2018 at 10:54:37AM +0800, Zhenyu Wang wrote:
> 
> Hi,
> 
> Here's current gvt-fixes for 4.19 with more BXT fixes,
> two guest warning fixes, dmabuf format mod fix and one
> for recent multiple VM timeout failure.

pulled, thanks!

> 
> Thanks
> --
> The following changes since commit 80ab316901bc4ae6dd0b5903dbe22766307eac9b:
> 
>   drm/i915/audio: Hook up component bindings even if displays are disabled 
> (2018-08-29 14:11:53 -0700)
> 
> are available in the Git repository at:
> 
>   https://github.com/intel/gvt-linux.git tags/gvt-fixes-2018-09-04
> 
> for you to fetch changes up to 54ff01fd0d44b9681615f77c15fe9ea6dfadb501:
> 
>   drm/i915/gvt: Give new born vGPU higher scheduling chance (2018-09-03 
> 14:28:23 +0800)
> 
> 
> gvt-fixes-2018-09-04
> 
> - two BXT virtual display emulation fixes (Colin)
> - gen9 dbuf guest warning fix (Xiaolin)
> - vgpu close pm warning fix (Hang)
> - dmabuf format_mod fix (Zhenyu)
> - multiple VM guest failure fix for scheduling (Zhenyu)
> 
> 
> Colin Xu (2):
>   drm/i915/gvt: Make correct handling to vreg BXT_PHY_CTL_FAMILY
>   drm/i915/gvt: Handle GEN9_WM_CHICKEN3 with F_CMD_ACCESS.
> 
> Hang Yuan (1):
>   drm/i915/gvt: move intel_runtime_pm_get out of spin_lock in 
> stop_schedule
> 
> Xiaolin Zhang (1):
>   drm/i915/gvt: emulate gen9 dbuf ctl register access
> 
> Zhenyu Wang (2):
>   drm/i915/gvt: Fix drm_format_mod value for vGPU plane
>   drm/i915/gvt: Give new born vGPU higher scheduling chance
> 
>  drivers/gpu/drm/i915/gvt/dmabuf.c   | 33 ++---
>  drivers/gpu/drm/i915/gvt/fb_decoder.c   |  5 ++---
>  drivers/gpu/drm/i915/gvt/fb_decoder.h   |  2 +-
>  drivers/gpu/drm/i915/gvt/handlers.c | 33 +++--
>  drivers/gpu/drm/i915/gvt/mmio_context.c |  2 --
>  drivers/gpu/drm/i915/gvt/sched_policy.c | 37 
> ++---
>  6 files changed, 86 insertions(+), 26 deletions(-)
> 
> 
> -- 
> Open Source Technology Center, Intel ltd.
> 
> $gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827


___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PULL] gvt-next for 4.20

2018-09-03 Thread Zhenyu Wang

Hi,

Here's initial gvt-next for 4.20 with two optimization for
guest context shadowing and command parser, and with W=1 build fixes.

Thanks
--
The following changes since commit 279ce5d117078ee8ea40c40199399889981fd808:

  drm/i915/gvt: declare gvt as i915's soft dependency (2018-07-10 11:13:11 
+0800)

are available in the Git repository at:

  https://github.com/intel/gvt-linux.git tags/gvt-next-2018-09-04

for you to fetch changes up to 69ca5af4ff9a3ff96e4595c2b7522c01a2641779:

  drm/i915/gvt: Move some MMIO definitions to reg.h (2018-08-07 10:40:11 +0800)


gvt-next-2018-09-04

- guest context shadow optimization for restore inhibit one (Yan)
- cmd parser optimization (Yan)
- W=1 warning fixes (Zhenyu)


Zhao Yan (2):
  drm/i915/gvt: add a fastpath for cmd parsing on MI_NOOP
  drm/i915/gvt: only copy the first page for restore inhibit context

Zhenyu Wang (3):
  drm/i915/gvt: make dma map/unmap kvmgt functions as static
  drm/i915/gvt: Fix function comment doc errors
  drm/i915/gvt: Move some MMIO definitions to reg.h

 drivers/gpu/drm/i915/gvt/cfg_space.c| 12 +++
 drivers/gpu/drm/i915/gvt/cmd_parser.c   | 11 +-
 drivers/gpu/drm/i915/gvt/display.c  |  1 +
 drivers/gpu/drm/i915/gvt/edid.c |  9 +
 drivers/gpu/drm/i915/gvt/gtt.c  |  9 +++--
 drivers/gpu/drm/i915/gvt/gvt.c  |  3 +-
 drivers/gpu/drm/i915/gvt/handlers.c |  1 +
 drivers/gpu/drm/i915/gvt/kvmgt.c|  4 +--
 drivers/gpu/drm/i915/gvt/mmio.c |  3 +-
 drivers/gpu/drm/i915/gvt/mmio_context.c | 13 ---
 drivers/gpu/drm/i915/gvt/mmio_context.h |  3 ++
 drivers/gpu/drm/i915/gvt/opregion.c |  1 -
 drivers/gpu/drm/i915/gvt/page_track.c   |  2 ++
 drivers/gpu/drm/i915/gvt/reg.h  |  9 +
 drivers/gpu/drm/i915/gvt/scheduler.c| 64 +
 15 files changed, 92 insertions(+), 53 deletions(-)


-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827


signature.asc
Description: PGP signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PULL] gvt-fixes for 4.19

2018-09-03 Thread Zhenyu Wang

Hi,

Here's current gvt-fixes for 4.19 with more BXT fixes,
two guest warning fixes, dmabuf format mod fix and one
for recent multiple VM timeout failure.

Thanks
--
The following changes since commit 80ab316901bc4ae6dd0b5903dbe22766307eac9b:

  drm/i915/audio: Hook up component bindings even if displays are disabled 
(2018-08-29 14:11:53 -0700)

are available in the Git repository at:

  https://github.com/intel/gvt-linux.git tags/gvt-fixes-2018-09-04

for you to fetch changes up to 54ff01fd0d44b9681615f77c15fe9ea6dfadb501:

  drm/i915/gvt: Give new born vGPU higher scheduling chance (2018-09-03 
14:28:23 +0800)


gvt-fixes-2018-09-04

- two BXT virtual display emulation fixes (Colin)
- gen9 dbuf guest warning fix (Xiaolin)
- vgpu close pm warning fix (Hang)
- dmabuf format_mod fix (Zhenyu)
- multiple VM guest failure fix for scheduling (Zhenyu)


Colin Xu (2):
  drm/i915/gvt: Make correct handling to vreg BXT_PHY_CTL_FAMILY
  drm/i915/gvt: Handle GEN9_WM_CHICKEN3 with F_CMD_ACCESS.

Hang Yuan (1):
  drm/i915/gvt: move intel_runtime_pm_get out of spin_lock in stop_schedule

Xiaolin Zhang (1):
  drm/i915/gvt: emulate gen9 dbuf ctl register access

Zhenyu Wang (2):
  drm/i915/gvt: Fix drm_format_mod value for vGPU plane
  drm/i915/gvt: Give new born vGPU higher scheduling chance

 drivers/gpu/drm/i915/gvt/dmabuf.c   | 33 ++---
 drivers/gpu/drm/i915/gvt/fb_decoder.c   |  5 ++---
 drivers/gpu/drm/i915/gvt/fb_decoder.h   |  2 +-
 drivers/gpu/drm/i915/gvt/handlers.c | 33 +++--
 drivers/gpu/drm/i915/gvt/mmio_context.c |  2 --
 drivers/gpu/drm/i915/gvt/sched_policy.c | 37 ++---
 6 files changed, 86 insertions(+), 26 deletions(-)


-- 
Open Source Technology Center, Intel ltd.

$gpg --keyserver wwwkeys.pgp.net --recv-keys 4D781827


signature.asc
Description: PGP signature
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/2] drm/i915: Combine cleanup_status_page()

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: Combine cleanup_status_page()
URL   : https://patchwork.freedesktop.org/series/49085/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4757_full -> Patchwork_10074_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_10074_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@drv_suspend@shrink:
  shard-glk:  PASS -> FAIL (fdo#106886)

igt@gem_exec_basic@basic-bsd1:
  shard-snb:  NOTRUN -> INCOMPLETE (fdo#105411)

igt@gem_exec_big:
  shard-hsw:  PASS -> INCOMPLETE (fdo#103540)

igt@kms_setmode@basic:
  shard-kbl:  PASS -> FAIL (fdo#99912)

igt@kms_vblank@pipe-a-ts-continuation-suspend:
  shard-apl:  PASS -> INCOMPLETE (fdo#103927)


 Possible fixes 

igt@gem_exec_await@wide-contexts:
  shard-glk:  FAIL (fdo#105900) -> PASS

igt@gem_wait@await-bsd2:
  shard-snb:  INCOMPLETE (fdo#105411) -> SKIP

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
  shard-apl:  DMESG-WARN (fdo#105602, fdo#103558) -> PASS +2

igt@kms_vblank@pipe-b-ts-continuation-idle-hang:
  shard-apl:  DMESG-WARN -> PASS

igt@pm_rc6_residency@rc6-accuracy:
  shard-glk:  INCOMPLETE (fdo#103359, k.org#198133) -> PASS


  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#105411 https://bugs.freedesktop.org/show_bug.cgi?id=105411
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
  fdo#106886 https://bugs.freedesktop.org/show_bug.cgi?id=106886
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10074

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10074: 23b2d4ef0d61b349b77010f58f76d6d2a987b8fd @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10074/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Fix ICL HDMI clock readout (rev2)

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix ICL HDMI clock readout (rev2)
URL   : https://patchwork.freedesktop.org/series/48805/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4757_full -> Patchwork_10072_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_10072_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@kms_plane_lowres@pipe-b-tiling-x:
  shard-kbl:  PASS -> DMESG-WARN (fdo#105345)

igt@kms_setmode@basic:
  shard-kbl:  PASS -> FAIL (fdo#99912)


 Possible fixes 

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
  shard-apl:  DMESG-WARN (fdo#105602, fdo#103558) -> PASS +2

igt@kms_setmode@basic:
  shard-apl:  FAIL (fdo#99912) -> PASS

igt@kms_vblank@pipe-b-ts-continuation-idle-hang:
  shard-apl:  DMESG-WARN -> PASS

igt@pm_rc6_residency@rc6-accuracy:
  shard-glk:  INCOMPLETE (fdo#103359, k.org#198133) -> PASS


  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#105345 https://bugs.freedesktop.org/show_bug.cgi?id=105345
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10072

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10072: 7ea7034989566579e4784e861a66d533949ca598 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10072/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for kernel/panic: Show the stacktrace after additional notifier messages

2018-09-03 Thread Patchwork
== Series Details ==

Series: kernel/panic: Show the stacktrace after additional notifier messages
URL   : https://patchwork.freedesktop.org/series/49080/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4757_full -> Patchwork_10071_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_10071_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@gem_ctx_isolation@bcs0-s3:
  shard-apl:  PASS -> INCOMPLETE (fdo#103927) +1


 Possible fixes 

igt@gem_exec_await@wide-contexts:
  shard-glk:  FAIL (fdo#105900) -> PASS

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
  shard-apl:  DMESG-WARN (fdo#103558, fdo#105602) -> PASS +2

igt@kms_setmode@basic:
  shard-apl:  FAIL (fdo#99912) -> PASS

igt@kms_vblank@pipe-b-ts-continuation-idle-hang:
  shard-apl:  DMESG-WARN -> PASS

igt@pm_rc6_residency@rc6-accuracy:
  shard-glk:  INCOMPLETE (fdo#103359, k.org#198133) -> PASS


  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10071

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10071: 2bd593b08f91000ef8b8c3070292c2d25634a25d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10071/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for series starting with [01/14] drm: Add drm/kernel.h header file

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [01/14] drm: Add drm/kernel.h header file
URL   : https://patchwork.freedesktop.org/series/49089/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4758 -> Patchwork_10076 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_10076 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10076, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49089/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10076:

  === IGT changes ===

 Possible regressions 

igt@core_auth@basic-auth:
  fi-kbl-8809g:   PASS -> INCOMPLETE


== Known issues ==

  Here are the changes found in Patchwork_10076 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@gem_exec_suspend@basic-s3:
  fi-blb-e6850:   PASS -> INCOMPLETE (fdo#107718)

igt@kms_chamelium@hdmi-hpd-fast:
  fi-kbl-7500u:   SKIP -> FAIL (fdo#102672, fdo#103841)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  fi-byt-clapper: PASS -> FAIL (fdo#103191, fdo#107362)

igt@kms_psr@primary_page_flip:
  fi-cnl-psr: PASS -> FAIL (fdo#107336)

igt@kms_setmode@basic-clone-single-crtc:
  fi-ilk-650: PASS -> DMESG-WARN (fdo#106387)

igt@prime_vgem@basic-fence-flip:
  fi-ilk-650: PASS -> FAIL (fdo#104008)


  fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#106387 https://bugs.freedesktop.org/show_bug.cgi?id=106387
  fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718


== Participating hosts (53 -> 48) ==

  Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 
fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4758 -> Patchwork_10076

  CI_DRM_4758: 6e3c617fd15ac7bf8259d5741565a78a35004123 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4622: 022be555443eaa3317da6a9a451cf2c9dfcd6ab8 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10076: 64895f7efd90fea0de1af3dc0a3d892deb4d93c3 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

64895f7efd90 drm/vmwgfx: Add FIXME comments for customer page_flip handlers
835a147156e8 drm/atomic: Improve docs for drm_atomic_state->allow_modeset
a00d9f872f7f drm/vmwgfx: Don't look at state->allow_modeset
3f52631f306e drm/vmwgfx: Remove confused comment from 
vmw_du_connector_atomic_set_property
0cac37810f9d drm: Extract drm_atomic_state_helper.[hc]
e8bab7fce24b drm: Update todo.rst
743e2645a0a1 drm/amdgpu: Remove default best_encoder hook from DC
a0725c65f9ee drm/atomic-helper: Unexport drm_atomic_helper_best_encoder
2433899462b1 drm: extract drm_atomic_uapi.c
d53335198614 drm/atomic: trim driver interface/docs
acd20948fa62 drm: drop drmP.h include from drm_crtc.c
963a78e5752b drm: drop drmP.h include from drm_plane.c
4e507bab6b77 drm: Drop drmP.h from drm_connector.c
a39d30c28e70 drm: Add drm/kernel.h header file

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10076/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [01/14] drm: Add drm/kernel.h header file

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [01/14] drm: Add drm/kernel.h header file
URL   : https://patchwork.freedesktop.org/series/49089/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm: Add drm/kernel.h header file
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3686:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3687:16: warning: expression 
using sizeof(void)

Commit: drm: Drop drmP.h from drm_connector.c
Okay!

Commit: drm: drop drmP.h include from drm_plane.c
Okay!

Commit: drm: drop drmP.h include from drm_crtc.c
Okay!

Commit: drm/atomic: trim driver interface/docs
Okay!

Commit: drm: extract drm_atomic_uapi.c
Okay!

Commit: drm/atomic-helper: Unexport drm_atomic_helper_best_encoder
Okay!

Commit: drm/amdgpu: Remove default best_encoder hook from DC
-drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3035:6: warning: 
symbol 'dm_drm_plane_destroy_state' was not declared. Should it be static?
-drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3826:27: warning: 
expression using sizeof(void)
-drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3826:27: warning: 
expression using sizeof(void)
-drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3830:27: warning: 
expression using sizeof(void)
-drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3830:27: warning: 
expression using sizeof(void)
-drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3937:58: warning: 
Using plain integer as NULL pointer
+drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3012:6: warning: 
symbol 'dm_drm_plane_destroy_state' was not declared. Should it be static?
+drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3803:27: warning: 
expression using sizeof(void)
+drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3803:27: warning: 
expression using sizeof(void)
+drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3807:27: warning: 
expression using sizeof(void)
+drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3807:27: warning: 
expression using sizeof(void)
+drivers/gpu/drm/amd/amdgpu/../display/amdgpu_dm/amdgpu_dm.c:3914:58: warning: 
Using plain integer as NULL pointer

Commit: drm: Update todo.rst
Okay!

Commit: drm: Extract drm_atomic_state_helper.[hc]
Okay!

Commit: drm/vmwgfx: Remove confused comment from 
vmw_du_connector_atomic_set_property
Okay!

Commit: drm/vmwgfx: Don't look at state->allow_modeset
Okay!

Commit: drm/atomic: Improve docs for drm_atomic_state->allow_modeset
Okay!

Commit: drm/vmwgfx: Add FIXME comments for customer page_flip handlers
Okay!

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [01/14] drm: Add drm/kernel.h header file

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [01/14] drm: Add drm/kernel.h header file
URL   : https://patchwork.freedesktop.org/series/49089/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
a39d30c28e70 drm: Add drm/kernel.h header file
-:139: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#139: 
new file mode 100644

-:144: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier 
tag in line 1
#144: FILE: include/drm/kernel.h:1:
+/*

-:173: ERROR:MULTISTATEMENT_MACRO_USE_DO_WHILE: Macros starting with if should 
be enclosed by a do - while loop to avoid possible if/else logic defects
#173: FILE: include/drm/kernel.h:30:
+#define for_each_if(condition) if (!(condition)) {} else

-:173: WARNING:BRACES: braces {} are not necessary for single statement blocks
#173: FILE: include/drm/kernel.h:30:
+#define for_each_if(condition) if (!(condition)) {} else

total: 1 errors, 3 warnings, 0 checks, 105 lines checked
4e507bab6b77 drm: Drop drmP.h from drm_connector.c
-:56: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch 
author 'Daniel Vetter '

total: 0 errors, 1 warnings, 0 checks, 30 lines checked
963a78e5752b drm: drop drmP.h include from drm_plane.c
-:92: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch 
author 'Daniel Vetter '

total: 0 errors, 1 warnings, 0 checks, 55 lines checked
acd20948fa62 drm: drop drmP.h include from drm_crtc.c
-:35: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch 
author 'Daniel Vetter '

total: 0 errors, 1 warnings, 0 checks, 17 lines checked
d53335198614 drm/atomic: trim driver interface/docs
-:88: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#88: FILE: drivers/gpu/drm/drm_atomic.c:501:
+static int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
struct drm_crtc_state *state, struct drm_property *property,

-:202: CHECK:OPEN_ENDED_LINE: Lines should not end with a '('
#202: FILE: drivers/gpu/drm/drm_atomic.c:1253:
+static int drm_atomic_set_writeback_fb_for_connector(

-:342: WARNING:NO_AUTHOR_SIGN_OFF: Missing Signed-off-by: line by nominal patch 
author 'Daniel Vetter '

total: 0 errors, 1 warnings, 2 checks, 301 lines checked
2433899462b1 drm: extract drm_atomic_uapi.c
-:1498: WARNING:FILE_PATH_CHANGES: added, moved or deleted file(s), does 
MAINTAINERS need updating?
#1498: 
new file mode 100644

-:1503: WARNING:SPDX_LICENSE_TAG: Missing or malformed SPDX-License-Identifier 
tag in line 1
#1503: FILE: drivers/gpu/drm/drm_atomic_uapi.c:1:
+/*

-:1552: WARNING:TYPO_SPELLING: 'similiar' may be misspelled - perhaps 'similar'?
#1552: FILE: drivers/gpu/drm/drm_atomic_uapi.c:50:
+ * for load detect or similiar.

-:1583: ERROR:CODE_INDENT: code indent should use tabs where possible
#1583: FILE: drivers/gpu/drm/drm_atomic_uapi.c:81:
+^I^I sizeof(umode),$

-:1583: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1583: FILE: drivers/gpu/drm/drm_atomic_uapi.c:81:
+   drm_property_create_blob(state->crtc->dev,
+sizeof(umode),

-:1584: ERROR:CODE_INDENT: code indent should use tabs where possible
#1584: FILE: drivers/gpu/drm/drm_atomic_uapi.c:82:
+^I^I );$

-:1617: ERROR:CODE_INDENT: code indent should use tabs where possible
#1617: FILE: drivers/gpu/drm/drm_atomic_uapi.c:115:
+  struct drm_property_blob *blob)$

-:1617: WARNING:LEADING_SPACE: please, no spaces at the start of a line
#1617: FILE: drivers/gpu/drm/drm_atomic_uapi.c:115:
+  struct drm_property_blob *blob)$

-:1860: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1860: FILE: drivers/gpu/drm/drm_atomic_uapi.c:358:
+static int set_out_fence_for_connector(struct drm_atomic_state *state,
+   struct drm_connector *connector,

-:1900: CHECK:COMPARISON_TO_NULL: Comparison to NULL could be written 
"!new_blob"
#1900: FILE: drivers/gpu/drm/drm_atomic_uapi.c:398:
+   if (new_blob == NULL)

-:1922: CHECK:PARENTHESIS_ALIGNMENT: Alignment should match open parenthesis
#1922: FILE: drivers/gpu/drm/drm_atomic_uapi.c:420:
+static int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
+   struct drm_crtc_state *state, struct drm_property *property,

-:1930: CHECK:BRACES: braces {} should be used on all arms of this statement
#1930: FILE: drivers/gpu/drm/drm_atomic_uapi.c:428:
+   if (property == config->prop_active)
[...]
+   else if (property == config->prop_mode_id) {
[...]
+   } else if (property == config->degamma_lut_property) {
[...]
+   } else if (property == config->ctm_property) {
[...]
+   } else if (property == config->gamma_lut_property) {
[...]
+   } else if (property == config->prop_out_fence_ptr) {
[...]
+

Re: [Intel-gfx] [PATCH 09/14] drm: Update todo.rst

2018-09-03 Thread Emil Velikov
On 3 September 2018 at 17:54, Daniel Vetter  wrote:

> -Hide legacy cruft better
> -
> -
> -Way back DRM supported only drivers which shadow-attached to PCI devices with
> -userspace or fbdev drivers setting up outputs. Modern DRM drivers take charge
> -of the entire device, you can spot them with the DRIVER_MODESET flag.
> -
> -Unfortunately there's still large piles of legacy code around which needs to
> -be hidden so that driver writers don't accidentally end up using it. And to
> -prevent security issues in those legacy IOCTLs from being exploited on modern
> -drivers. This has multiple possible subtasks:
> -

> -* Extract support code for legacy features into a ``drm-legacy.ko`` kernel
> -  module and compile it only when one of the legacy drivers is enabled.
> -
This isn't done,

> -This is mostly done, the only thing left is to split up ``drm_irq.c`` into
> -legacy cruft and the parts needed by modern KMS drivers.
> -
... while this one is.

HTH
-Emil
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/icl: Fix context RPCS programming (rev2)

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915/icl: Fix context RPCS programming (rev2)
URL   : https://patchwork.freedesktop.org/series/49005/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4757_full -> Patchwork_10070_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_10070_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10070_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in 
Patchwork_10070_full:

  === IGT changes ===

 Warnings 

igt@perf_pmu@rc6:
  shard-kbl:  PASS -> SKIP


== Known issues ==

  Here are the changes found in Patchwork_10070_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@kms_cursor_legacy@cursor-vs-flip-toggle:
  shard-hsw:  PASS -> FAIL (fdo#103355)

igt@kms_setmode@basic:
  shard-kbl:  PASS -> FAIL (fdo#99912)


 Possible fixes 

igt@gem_exec_await@wide-contexts:
  shard-glk:  FAIL (fdo#105900) -> PASS

igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-pwrite:
  shard-apl:  DMESG-WARN (fdo#105602, fdo#103558) -> PASS +2

igt@kms_setmode@basic:
  shard-apl:  FAIL (fdo#99912) -> PASS

igt@kms_vblank@pipe-b-ts-continuation-idle-hang:
  shard-apl:  DMESG-WARN -> PASS

igt@pm_rc6_residency@rc6-accuracy:
  shard-glk:  INCOMPLETE (fdo#103359, k.org#198133) -> PASS


  fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103558 https://bugs.freedesktop.org/show_bug.cgi?id=103558
  fdo#105602 https://bugs.freedesktop.org/show_bug.cgi?id=105602
  fdo#105900 https://bugs.freedesktop.org/show_bug.cgi?id=105900
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10070

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10070: 9a2751c01ca21789da2a8f95dab23033540ad6c9 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10070/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 09/14] drm: Update todo.rst

2018-09-03 Thread Sam Ravnborg
Hi Daniel.

> -Note that this is well in progress, but ``drmP.h`` is still huge. The updated
> -plan is to switch to per-file driver API headers, which will also structure
> -the kerneldoc better. This should also allow more fine-grained ``#include``
> -directives.
> +The DRM subsystem originally had only one huge globale header, ``drmP.h``. 
> This
globale => global

> +is not split up, but many source files still include it. The remainig part of
remainig => remaining

Sam
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for video/fbdev: Warn when we try to free a registered framebuffer

2018-09-03 Thread Patchwork
== Series Details ==

Series: video/fbdev: Warn when we try to free a registered framebuffer
URL   : https://patchwork.freedesktop.org/series/49088/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10075 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_10075 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10075, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49088/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10075:

  === IGT changes ===

 Possible regressions 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-icl-u:   PASS -> INCOMPLETE


== Known issues ==

  Here are the changes found in Patchwork_10075 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a-frame-sequence:
  fi-byt-clapper: PASS -> FAIL (fdo#107362, fdo#103191)


 Possible fixes 

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
  fi-byt-clapper: FAIL (fdo#107362, fdo#103191) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS


  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362


== Participating hosts (53 -> 48) ==

  Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 
fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10075

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10075: 19ba7c0f116fd5ec8f0e0a77b13ea3f9ae3c67a5 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

19ba7c0f116f video/fbdev: Warn when we try to free a registered framebuffer

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10075/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/2] drm/i915: Combine cleanup_status_page()

2018-09-03 Thread Chris Wilson
Quoting Matthew Auld (2018-09-03 17:39:09)
> On Mon, 3 Sep 2018 at 16:25, Chris Wilson  wrote:
> >
> > Pull the physical status page cleanup into a common
> > cleanup_status_page() for caller simplicity.
> >
> > Signed-off-by: Chris Wilson 
> Reviewed-by: Matthew Auld 

And applied just on the off-chance it helps with a strange one-off
occurrence of a missed breadcrumb on gdg. Thanks,
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for video/fbdev: Warn when we try to free a registered framebuffer

2018-09-03 Thread Patchwork
== Series Details ==

Series: video/fbdev: Warn when we try to free a registered framebuffer
URL   : https://patchwork.freedesktop.org/series/49088/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
19ba7c0f116f video/fbdev: Warn when we try to free a registered framebuffer
-:28: ERROR:MISSING_SIGN_OFF: Missing Signed-off-by: line(s)

total: 1 errors, 0 warnings, 0 checks, 11 lines checked

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 14/14] drm/vmwgfx: Add FIXME comments for customer page_flip handlers

2018-09-03 Thread Daniel Vetter
The idea behind allowing drivers to override legacy ioctls (instead of
using the generic implementations unconditionally) is to handle bugs
in old driver-specific userspace. Like e.g. vmw_kms_set_config does,
to work around some vmwgfx userspace not clearing its ioctl structs
properly.

But you can't use it to augment semantics and put in additional
checks, since from a correctly working userspace's pov there should
not be any difference in behaviour between the legacy and the atomic
paths.

vmwgfx seems to be doing some strange things in its page_flip
handlers. Since I'm not an expert of this codebase just wrap some
FIXME comments around the potentially problematic code.

Signed-off-by: Daniel Vetter 
Cc: VMware Graphics 
Cc: Sinclair Yeh 
Cc: Thomas Hellstrom 
---
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 2 ++
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c | 1 +
 2 files changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
index 4c68ad6f3605..8e692334c3b9 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
@@ -326,6 +326,7 @@ static int vmw_sou_crtc_page_flip(struct drm_crtc *crtc,
struct vmw_private *dev_priv = vmw_priv(crtc->dev);
int ret;
 
+   /* FIMXE: This check needs to be moved into ->atomic_check code. */
if (!vmw_kms_crtc_flippable(dev_priv, crtc))
return -EINVAL;
 
@@ -335,6 +336,7 @@ static int vmw_sou_crtc_page_flip(struct drm_crtc *crtc,
return ret;
}
 
+   /* FIMXE: This code needs to be moved into ->atomic_commit callbacks. */
if (vmw_crtc_to_du(crtc)->is_implicit)
vmw_kms_update_implicit_fb(dev_priv, crtc);
 
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index f5b2fe8a7793..1913e086d015 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -501,6 +501,7 @@ static int vmw_stdu_crtc_page_flip(struct drm_crtc *crtc,
struct vmw_screen_target_display_unit *stdu = vmw_crtc_to_stdu(crtc);
int ret;
 
+   /* FIMXE: This check needs to be moved into ->atomic_check code. */
if (!stdu->defined || !vmw_kms_crtc_flippable(dev_priv, crtc))
return -EINVAL;
 
-- 
2.18.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 12/14] drm/vmwgfx: Don't look at state->allow_modeset

2018-09-03 Thread Daniel Vetter
That's purely for the uapi layer to implement the ALLOW_MODESET flag.

Drivers should instead look at the state, e.g. through
drm_atomic_crtc_needs_modeset(), which vmwgfx already does. Also remove
the confusing comment, since checking allow_modeset is at best a micro
optimization.

Signed-off-by: Daniel Vetter 
---
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 8 
 1 file changed, 8 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 0f7e116a59f0..71b7460d140f 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -1683,14 +1683,6 @@ vmw_kms_atomic_check_modeset(struct drm_device *dev,
if (ret)
return ret;
 
-   if (!state->allow_modeset)
-   return ret;
-
-   /*
-* Legacy path do not set allow_modeset properly like
-* @drm_atomic_helper_update_plane, This will result in unnecessary call
-* to vmw_kms_check_topology. So extra set of check.
-*/
for_each_new_crtc_in_state(state, crtc, crtc_state, i) {
if (drm_atomic_crtc_needs_modeset(crtc_state))
need_modeset = true;
-- 
2.18.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 13/14] drm/atomic: Improve docs for drm_atomic_state->allow_modeset

2018-09-03 Thread Daniel Vetter
Motivated by vmwgfx digging around in core uapi bits it shouldn't dig
around in.

Signed-off-by: Daniel Vetter 
---
 include/drm/drm_atomic.h | 10 +-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index 4aff40886acb..91d896ec9c10 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -254,7 +254,6 @@ struct __drm_private_objs_state {
  * struct drm_atomic_state - the global state object for atomic updates
  * @ref: count of all references to this state (will not be freed until zero)
  * @dev: parent DRM device
- * @allow_modeset: allow full modeset
  * @legacy_cursor_update: hint to enforce legacy cursor IOCTL semantics
  * @async_update: hint for asynchronous plane update
  * @planes: pointer to array of structures with per-plane data
@@ -273,6 +272,15 @@ struct drm_atomic_state {
struct kref ref;
 
struct drm_device *dev;
+
+   /**
+* @allow_modeset:
+*
+* Allow full modeset. This is used by the ATOMIC IOCTL handler to
+* implement the DRM_MODE_ATOMIC_ALLOW_MODESET flag. Drivers should
+* never consult this flag, instead looking at the output of
+* drm_atomic_crtc_needs_modeset().
+*/
bool allow_modeset : 1;
bool legacy_cursor_update : 1;
bool async_update : 1;
-- 
2.18.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 10/14] drm: Extract drm_atomic_state_helper.[hc]

2018-09-03 Thread Daniel Vetter
We already have a separate overview doc for this, makes sense to
untangle it from the overall atomic helpers.

Signed-off-by: Daniel Vetter 
---
 Documentation/gpu/drm-kms-helpers.rst |  19 +-
 drivers/gpu/drm/Makefile  |   3 +-
 drivers/gpu/drm/drm_atomic_helper.c   | 568 
 drivers/gpu/drm/drm_atomic_state_helper.c | 603 ++
 include/drm/drm_atomic_helper.h   |  44 +-
 include/drm/drm_atomic_state_helper.h |  80 +++
 6 files changed, 700 insertions(+), 617 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_atomic_state_helper.c
 create mode 100644 include/drm/drm_atomic_state_helper.h

diff --git a/Documentation/gpu/drm-kms-helpers.rst 
b/Documentation/gpu/drm-kms-helpers.rst
index f9cfcdcdf024..4b4dc236ef6f 100644
--- a/Documentation/gpu/drm-kms-helpers.rst
+++ b/Documentation/gpu/drm-kms-helpers.rst
@@ -59,19 +59,28 @@ Implementing Asynchronous Atomic Commit
 .. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
:doc: implementing nonblocking commit
 
+Helper Functions Reference
+--
+
+.. kernel-doc:: include/drm/drm_atomic_helper.h
+   :internal:
+
+.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
+   :export:
+
 Atomic State Reset and Initialization
 -
 
-.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
+.. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c
:doc: atomic state reset and initialization
 
-Helper Functions Reference
---
+Atomic State Helper Reference
+-
 
-.. kernel-doc:: include/drm/drm_atomic_helper.h
+.. kernel-doc:: include/drm/drm_atomic_state_helper.h
:internal:
 
-.. kernel-doc:: drivers/gpu/drm/drm_atomic_helper.c
+.. kernel-doc:: drivers/gpu/drm/drm_atomic_state_helper.c
:export:
 
 Simple KMS Helper Reference
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
index bc6a16a3c36e..576ba985e138 100644
--- a/drivers/gpu/drm/Makefile
+++ b/drivers/gpu/drm/Makefile
@@ -36,7 +36,8 @@ drm_kms_helper-y := drm_crtc_helper.o drm_dp_helper.o 
drm_probe_helper.o \
drm_plane_helper.o drm_dp_mst_topology.o drm_atomic_helper.o \
drm_kms_helper_common.o drm_dp_dual_mode_helper.o \
drm_simple_kms_helper.o drm_modeset_helper.o \
-   drm_scdc_helper.o drm_gem_framebuffer_helper.o
+   drm_scdc_helper.o drm_gem_framebuffer_helper.o \
+   drm_atomic_state_helper.o
 
 drm_kms_helper-$(CONFIG_DRM_PANEL_BRIDGE) += bridge/panel.o
 drm_kms_helper-$(CONFIG_DRM_FBDEV_EMULATION) += drm_fb_helper.o
diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index 334b121bd4d9..a5edc8757056 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -3382,571 +3382,3 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc 
*crtc,
return ret;
 }
 EXPORT_SYMBOL(drm_atomic_helper_page_flip_target);
-
-/**
- * DOC: atomic state reset and initialization
- *
- * Both the drm core and the atomic helpers assume that there is always the 
full
- * and correct atomic software state for all connectors, CRTCs and planes
- * available. Which is a bit a problem on driver load and also after system
- * suspend. One way to solve this is to have a hardware state read-out
- * infrastructure which reconstructs the full software state (e.g. the i915
- * driver).
- *
- * The simpler solution is to just reset the software state to everything off,
- * which is easiest to do by calling drm_mode_config_reset(). To facilitate 
this
- * the atomic helpers provide default reset implementations for all hooks.
- *
- * On the upside the precise state tracking of atomic simplifies system suspend
- * and resume a lot. For drivers using drm_mode_config_reset() a complete 
recipe
- * is implemented in drm_atomic_helper_suspend() and 
drm_atomic_helper_resume().
- * For other drivers the building blocks are split out, see the documentation
- * for these functions.
- */
-
-/**
- * drm_atomic_helper_crtc_reset - default _crtc_funcs.reset hook for CRTCs
- * @crtc: drm CRTC
- *
- * Resets the atomic state for @crtc by freeing the state pointer (which might
- * be NULL, e.g. at driver load time) and allocating a new empty state object.
- */
-void drm_atomic_helper_crtc_reset(struct drm_crtc *crtc)
-{
-   if (crtc->state)
-   __drm_atomic_helper_crtc_destroy_state(crtc->state);
-
-   kfree(crtc->state);
-   crtc->state = kzalloc(sizeof(*crtc->state), GFP_KERNEL);
-
-   if (crtc->state)
-   crtc->state->crtc = crtc;
-}
-EXPORT_SYMBOL(drm_atomic_helper_crtc_reset);
-
-/**
- * __drm_atomic_helper_crtc_duplicate_state - copy atomic CRTC state
- * @crtc: CRTC object
- * @state: atomic CRTC state
- *
- * Copies atomic state from a CRTC's current state and resets inferred values.
- * This is useful for drivers that subclass the CRTC state.
- 

[Intel-gfx] [PATCH 11/14] drm/vmwgfx: Remove confused comment from vmw_du_connector_atomic_set_property

2018-09-03 Thread Daniel Vetter
The core _does_ the call to drm_atomic_commit for you. That's pretty
much the entire point of having the fancy new atomic_set/get_prop
callbacks.

Signed-off-by: Daniel Vetter 
Cc: VMware Graphics 
Cc: Sinclair Yeh 
Cc: Thomas Hellstrom 
---
 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 6 --
 1 file changed, 6 deletions(-)

diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 0c25bb8faf80..0f7e116a59f0 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -2309,12 +2309,6 @@ vmw_du_connector_atomic_set_property(struct 
drm_connector *connector,
 
if (property == dev_priv->implicit_placement_property) {
vcs->is_implicit = val;
-
-   /*
-* We should really be doing a drm_atomic_commit() to
-* commit the new state, but since this doesn't cause
-* an immedate state change, this is probably ok
-*/
du->is_implicit = vcs->is_implicit;
} else {
return -EINVAL;
-- 
2.18.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 07/14] drm/atomic-helper: Unexport drm_atomic_helper_best_encoder

2018-09-03 Thread Daniel Vetter
It's the default. The exported version was kinda a transition state,
before we made this the default.

To stop new atomic drivers from using it (instead of just relying on
the default) let's unexport it.

Signed-off-by: Daniel Vetter 
Cc: Gustavo Padovan 
Cc: Maarten Lankhorst 
Cc: Sean Paul 
Cc: David Airlie 
Cc: VMware Graphics 
Cc: Sinclair Yeh 
Cc: Thomas Hellstrom 
Cc: Archit Taneja 
Cc: Neil Armstrong 
Cc: Laurent Pinchart 
Cc: Hans Verkuil 
Cc: Daniel Vetter 
Cc: Russell King 
Cc: Jernej Skrabec 
Cc: Jani Nikula 
Cc: Pierre-Hugues Husson 
Cc: Fabio Estevam 
---
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c |  1 -
 drivers/gpu/drm/drm_atomic_helper.c   | 24 +++
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c   |  1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c  |  1 -
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c  |  1 -
 include/drm/drm_atomic_helper.h   |  2 --
 6 files changed, 7 insertions(+), 23 deletions(-)

diff --git a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c 
b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
index 5971976284bf..0aed51799526 100644
--- a/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
+++ b/drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
@@ -1957,7 +1957,6 @@ static const struct drm_connector_funcs 
dw_hdmi_connector_funcs = {
 
 static const struct drm_connector_helper_funcs dw_hdmi_connector_helper_funcs 
= {
.get_modes = dw_hdmi_connector_get_modes,
-   .best_encoder = drm_atomic_helper_best_encoder,
 };
 
 static int dw_hdmi_bridge_attach(struct drm_bridge *bridge)
diff --git a/drivers/gpu/drm/drm_atomic_helper.c 
b/drivers/gpu/drm/drm_atomic_helper.c
index 8469a7e9afe3..334b121bd4d9 100644
--- a/drivers/gpu/drm/drm_atomic_helper.c
+++ b/drivers/gpu/drm/drm_atomic_helper.c
@@ -92,6 +92,13 @@ drm_atomic_helper_plane_changed(struct drm_atomic_state 
*state,
}
 }
 
+static struct drm_encoder *
+drm_atomic_helper_best_encoder(struct drm_connector *connector)
+{
+   WARN_ON(connector->encoder_ids[1]);
+   return drm_encoder_find(connector->dev, NULL, 
connector->encoder_ids[0]);
+}
+
 static int handle_conflicting_encoders(struct drm_atomic_state *state,
   bool disable_conflicting_encoders)
 {
@@ -3376,23 +3383,6 @@ int drm_atomic_helper_page_flip_target(struct drm_crtc 
*crtc,
 }
 EXPORT_SYMBOL(drm_atomic_helper_page_flip_target);
 
-/**
- * drm_atomic_helper_best_encoder - Helper for
- * _connector_helper_funcs.best_encoder callback
- * @connector: Connector control structure
- *
- * This is a _connector_helper_funcs.best_encoder callback helper for
- * connectors that support exactly 1 encoder, statically determined at driver
- * init time.
- */
-struct drm_encoder *
-drm_atomic_helper_best_encoder(struct drm_connector *connector)
-{
-   WARN_ON(connector->encoder_ids[1]);
-   return drm_encoder_find(connector->dev, NULL, 
connector->encoder_ids[0]);
-}
-EXPORT_SYMBOL(drm_atomic_helper_best_encoder);
-
 /**
  * DOC: atomic state reset and initialization
  *
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
index 723578117191..4b5378495eea 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c
@@ -274,7 +274,6 @@ static const struct drm_connector_funcs 
vmw_legacy_connector_funcs = {
 
 static const struct
 drm_connector_helper_funcs vmw_ldu_connector_helper_funcs = {
-   .best_encoder = drm_atomic_helper_best_encoder,
 };
 
 /*
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
index ad0de7f0cd60..4c68ad6f3605 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c
@@ -389,7 +389,6 @@ static const struct drm_connector_funcs 
vmw_sou_connector_funcs = {
 
 static const struct
 drm_connector_helper_funcs vmw_sou_connector_helper_funcs = {
-   .best_encoder = drm_atomic_helper_best_encoder,
 };
 
 
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c 
b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index 93f6b96ca7bb..f5b2fe8a7793 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -1037,7 +1037,6 @@ static const struct drm_connector_funcs 
vmw_stdu_connector_funcs = {
 
 static const struct
 drm_connector_helper_funcs vmw_stdu_connector_helper_funcs = {
-   .best_encoder = drm_atomic_helper_best_encoder,
 };
 
 
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index 63e736eeb516..27aef91ca1c3 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -144,8 +144,6 @@ int drm_atomic_helper_page_flip_target(
uint32_t flags,
uint32_t target,
struct drm_modeset_acquire_ctx *ctx);
-struct drm_encoder *
-drm_atomic_helper_best_encoder(struct drm_connector *connector);
 
 /* default implementations for state handling */
 void drm_atomic_helper_crtc_reset(struct 

[Intel-gfx] [PATCH 06/14] drm: extract drm_atomic_uapi.c

2018-09-03 Thread Daniel Vetter
This leaves all the commit/check and state handling in drm_atomic.c,
while pulling all the uapi glue and the huge ioctl itself into a
seprate file.

This seems to almost perfectly split the rather big drm_atomic.c file
into 2 equal sizes.

Also adjust the kerneldoc and type a very terse overview text.

v2: Rebase.

v3: Fix tiny typo.

Signed-off-by: Daniel Vetter 
Cc: David Airlie 
Cc: Gustavo Padovan 
Cc: Maarten Lankhorst 
Cc: Sean Paul 
Cc: Jani Nikula 
Cc: Joonas Lahtinen 
Cc: Rodrigo Vivi 
Cc: Rob Clark 
Cc: Eric Anholt 
Cc: intel-gfx@lists.freedesktop.org
Cc: linux-arm-...@vger.kernel.org
Cc: freedr...@lists.freedesktop.org
---
 Documentation/gpu/drm-kms.rst|   11 +-
 drivers/gpu/drm/Makefile |3 +-
 drivers/gpu/drm/drm_atomic.c | 1359 +
 drivers/gpu/drm/drm_atomic_helper.c  |1 +
 drivers/gpu/drm/drm_atomic_uapi.c| 1393 ++
 drivers/gpu/drm/drm_crtc_helper.c|1 +
 drivers/gpu/drm/drm_crtc_internal.h  |5 +
 drivers/gpu/drm/drm_framebuffer.c|1 +
 drivers/gpu/drm/drm_gem_framebuffer_helper.c |1 +
 drivers/gpu/drm/drm_plane_helper.c   |1 +
 drivers/gpu/drm/i915/intel_display.c |1 +
 drivers/gpu/drm/msm/msm_atomic.c |2 +
 drivers/gpu/drm/vc4/vc4_crtc.c   |1 +
 drivers/gpu/drm/vc4/vc4_plane.c  |1 +
 include/drm/drm_atomic.h |   16 -
 include/drm/drm_atomic_uapi.h|   58 +
 16 files changed, 1480 insertions(+), 1375 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_atomic_uapi.c
 create mode 100644 include/drm/drm_atomic_uapi.h

diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
index 3a9dd68b97c9..4b1501b4835b 100644
--- a/Documentation/gpu/drm-kms.rst
+++ b/Documentation/gpu/drm-kms.rst
@@ -287,6 +287,15 @@ Atomic Mode Setting Function Reference
 .. kernel-doc:: drivers/gpu/drm/drm_atomic.c
:export:
 
+Atomic Mode Setting IOCTL and UAPI Functions
+
+
+.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c
+   :doc: overview
+
+.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c
+   :export:
+
 CRTC Abstraction
 
 
@@ -563,7 +572,7 @@ Tile Group Property
 Explicit Fencing Properties
 ---
 
-.. kernel-doc:: drivers/gpu/drm/drm_atomic.c
+.. kernel-doc:: drivers/gpu/drm/drm_atomic_uapi.c
:doc: explicit fencing properties
 
 Existing KMS Properties
diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
index a6771cef85e2..bc6a16a3c36e 100644
--- a/drivers/gpu/drm/Makefile
+++ b/drivers/gpu/drm/Makefile
@@ -18,7 +18,8 @@ drm-y   :=drm_auth.o drm_bufs.o drm_cache.o \
drm_encoder.o drm_mode_object.o drm_property.o \
drm_plane.o drm_color_mgmt.o drm_print.o \
drm_dumb_buffers.o drm_mode_config.o drm_vblank.o \
-   drm_syncobj.o drm_lease.o drm_writeback.o drm_client.o
+   drm_syncobj.o drm_lease.o drm_writeback.o drm_client.o \
+   drm_atomic_uapi.o
 
 drm-$(CONFIG_DRM_LIB_RANDOM) += lib/drm_random.o
 drm-$(CONFIG_DRM_VM) += drm_vm.o
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 29a4e6959358..19634e03b78e 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -28,6 +28,7 @@
 
 #include 
 #include 
+#include 
 #include 
 #include 
 #include 
@@ -309,285 +310,6 @@ drm_atomic_get_crtc_state(struct drm_atomic_state *state,
 }
 EXPORT_SYMBOL(drm_atomic_get_crtc_state);
 
-static void set_out_fence_for_crtc(struct drm_atomic_state *state,
-  struct drm_crtc *crtc, s32 __user *fence_ptr)
-{
-   state->crtcs[drm_crtc_index(crtc)].out_fence_ptr = fence_ptr;
-}
-
-static s32 __user *get_out_fence_for_crtc(struct drm_atomic_state *state,
- struct drm_crtc *crtc)
-{
-   s32 __user *fence_ptr;
-
-   fence_ptr = state->crtcs[drm_crtc_index(crtc)].out_fence_ptr;
-   state->crtcs[drm_crtc_index(crtc)].out_fence_ptr = NULL;
-
-   return fence_ptr;
-}
-
-static int set_out_fence_for_connector(struct drm_atomic_state *state,
-   struct drm_connector *connector,
-   s32 __user *fence_ptr)
-{
-   unsigned int index = drm_connector_index(connector);
-
-   if (!fence_ptr)
-   return 0;
-
-   if (put_user(-1, fence_ptr))
-   return -EFAULT;
-
-   state->connectors[index].out_fence_ptr = fence_ptr;
-
-   return 0;
-}
-
-static s32 __user *get_out_fence_for_connector(struct drm_atomic_state *state,
-  struct drm_connector *connector)
-{
-   unsigned int index = drm_connector_index(connector);
-   s32 __user *fence_ptr;
-
-   fence_ptr = 

[Intel-gfx] [PATCH 01/14] drm: Add drm/kernel.h header file

2018-09-03 Thread Daniel Vetter
We have a bunch of neat little macros all over the place which should
move to kernel.h. But some of them died in bikesheds on lkml, and we
need a decent home for them.

Start out by moving the for_each_if macro there.

Cc: Sean Paul 
Signed-off-by: Daniel Vetter 
---
 drivers/gpu/drm/i915/i915_drv.h |  1 +
 drivers/gpu/drm/i915/intel_display.h|  2 ++
 drivers/gpu/drm/i915/intel_ringbuffer.h |  2 ++
 drivers/gpu/drm/nouveau/nouveau_connector.h |  2 ++
 include/drm/drmP.h  |  3 --
 include/drm/drm_atomic.h|  1 +
 include/drm/drm_atomic_helper.h |  1 +
 include/drm/drm_connector.h |  1 +
 include/drm/drm_encoder.h   |  1 +
 include/drm/drm_plane.h |  1 +
 include/drm/kernel.h| 32 +
 11 files changed, 44 insertions(+), 3 deletions(-)
 create mode 100644 include/drm/kernel.h

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 14e562887307..63cd53067cc3 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -52,6 +52,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include "i915_params.h"
 #include "i915_reg.h"
diff --git a/drivers/gpu/drm/i915/intel_display.h 
b/drivers/gpu/drm/i915/intel_display.h
index e20e6a36a748..bb6e8d949ebb 100644
--- a/drivers/gpu/drm/i915/intel_display.h
+++ b/drivers/gpu/drm/i915/intel_display.h
@@ -25,6 +25,8 @@
 #ifndef _INTEL_DISPLAY_H_
 #define _INTEL_DISPLAY_H_
 
+#include 
+
 enum i915_gpio {
GPIOA,
GPIOB,
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.h 
b/drivers/gpu/drm/i915/intel_ringbuffer.h
index 3f6920dd7880..c06ec8078313 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.h
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.h
@@ -2,6 +2,8 @@
 #ifndef _INTEL_RINGBUFFER_H_
 #define _INTEL_RINGBUFFER_H_
 
+#include 
+
 #include 
 #include 
 
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.h 
b/drivers/gpu/drm/nouveau/nouveau_connector.h
index dc7454e7f19a..fff89cb4a792 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.h
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.h
@@ -32,6 +32,8 @@
 #include 
 #include 
 #include 
+#include 
+
 #include "nouveau_crtc.h"
 #include "nouveau_encoder.h"
 
diff --git a/include/drm/drmP.h b/include/drm/drmP.h
index f7a19c2a7a80..05350424a4d3 100644
--- a/include/drm/drmP.h
+++ b/include/drm/drmP.h
@@ -110,7 +110,4 @@ static inline bool drm_can_sleep(void)
return true;
 }
 
-/* helper for handling conditionals in various for_each macros */
-#define for_each_if(condition) if (!(condition)) {} else
-
 #endif
diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h
index da9d95a19580..07b4cb1c9603 100644
--- a/include/drm/drm_atomic.h
+++ b/include/drm/drm_atomic.h
@@ -29,6 +29,7 @@
 #define DRM_ATOMIC_H_
 
 #include 
+#include 
 
 /**
  * struct drm_crtc_commit - track modeset commits on a CRTC
diff --git a/include/drm/drm_atomic_helper.h b/include/drm/drm_atomic_helper.h
index f4c7ed876c97..63e736eeb516 100644
--- a/include/drm/drm_atomic_helper.h
+++ b/include/drm/drm_atomic_helper.h
@@ -31,6 +31,7 @@
 #include 
 #include 
 #include 
+#include 
 
 struct drm_atomic_state;
 struct drm_private_obj;
diff --git a/include/drm/drm_connector.h b/include/drm/drm_connector.h
index 97ea41dc678f..95be147ee4db 100644
--- a/include/drm/drm_connector.h
+++ b/include/drm/drm_connector.h
@@ -28,6 +28,7 @@
 #include 
 #include 
 #include 
+#include 
 
 #include 
 
diff --git a/include/drm/drm_encoder.h b/include/drm/drm_encoder.h
index 4f597c0730b4..9cb01c764fac 100644
--- a/include/drm/drm_encoder.h
+++ b/include/drm/drm_encoder.h
@@ -28,6 +28,7 @@
 #include 
 #include 
 #include 
+#include 
 
 struct drm_encoder;
 
diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
index 16f5b66684ca..2af3f0a7d2e7 100644
--- a/include/drm/drm_plane.h
+++ b/include/drm/drm_plane.h
@@ -27,6 +27,7 @@
 #include 
 #include 
 #include 
+#include 
 
 struct drm_crtc;
 struct drm_printer;
diff --git a/include/drm/kernel.h b/include/drm/kernel.h
new file mode 100644
index ..6ea220c0c132
--- /dev/null
+++ b/include/drm/kernel.h
@@ -0,0 +1,32 @@
+/*
+ * Internal Header for the Direct Rendering Manager
+ *
+ * Copyright 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE 

[Intel-gfx] [PATCH 08/14] drm/amdgpu: Remove default best_encoder hook from DC

2018-09-03 Thread Daniel Vetter
For atomic driver this is the default, no need to reimplement it. We
still need to keep the copypasta for not-atomic drivers though, since
no one polished the legacy crtc helpers as much as the atomic ones.

Signed-off-by: Daniel Vetter 
Cc: Alex Deucher 
Cc: Harry Wentland 
Cc: Andrey Grodzovsky 
Cc: Tony Cheng 
Cc: "Leo (Sunpeng) Li" 
Cc: Shirish S 
---
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 23 ---
 1 file changed, 23 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
index af6adffba788..333f9904f135 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
@@ -2794,28 +2794,6 @@ static const struct drm_connector_funcs 
amdgpu_dm_connector_funcs = {
.atomic_get_property = amdgpu_dm_connector_atomic_get_property
 };
 
-static struct drm_encoder *best_encoder(struct drm_connector *connector)
-{
-   int enc_id = connector->encoder_ids[0];
-   struct drm_mode_object *obj;
-   struct drm_encoder *encoder;
-
-   DRM_DEBUG_DRIVER("Finding the best encoder\n");
-
-   /* pick the encoder ids */
-   if (enc_id) {
-   obj = drm_mode_object_find(connector->dev, NULL, enc_id, 
DRM_MODE_OBJECT_ENCODER);
-   if (!obj) {
-   DRM_ERROR("Couldn't find a matching encoder for our 
connector\n");
-   return NULL;
-   }
-   encoder = obj_to_encoder(obj);
-   return encoder;
-   }
-   DRM_ERROR("No encoder id\n");
-   return NULL;
-}
-
 static int get_modes(struct drm_connector *connector)
 {
return amdgpu_dm_connector_get_modes(connector);
@@ -2934,7 +2912,6 @@ amdgpu_dm_connector_helper_funcs = {
 */
.get_modes = get_modes,
.mode_valid = amdgpu_dm_connector_mode_valid,
-   .best_encoder = best_encoder
 };
 
 static void dm_crtc_helper_disable(struct drm_crtc *crtc)
-- 
2.18.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 09/14] drm: Update todo.rst

2018-09-03 Thread Daniel Vetter
- drmP.h is now fully split up.
- vkms is happening (and will gain its own todo and docs under a new
  vkms.rst file real soon)
- legacy cruft is completely hidden now, drm_vblank.c is split out
  from drm_irq.c now.
- best_encoder atomic cleanup is done (it's now the default, not even
  exported anymore)
- bunch of smaller things

Signed-off-by: Daniel Vetter 
Cc: Gustavo Padovan 
Cc: Maarten Lankhorst 
Cc: Sean Paul 
Cc: David Airlie 
---
 Documentation/gpu/todo.rst | 68 ++
 1 file changed, 10 insertions(+), 58 deletions(-)

diff --git a/Documentation/gpu/todo.rst b/Documentation/gpu/todo.rst
index a7c150d6b63f..96bfdbc9ebff 100644
--- a/Documentation/gpu/todo.rst
+++ b/Documentation/gpu/todo.rst
@@ -127,7 +127,8 @@ interfaces to fix these issues:
   the acquire context explicitly on stack and then also pass it down into
   drivers explicitly so that the legacy-on-atomic functions can use them.
 
-  Except for some driver code this is done.
+  Except for some driver code this is done. This task should be finished by
+  adding WARN_ON(!drm_drv_uses_atomic_modeset) in drm_modeset_lock_all().
 
 * A bunch of the vtable hooks are now in the wrong place: DRM has a split
   between core vfunc tables (named ``drm_foo_funcs``), which are used to
@@ -137,13 +138,6 @@ interfaces to fix these issues:
   ``_helper_funcs`` since they are not part of the core ABI. There's a
   ``FIXME`` comment in the kerneldoc for each such case in ``drm_crtc.h``.
 
-* There's a new helper ``drm_atomic_helper_best_encoder()`` which could be
-  used by all atomic drivers which don't select the encoder for a given
-  connector at runtime. That's almost all of them, and would allow us to get
-  rid of a lot of ``best_encoder`` boilerplate in drivers.
-
-  This was almost done, but new drivers added a few more cases again.
-
 Contact: Daniel Vetter
 
 Get rid of dev->struct_mutex from GEM drivers
@@ -164,9 +158,8 @@ private lock. The tricky part is the BO free functions, 
since those can't
 reliably take that lock any more. Instead state needs to be protected with
 suitable subordinate locks or some cleanup work pushed to a worker thread. For
 performance-critical drivers it might also be better to go with a more
-fine-grained per-buffer object and per-context lockings scheme. Currently the
-following drivers still use ``struct_mutex``: ``msm``, ``omapdrm`` and
-``udl``.
+fine-grained per-buffer object and per-context lockings scheme. Currently only 
the
+``msm`` driver still use ``struct_mutex``.
 
 Contact: Daniel Vetter, respective driver maintainers
 
@@ -190,7 +183,8 @@ Convert drivers to use simple modeset suspend/resume
 
 Most drivers (except i915 and nouveau) that use
 drm_atomic_helper_suspend/resume() can probably be converted to use
-drm_mode_config_helper_suspend/resume().
+drm_mode_config_helper_suspend/resume(). Also there's still open-coded version
+of the atomic suspend/resume code in older atomic modeset drivers.
 
 Contact: Maintainer of the driver you plan to convert
 
@@ -246,20 +240,10 @@ Core refactorings
 Clean up the DRM header mess
 
 
-Currently the DRM subsystem has only one global header, ``drmP.h``. This is
-used both for functions exported to helper libraries and drivers and functions
-only used internally in the ``drm.ko`` module. The goal would be to move all
-header declarations not needed outside of ``drm.ko`` into
-``drivers/gpu/drm/drm_*_internal.h`` header files. ``EXPORT_SYMBOL`` also
-needs to be dropped for these functions.
-
-This would nicely tie in with the below task to create kerneldoc after the API
-is cleaned up. Or with the "hide legacy cruft better" task.
-
-Note that this is well in progress, but ``drmP.h`` is still huge. The updated
-plan is to switch to per-file driver API headers, which will also structure
-the kerneldoc better. This should also allow more fine-grained ``#include``
-directives.
+The DRM subsystem originally had only one huge globale header, ``drmP.h``. This
+is not split up, but many source files still include it. The remainig part of
+the cleanup work here is to replace any ``#include `` by only the
+headers needed (and fixing up any missing pre-declarations in the headers).
 
 In the end no .c file should need to include ``drmP.h`` anymore.
 
@@ -278,26 +262,6 @@ See https://dri.freedesktop.org/docs/drm/ for what's there 
already.
 
 Contact: Daniel Vetter
 
-Hide legacy cruft better
-
-
-Way back DRM supported only drivers which shadow-attached to PCI devices with
-userspace or fbdev drivers setting up outputs. Modern DRM drivers take charge
-of the entire device, you can spot them with the DRIVER_MODESET flag.
-
-Unfortunately there's still large piles of legacy code around which needs to
-be hidden so that driver writers don't accidentally end up using it. And to
-prevent security issues in those legacy IOCTLs from being exploited on modern
-drivers. This has multiple 

[Intel-gfx] [PATCH 05/14] drm/atomic: trim driver interface/docs

2018-09-03 Thread Daniel Vetter
Remove the kerneldoc and EXPORT_SYMBOL which aren't used and really
shouldn't ever be used by drivers directly.

Unfortunately this means we need to move the set_writeback_fb function
around to avoid a forward decl.

Signed-off-by: Daniel Vetter 
Cc: David Airlie 
Cc: Gustavo Padovan 
Cc: Maarten Lankhorst 
Cc: Sean Paul 
---
 Documentation/gpu/drm-kms.rst |   3 -
 drivers/gpu/drm/drm_atomic.c  | 219 ++
 include/drm/drm_atomic.h  |   6 -
 3 files changed, 34 insertions(+), 194 deletions(-)

diff --git a/Documentation/gpu/drm-kms.rst b/Documentation/gpu/drm-kms.rst
index f8f5bf11a6ca..3a9dd68b97c9 100644
--- a/Documentation/gpu/drm-kms.rst
+++ b/Documentation/gpu/drm-kms.rst
@@ -287,9 +287,6 @@ Atomic Mode Setting Function Reference
 .. kernel-doc:: drivers/gpu/drm/drm_atomic.c
:export:
 
-.. kernel-doc:: drivers/gpu/drm/drm_atomic.c
-   :internal:
-
 CRTC Abstraction
 
 
diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c
index 151dd7162b3a..29a4e6959358 100644
--- a/drivers/gpu/drm/drm_atomic.c
+++ b/drivers/gpu/drm/drm_atomic.c
@@ -464,30 +464,6 @@ int drm_atomic_set_mode_prop_for_crtc(struct 
drm_crtc_state *state,
 }
 EXPORT_SYMBOL(drm_atomic_set_mode_prop_for_crtc);
 
-/**
- * drm_atomic_replace_property_blob_from_id - lookup the new blob and replace 
the old one with it
- * @dev: DRM device
- * @blob: a pointer to the member blob to be replaced
- * @blob_id: ID of the new blob
- * @expected_size: total expected size of the blob data (in bytes)
- * @expected_elem_size: expected element size of the blob data (in bytes)
- * @replaced: did the blob get replaced?
- *
- * Replace @blob with another blob with the ID @blob_id. If @blob_id is zero
- * @blob becomes NULL.
- *
- * If @expected_size is positive the new blob length is expected to be equal
- * to @expected_size bytes. If @expected_elem_size is positive the new blob
- * length is expected to be a multiple of @expected_elem_size bytes. Otherwise
- * an error is returned.
- *
- * @replaced will indicate to the caller whether the blob was replaced or not.
- * If the old and new blobs were in fact the same blob @replaced will be false
- * otherwise it will be true.
- *
- * RETURNS:
- * Zero on success, error code on failure.
- */
 static int
 drm_atomic_replace_property_blob_from_id(struct drm_device *dev,
 struct drm_property_blob **blob,
@@ -521,22 +497,7 @@ drm_atomic_replace_property_blob_from_id(struct drm_device 
*dev,
return 0;
 }
 
-/**
- * drm_atomic_crtc_set_property - set property on CRTC
- * @crtc: the drm CRTC to set a property on
- * @state: the state object to update with the new property value
- * @property: the property to set
- * @val: the new property value
- *
- * This function handles generic/core properties and calls out to driver's
- * _crtc_funcs.atomic_set_property for driver properties. To ensure
- * consistent behavior you must call this function rather than the driver hook
- * directly.
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
-int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
+static int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
struct drm_crtc_state *state, struct drm_property *property,
uint64_t val)
 {
@@ -598,23 +559,7 @@ int drm_atomic_crtc_set_property(struct drm_crtc *crtc,
 
return 0;
 }
-EXPORT_SYMBOL(drm_atomic_crtc_set_property);
 
-/**
- * drm_atomic_crtc_get_property - get property value from CRTC state
- * @crtc: the drm CRTC to set a property on
- * @state: the state object to get the property value from
- * @property: the property to set
- * @val: return location for the property value
- *
- * This function handles generic/core properties and calls out to driver's
- * _crtc_funcs.atomic_get_property for driver properties. To ensure
- * consistent behavior you must call this function rather than the driver hook
- * directly.
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
 static int
 drm_atomic_crtc_get_property(struct drm_crtc *crtc,
const struct drm_crtc_state *state,
@@ -643,16 +588,6 @@ drm_atomic_crtc_get_property(struct drm_crtc *crtc,
return 0;
 }
 
-/**
- * drm_atomic_crtc_check - check crtc state
- * @crtc: crtc to check
- * @state: crtc state to check
- *
- * Provides core sanity checks for crtc state.
- *
- * RETURNS:
- * Zero on success, error code on failure
- */
 static int drm_atomic_crtc_check(struct drm_crtc *crtc,
struct drm_crtc_state *state)
 {
@@ -728,16 +663,6 @@ static void drm_atomic_crtc_print_state(struct drm_printer 
*p,
crtc->funcs->atomic_print_state(p, state);
 }
 
-/**
- * drm_atomic_connector_check - check connector state
- * @connector: connector to check
- * @state: connector state to check
- *
- * Provides core sanity checks for connector state.
- *
- * RETURNS:
- * Zero on success, error code on 

[Intel-gfx] [PATCH 04/14] drm: drop drmP.h include from drm_crtc.c

2018-09-03 Thread Daniel Vetter
This is starting to become easy!

v2: Compiles now, with drm/kernel.h extracted.

Reviewed-by: Sean Paul 
Signed-off-by: Daniel Vetter 
---
 drivers/gpu/drm/drm_crtc.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index bae43938c8f6..2f6c877299e4 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -34,7 +34,7 @@
 #include 
 #include 
 #include 
-#include 
+#include 
 #include 
 #include 
 #include 
@@ -42,6 +42,9 @@
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
 
 #include "drm_crtc_internal.h"
 #include "drm_internal.h"
-- 
2.18.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 03/14] drm: drop drmP.h include from drm_plane.c

2018-09-03 Thread Daniel Vetter
Just a bit of missing includes and pre declarations.

v2: Compiles now, with drm/kernel.h extracted.

Reviewed-by: Sean Paul 
Signed-off-by: Daniel Vetter 
---
 drivers/gpu/drm/drm_crtc_internal.h |  8 
 drivers/gpu/drm/drm_plane.c | 11 ++-
 include/drm/drm_color_mgmt.h|  1 +
 include/drm/drm_plane.h |  2 ++
 include/drm/drm_property.h  |  2 ++
 5 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_crtc_internal.h 
b/drivers/gpu/drm/drm_crtc_internal.h
index b61322763394..ff5e0d521c21 100644
--- a/drivers/gpu/drm/drm_crtc_internal.h
+++ b/drivers/gpu/drm/drm_crtc_internal.h
@@ -31,6 +31,14 @@
  * and are not exported to drivers.
  */
 
+enum drm_mode_status;
+enum drm_connector_force;
+
+struct drm_display_mode;
+struct work_struct;
+struct drm_connector;
+struct drm_bridge;
+struct edid;
 
 /* drm_crtc.c */
 int drm_mode_crtc_set_obj_prop(struct drm_mode_object *obj,
diff --git a/drivers/gpu/drm/drm_plane.c b/drivers/gpu/drm/drm_plane.c
index 6153cbda239f..36bf3fe9ad21 100644
--- a/drivers/gpu/drm/drm_plane.c
+++ b/drivers/gpu/drm/drm_plane.c
@@ -20,8 +20,17 @@
  * OF THIS SOFTWARE.
  */
 
-#include 
+#include 
+#include 
+
 #include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
+#include 
 
 #include "drm_crtc_internal.h"
 
diff --git a/include/drm/drm_color_mgmt.h b/include/drm/drm_color_mgmt.h
index 44f04233e3db..90ef9996d9a4 100644
--- a/include/drm/drm_color_mgmt.h
+++ b/include/drm/drm_color_mgmt.h
@@ -24,6 +24,7 @@
 #define __DRM_COLOR_MGMT_H__
 
 #include 
+#include 
 
 struct drm_crtc;
 struct drm_plane;
diff --git a/include/drm/drm_plane.h b/include/drm/drm_plane.h
index 2af3f0a7d2e7..fe6c4aee2d08 100644
--- a/include/drm/drm_plane.h
+++ b/include/drm/drm_plane.h
@@ -27,6 +27,8 @@
 #include 
 #include 
 #include 
+#include 
+#include 
 #include 
 
 struct drm_crtc;
diff --git a/include/drm/drm_property.h b/include/drm/drm_property.h
index c030f6ccab99..5b9efff35d6d 100644
--- a/include/drm/drm_property.h
+++ b/include/drm/drm_property.h
@@ -27,6 +27,8 @@
 #include 
 #include 
 
+#include 
+
 /**
  * struct drm_property_enum - symbolic values for enumerations
  * @value: numeric property value for this enum entry
-- 
2.18.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 02/14] drm: Drop drmP.h from drm_connector.c

2018-09-03 Thread Daniel Vetter
Only needed minimal changes in drm_internal.h (for the drm_ioctl_t
type and a few forward declarations), plus a few missing includes in
drm_connector.c.

Yay, the last stage of the drm header cleanup can finally commence!

v2: Compiles now, with drm/kernel.h extracted.

Reviewed-by: Sean Paul 
Signed-off-by: Daniel Vetter 
---
 drivers/gpu/drm/drm_connector.c | 6 +-
 drivers/gpu/drm/drm_internal.h  | 5 +
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/drm_connector.c b/drivers/gpu/drm/drm_connector.c
index 6011d769d50b..526619f963e5 100644
--- a/drivers/gpu/drm/drm_connector.c
+++ b/drivers/gpu/drm/drm_connector.c
@@ -20,11 +20,15 @@
  * OF THIS SOFTWARE.
  */
 
-#include 
 #include 
 #include 
 #include 
 #include 
+#include 
+#include 
+#include 
+
+#include 
 
 #include "drm_crtc_internal.h"
 #include "drm_internal.h"
diff --git a/drivers/gpu/drm/drm_internal.h b/drivers/gpu/drm/drm_internal.h
index 40179c5fc6b8..0c4eb4a9ab31 100644
--- a/drivers/gpu/drm/drm_internal.h
+++ b/drivers/gpu/drm/drm_internal.h
@@ -21,9 +21,14 @@
  * OTHER DEALINGS IN THE SOFTWARE.
  */
 
+#include 
+
 #define DRM_IF_MAJOR 1
 #define DRM_IF_MINOR 4
 
+struct drm_prime_file_private;
+struct dma_buf;
+
 /* drm_file.c */
 extern struct mutex drm_global_mutex;
 struct drm_file *drm_file_alloc(struct drm_minor *minor);
-- 
2.18.0

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] video/fbdev: Warn when we try to free a registered framebuffer

2018-09-03 Thread Chris Wilson
Just a tool for CI to emit the stacktrace of who is lost track of their
framebuffers and tried to free it before unregistering it.

References: https://bugs.freedesktop.org/show_bug.cgi?id=107712
Cc: Daniel Vetter 
---
Would be useful to keep in core-for-CI as a debug aide.
---
 drivers/video/fbdev/core/fbsysfs.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/drivers/video/fbdev/core/fbsysfs.c 
b/drivers/video/fbdev/core/fbsysfs.c
index e31a182b42bf..de3afba984c7 100644
--- a/drivers/video/fbdev/core/fbsysfs.c
+++ b/drivers/video/fbdev/core/fbsysfs.c
@@ -83,6 +83,11 @@ void framebuffer_release(struct fb_info *info)
 {
if (!info)
return;
+
+   if (WARN(atomic_read(>count),
+"framebuffer is still registered, leaking fb_info!\n"))
+   return;
+
kfree(info->apertures);
kfree(info);
 }
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains

2018-09-03 Thread Matthew Auld
On Mon, 3 Sep 2018 at 16:04, Chris Wilson  wrote:
>
> We currently assert that if the target is in a CPU write domain, we use
> a CPU path rather than the GPU path. However, we have a debug override
> to force the GPU path and that unfortunately hits the assert. Include
> the async clflush under the debug option.
>
> Signed-off-by: Chris Wilson 
Reviewed-by: Matthew Auld 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/4] fbdev: Add FBINFO_HIDE_SMEM_START flag

2018-09-03 Thread Daniel Vetter
On Wed, Aug 22, 2018 at 10:54:04AM +0200, Daniel Vetter wrote:
> DRM drivers really, really, really don't want random userspace to
> share buffer behind it's back, bypassing the dma-buf buffer sharing
> machanism. For that reason we've ruthlessly rejected any IOCTL
> exposing the physical address of any graphics buffer.
> 
> Unfortunately fbdev comes with that built-in. We could just set
> smem_start to 0, but that means we'd have to hand-roll our own fb_mmap
> implementation. For good reasons many drivers do that, but
> smem_start/length is still super convenient.
> 
> Hence instead just stop the leak in the ioctl, to keep fb mmap working
> as-is. A second patch will set this flag for all drm drivers.
> 
> Cc: Bartlomiej Zolnierkiewicz 
> Cc: Kees Cook 
> Cc: Daniel Vetter 
> Cc: linux-fb...@vger.kernel.org
> Signed-off-by: Daniel Vetter 

Any comments from the fbdev side on this?
-Daniel

> ---
>  drivers/video/fbdev/core/fbmem.c | 4 
>  include/linux/fb.h   | 7 +++
>  2 files changed, 11 insertions(+)
> 
> diff --git a/drivers/video/fbdev/core/fbmem.c 
> b/drivers/video/fbdev/core/fbmem.c
> index 609438d2465b..549d0f86fcf3 100644
> --- a/drivers/video/fbdev/core/fbmem.c
> +++ b/drivers/video/fbdev/core/fbmem.c
> @@ -1116,6 +1116,8 @@ static long do_fb_ioctl(struct fb_info *info, unsigned 
> int cmd,
>   if (!lock_fb_info(info))
>   return -ENODEV;
>   fix = info->fix;
> + if (info->flags & FBINFO_HIDE_SMEM_START)
> + fix.smem_start = 0;
>   unlock_fb_info(info);
>  
>   ret = copy_to_user(argp, , sizeof(fix)) ? -EFAULT : 0;
> @@ -1326,6 +1328,8 @@ static int fb_get_fscreeninfo(struct fb_info *info, 
> unsigned int cmd,
>   if (!lock_fb_info(info))
>   return -ENODEV;
>   fix = info->fix;
> + if (info->flags & FBINFO_HIDE_SMEM_START)
> + fix.smem_start = 0;
>   unlock_fb_info(info);
>   return do_fscreeninfo_to_user(, compat_ptr(arg));
>  }
> diff --git a/include/linux/fb.h b/include/linux/fb.h
> index fa8c6f9c9c3a..f42b09ca71f8 100644
> --- a/include/linux/fb.h
> +++ b/include/linux/fb.h
> @@ -456,6 +456,13 @@ struct fb_tile_ops {
>   * and host endianness. Drivers should not use this flag.
>   */
>  #define FBINFO_BE_MATH  0x10
> +/*
> + * Hide smem_start in the FBIOGET_FSCREENINFO IOCTL. This is used by modern 
> DRM
> + * drivers to stop userspace from trying to share buffers behind the kernel's
> + * back. Instead dma-buf based buffer sharing should be used.
> + */
> +#define FBINFO_HIDE_SMEM_START  0x20
> +
>  
>  struct fb_info {
>   atomic_t count;
> -- 
> 2.18.0
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/2] drm/i915: Combine cleanup_status_page()

2018-09-03 Thread Matthew Auld
On Mon, 3 Sep 2018 at 16:25, Chris Wilson  wrote:
>
> Pull the physical status page cleanup into a common
> cleanup_status_page() for caller simplicity.
>
> Signed-off-by: Chris Wilson 
Reviewed-by: Matthew Auld 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm: Remove "protection" around drm_vma_offset_manager_destroy()

2018-09-03 Thread Daniel Vetter
On Mon, Sep 03, 2018 at 10:31:55AM +0100, Chris Wilson wrote:
> Using a spinlock to serialize the destroy function, within the destroy
> function itself does not prevent the buggy driver from shooting
> themselves in the foot - either way they still have a use-after-free
> issue.
> 
> Reported-by: Jia-Ju Bai 
> Signed-off-by: Chris Wilson 
> Cc: Davidlohr Bueso 
> Cc: Liviu Dudau 
> Cc: Daniel Vetter 

Ah, now I understand a bit more ...

Reviewed-by: Daniel Vetter 
> ---
>  drivers/gpu/drm/drm_vma_manager.c | 3 ---
>  1 file changed, 3 deletions(-)
> 
> diff --git a/drivers/gpu/drm/drm_vma_manager.c 
> b/drivers/gpu/drm/drm_vma_manager.c
> index a6b2fe36b025..c5d0d2358301 100644
> --- a/drivers/gpu/drm/drm_vma_manager.c
> +++ b/drivers/gpu/drm/drm_vma_manager.c
> @@ -103,10 +103,7 @@ EXPORT_SYMBOL(drm_vma_offset_manager_init);
>   */
>  void drm_vma_offset_manager_destroy(struct drm_vma_offset_manager *mgr)
>  {
> - /* take the lock to protect against buggy drivers */
> - write_lock(>vm_lock);
>   drm_mm_takedown(>vm_addr_space_mm);
> - write_unlock(>vm_lock);
>  }
>  EXPORT_SYMBOL(drm_vma_offset_manager_destroy);
>  
> -- 
> 2.19.0.rc1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm/i915: Combine cleanup_status_page()

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: Combine cleanup_status_page()
URL   : https://patchwork.freedesktop.org/series/49085/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10074 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49085/revisions/1/mbox/

== Known issues ==

  Here are the changes found in Patchwork_10074 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@gem_exec_suspend@basic-s3:
  fi-byt-clapper: PASS -> INCOMPLETE (fdo#102657)

igt@prime_vgem@basic-fence-flip:
  fi-ilk-650: PASS -> FAIL (fdo#104008)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS


 Warnings 

igt@pm_rpm@module-reload:
  fi-bsw-n3050:   DMESG-WARN (fdo#107704) -> DMESG-FAIL (fdo#107704)


  fdo#102657 https://bugs.freedesktop.org/show_bug.cgi?id=102657
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#107704 https://bugs.freedesktop.org/show_bug.cgi?id=107704


== Participating hosts (53 -> 48) ==

  Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 
fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10074

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10074: 23b2d4ef0d61b349b77010f58f76d6d2a987b8fd @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

23b2d4ef0d61 drm/i915: Use a cached mapping for the physical HWS
06a72134dc5f drm/i915: Combine cleanup_status_page()

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10074/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/2] drm/i915: Combine cleanup_status_page()

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [1/2] drm/i915: Combine cleanup_status_page()
URL   : https://patchwork.freedesktop.org/series/49085/
State : warning

== Summary ==

$ dim sparse origin/drm-tip
Commit: drm/i915: Combine cleanup_status_page()
Okay!

Commit: drm/i915: Use a cached mapping for the physical HWS
-drivers/gpu/drm/i915/selftests/../i915_drv.h:3687:16: warning: expression 
using sizeof(void)
+drivers/gpu/drm/i915/selftests/../i915_drv.h:3686:16: warning: expression 
using sizeof(void)

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains
URL   : https://patchwork.freedesktop.org/series/49084/
State : failure

== Summary ==

= CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10073 =

== Summary - FAILURE ==

  Serious unknown changes coming with Patchwork_10073 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10073, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49084/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10073:

  === IGT changes ===

 Possible regressions 

igt@drv_selftest@live_hangcheck:
  fi-icl-u:   PASS -> INCOMPLETE


== Known issues ==

  Here are the changes found in Patchwork_10073 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@amdgpu/amd_basic@userptr:
  fi-kbl-8809g:   PASS -> INCOMPLETE (fdo#107402)

{igt@pm_rpm@module-reload}:
  fi-cnl-psr: PASS -> WARN (fdo#107602, fdo#107708)


 Possible fixes 

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS


 Warnings 

{igt@pm_rpm@module-reload}:
  fi-bsw-n3050:   DMESG-WARN (fdo#107704) -> DMESG-FAIL (fdo#107704)


  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#107402 https://bugs.freedesktop.org/show_bug.cgi?id=107402
  fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602
  fdo#107704 https://bugs.freedesktop.org/show_bug.cgi?id=107704
  fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708


== Participating hosts (53 -> 48) ==

  Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 
fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10073

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10073: ff5e223ebdc09a4ceb959fcc4a47464d06616571 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

ff5e223ebdc0 drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10073/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 2/2] drm/i915: Use a cached mapping for the physical HWS

2018-09-03 Thread Chris Wilson
Older gen use a physical address for the hardware status page, for which
we use cache-coherent writes. As the writes are into the cpu cache, we use
a normal WB mapped page to read the HWS, used for our seqno tracking.

Anecdotally, I observed lost breadcrumbs writes into the HWS on i965gm,
which so far have not reoccurred with this patch. How reliable that
evidence is remains to be seen.

v2: Explicitly pass the expected physical address to the hw
v3: Also remember the wild writes we once had for HWS above 4G.

Signed-off-by: Chris Wilson 
Cc: Daniel Vetter 
Cc: Joonas Lahtinen 
Reviewed-by: Daniel Vetter 
---
 drivers/gpu/drm/i915/i915_drv.h |  1 -
 drivers/gpu/drm/i915/intel_engine_cs.c  | 25 +
 drivers/gpu/drm/i915/intel_ringbuffer.c |  7 +--
 3 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 9771f39d99b3..5a4da5b723fd 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1666,7 +1666,6 @@ struct drm_i915_private {
struct intel_engine_cs *engine_class[MAX_ENGINE_CLASS + 1]
[MAX_ENGINE_INSTANCE + 1];
 
-   struct drm_dma_handle *status_page_dmah;
struct resource mch_res;
 
/* protects the irq masks */
diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index 292eae19fce2..10cd051ba29e 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -532,11 +532,11 @@ void intel_engine_cleanup_scratch(struct intel_engine_cs 
*engine)
 
 static void cleanup_status_page(struct intel_engine_cs *engine)
 {
-   struct drm_dma_handle *dmah;
+   if (HWS_NEEDS_PHYSICAL(engine->i915)) {
+   void *addr = fetch_and_zero(>status_page.page_addr);
 
-   dmah = fetch_and_zero(>i915->status_page_dmah);
-   if (dmah)
-   drm_pci_free(>i915->drm, dmah);
+   __free_page(virt_to_page(addr));
+   }
 
i915_vma_unpin_and_release(>status_page.vma,
   I915_VMA_RELEASE_MAP);
@@ -605,17 +605,18 @@ static int init_status_page(struct intel_engine_cs 
*engine)
 
 static int init_phys_status_page(struct intel_engine_cs *engine)
 {
-   struct drm_i915_private *dev_priv = engine->i915;
-
-   GEM_BUG_ON(engine->id != RCS);
+   struct page *page;
 
-   dev_priv->status_page_dmah =
-   drm_pci_alloc(_priv->drm, PAGE_SIZE, PAGE_SIZE);
-   if (!dev_priv->status_page_dmah)
+   /*
+* Though the HWS register does support 36bit addresses, historically
+* we have had hangs and corruption reported due to wild writes if
+* the HWS is placed above 4G.
+*/
+   page = alloc_page(GFP_KERNEL | __GFP_DMA32 | __GFP_ZERO);
+   if (!page)
return -ENOMEM;
 
-   engine->status_page.page_addr = dev_priv->status_page_dmah->vaddr;
-   memset(engine->status_page.page_addr, 0, PAGE_SIZE);
+   engine->status_page.page_addr = page_address(page);
 
return 0;
 }
diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c 
b/drivers/gpu/drm/i915/intel_ringbuffer.c
index 44432677160c..86604dd1c5a5 100644
--- a/drivers/gpu/drm/i915/intel_ringbuffer.c
+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
@@ -344,11 +344,14 @@ gen7_render_ring_flush(struct i915_request *rq, u32 mode)
 static void ring_setup_phys_status_page(struct intel_engine_cs *engine)
 {
struct drm_i915_private *dev_priv = engine->i915;
+   struct page *page = virt_to_page(engine->status_page.page_addr);
+   phys_addr_t phys = PFN_PHYS(page_to_pfn(page));
u32 addr;
 
-   addr = dev_priv->status_page_dmah->busaddr;
+   addr = lower_32_bits(phys);
if (INTEL_GEN(dev_priv) >= 4)
-   addr |= (dev_priv->status_page_dmah->busaddr >> 28) & 0xf0;
+   addr |= (phys >> 28) & 0xf0;
+
I915_WRITE(HWS_PGA, addr);
 }
 
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 1/2] drm/i915: Combine cleanup_status_page()

2018-09-03 Thread Chris Wilson
Pull the physical status page cleanup into a common
cleanup_status_page() for caller simplicity.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/intel_engine_cs.c | 20 ++--
 1 file changed, 6 insertions(+), 14 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_engine_cs.c 
b/drivers/gpu/drm/i915/intel_engine_cs.c
index 1a34e8ff82d5..292eae19fce2 100644
--- a/drivers/gpu/drm/i915/intel_engine_cs.c
+++ b/drivers/gpu/drm/i915/intel_engine_cs.c
@@ -530,19 +530,14 @@ void intel_engine_cleanup_scratch(struct intel_engine_cs 
*engine)
i915_vma_unpin_and_release(>scratch, 0);
 }
 
-static void cleanup_phys_status_page(struct intel_engine_cs *engine)
+static void cleanup_status_page(struct intel_engine_cs *engine)
 {
-   struct drm_i915_private *dev_priv = engine->i915;
+   struct drm_dma_handle *dmah;
 
-   if (!dev_priv->status_page_dmah)
-   return;
+   dmah = fetch_and_zero(>i915->status_page_dmah);
+   if (dmah)
+   drm_pci_free(>i915->drm, dmah);
 
-   drm_pci_free(_priv->drm, dev_priv->status_page_dmah);
-   engine->status_page.page_addr = NULL;
-}
-
-static void cleanup_status_page(struct intel_engine_cs *engine)
-{
i915_vma_unpin_and_release(>status_page.vma,
   I915_VMA_RELEASE_MAP);
 }
@@ -710,10 +705,7 @@ void intel_engine_cleanup_common(struct intel_engine_cs 
*engine)
 
intel_engine_cleanup_scratch(engine);
 
-   if (HWS_NEEDS_PHYSICAL(engine->i915))
-   cleanup_phys_status_page(engine);
-   else
-   cleanup_status_page(engine);
+   cleanup_status_page(engine);
 
intel_engine_fini_breadcrumbs(engine);
intel_engine_cleanup_cmd_parser(engine);
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Fix ICL HDMI clock readout (rev2)

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915: Fix ICL HDMI clock readout (rev2)
URL   : https://patchwork.freedesktop.org/series/48805/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10072 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/48805/revisions/2/mbox/

== Known issues ==

  Here are the changes found in Patchwork_10072 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@amdgpu/amd_basic@userptr:
  fi-kbl-8809g:   PASS -> INCOMPLETE (fdo#107402)

igt@drv_module_reload@basic-reload:
  fi-blb-e6850:   PASS -> INCOMPLETE (fdo#107718)

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b:
  {fi-byt-clapper}:   PASS -> FAIL (fdo#107362)

igt@prime_vgem@basic-fence-flip:
  fi-ilk-650: PASS -> FAIL (fdo#104008)


 Possible fixes 

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
  {fi-byt-clapper}:   FAIL (fdo#103191, fdo#107362) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS

igt@kms_psr@primary_page_flip:
  fi-cnl-psr: FAIL (fdo#107336) -> PASS


  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107402 https://bugs.freedesktop.org/show_bug.cgi?id=107402
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718


== Participating hosts (53 -> 48) ==

  Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 
fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10072

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10072: 7ea7034989566579e4784e861a66d533949ca598 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

7ea703498956 drm/i915: Fix ICL+ HDMI clock readout

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10072/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm/i915: Fix up FORCE_GPU_RELOC (debug) to flush CPU write domains

2018-09-03 Thread Chris Wilson
We currently assert that if the target is in a CPU write domain, we use
a CPU path rather than the GPU path. However, we have a debug override
to force the GPU path and that unfortunately hits the assert. Include
the async clflush under the debug option.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 43706c1db31a..7d0b3a2c30e2 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -1127,6 +1127,13 @@ static int __reloc_gpu_alloc(struct i915_execbuffer *eb,
u32 *cmd;
int err;
 
+   if (DBG_FORCE_RELOC == FORCE_GPU_RELOC) {
+   obj = vma->obj;
+   if (obj->cache_dirty & ~obj->cache_coherent)
+   i915_gem_clflush_object(obj, 0);
+   obj->write_domain = 0;
+   }
+
GEM_BUG_ON(vma->obj->write_domain & I915_GEM_DOMAIN_CPU);
 
obj = i915_gem_batch_pool_get(>engine->batch_pool, PAGE_SIZE);
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH v2] drm/i915: Fix ICL+ HDMI clock readout

2018-09-03 Thread Ville Syrjala
From: Ville Syrjälä 

Copy the 38.4 vs. 19.2 MHz ref clock exception from the dpll
mgr into the clock readout function as well.

v2: Refactor the code into a common function
s/is_icl/gen11+/ (Rodrigo)

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107722
Signed-off-by: Ville Syrjälä 
Reviewed-by: Rodrigo Vivi  #v1
---
 drivers/gpu/drm/i915/intel_ddi.c  |  2 +-
 drivers/gpu/drm/i915/intel_dpll_mgr.c | 23 +++
 drivers/gpu/drm/i915/intel_dpll_mgr.h |  1 +
 3 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index f3b115ce4029..3e64488a2b0a 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1414,7 +1414,7 @@ static int cnl_calc_wrpll_link(struct drm_i915_private 
*dev_priv,
break;
}
 
-   ref_clock = dev_priv->cdclk.hw.ref;
+   ref_clock = cnl_hdmi_pll_ref_clock(dev_priv);
 
dco_freq = (cfgcr0 & DPLL_CFGCR0_DCO_INTEGER_MASK) * ref_clock;
 
diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.c 
b/drivers/gpu/drm/i915/intel_dpll_mgr.c
index 04d41bc1a4bb..e6cac9225536 100644
--- a/drivers/gpu/drm/i915/intel_dpll_mgr.c
+++ b/drivers/gpu/drm/i915/intel_dpll_mgr.c
@@ -2212,6 +2212,20 @@ static void cnl_wrpll_params_populate(struct 
skl_wrpll_params *params,
params->dco_fraction = dco & 0x7fff;
 }
 
+int cnl_hdmi_pll_ref_clock(struct drm_i915_private *dev_priv)
+{
+   int ref_clock = dev_priv->cdclk.hw.ref;
+
+   /*
+* For ICL+, the spec states: if reference frequency is 38.4,
+* use 19.2 because the DPLL automatically divides that by 2.
+*/
+   if (INTEL_GEN(dev_priv) >= 11 && ref_clock == 38400)
+   ref_clock = 19200;
+
+   return ref_clock;
+}
+
 static bool
 cnl_ddi_calculate_wrpll(int clock,
struct drm_i915_private *dev_priv,
@@ -2251,14 +2265,7 @@ cnl_ddi_calculate_wrpll(int clock,
 
cnl_wrpll_get_multipliers(best_div, , , );
 
-   ref_clock = dev_priv->cdclk.hw.ref;
-
-   /*
-* For ICL, the spec states: if reference frequency is 38.4, use 19.2
-* because the DPLL automatically divides that by 2.
-*/
-   if (IS_ICELAKE(dev_priv) && ref_clock == 38400)
-   ref_clock = 19200;
+   ref_clock = cnl_hdmi_pll_ref_clock(dev_priv);
 
cnl_wrpll_params_populate(wrpll_params, best_dco, ref_clock, pdiv, qdiv,
  kdiv);
diff --git a/drivers/gpu/drm/i915/intel_dpll_mgr.h 
b/drivers/gpu/drm/i915/intel_dpll_mgr.h
index 7e522cf4f13f..bf0de8a4dc63 100644
--- a/drivers/gpu/drm/i915/intel_dpll_mgr.h
+++ b/drivers/gpu/drm/i915/intel_dpll_mgr.h
@@ -344,5 +344,6 @@ void intel_dpll_dump_hw_state(struct drm_i915_private 
*dev_priv,
  struct intel_dpll_hw_state *hw_state);
 int icl_calc_dp_combo_pll_link(struct drm_i915_private *dev_priv,
   uint32_t pll_id);
+int cnl_hdmi_pll_ref_clock(struct drm_i915_private *dev_priv);
 
 #endif /* _INTEL_DPLL_MGR_H_ */
-- 
2.16.4

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for kernel/panic: Show the stacktrace after additional notifier messages

2018-09-03 Thread Patchwork
== Series Details ==

Series: kernel/panic: Show the stacktrace after additional notifier messages
URL   : https://patchwork.freedesktop.org/series/49080/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10071 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49080/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10071:

  === IGT changes ===

 Warnings 

{igt@pm_rpm@module-reload}:
  fi-hsw-peppy:   DMESG-WARN (fdo#107603) -> FAIL


== Known issues ==

  Here are the changes found in Patchwork_10071 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@kms_chamelium@dp-edid-read:
  fi-kbl-7500u:   PASS -> FAIL (fdo#103841)

igt@kms_frontbuffer_tracking@basic:
  {fi-byt-clapper}:   PASS -> FAIL (fdo#103167)

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-a:
  {fi-byt-clapper}:   PASS -> FAIL (fdo#107362)

{igt@pm_rpm@module-reload}:
  fi-cnl-psr: PASS -> WARN (fdo#107602, fdo#107708)


 Possible fixes 

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
  {fi-byt-clapper}:   FAIL (fdo#103191, fdo#107362) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS


  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103167 https://bugs.freedesktop.org/show_bug.cgi?id=103167
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602
  fdo#107603 https://bugs.freedesktop.org/show_bug.cgi?id=107603
  fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708


== Participating hosts (53 -> 47) ==

  Missing(6): fi-ilk-m540 fi-hsw-4200u fi-byt-squawks fi-bsw-cyan 
fi-ctg-p8600 fi-skl-6700hq 


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10071

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10071: 2bd593b08f91000ef8b8c3070292c2d25634a25d @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

2bd593b08f91 kernel/panic: Show the stacktrace after additional notifier 
messages

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10071/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH i-g-t v3] lib/pm: Wait a little for sound module load to complete

2018-09-03 Thread Chris Wilson
Sometimes we may probe the sound module as it is still being registered
and its debugfs not yet fully populated. If we do not find a file we
expect to exist, sleep a little and check again.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107801
Signed-off-by: Chris Wilson 
Cc: Imre Deak 
---
 lib/igt_pm.c | 22 +++---
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index 339a51e6f..001025939 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -154,20 +154,28 @@ static int __igt_pm_enable_audio_runtime_pm(void)
while ((de = readdir(dir))) {
const char *match = "hwC";
char buf[32] = { }; /* for Valgrind */
-   char *tmp;
+   int loops = 500;
+   int base;
int ret;
 
if (de->d_type != DT_LNK ||
strncmp(de->d_name, match, strlen(match)))
continue;
 
-   igt_assert(asprintf(,
-   "/sys/class/sound/%s/vendor_name",
-   de->d_name));
+   base = openat(dirfd(dir), de->d_name, O_RDONLY);
+   igt_assert_fd(base);
+
+   do {
+   fd = openat(base, "vendor_name", O_RDONLY);
+   if (fd < 0) /* module is still loading? */
+   usleep(1000);
+   else
+   break;
+   } while (--loops);
+   close(base);
+   if (fd < 0)
+   continue;
 
-   fd = open(tmp, O_RDONLY);
-   free(tmp);
-   igt_assert_fd(fd);
ret = read(fd, buf, sizeof(buf));
close(fd);
igt_assert(ret > 0);
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] kernel/panic: Show the stacktrace after additional notifier messages

2018-09-03 Thread Chris Wilson
Most systems keep the last messages from the panic, and we value the
stacktrace most, so dump it last in order to preserve it for
post-mortems.

Signed-off-by: Chris Wilson 
---
 kernel/panic.c | 15 ---
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/kernel/panic.c b/kernel/panic.c
index 8b2e002d52eb..c0334516cb15 100644
--- a/kernel/panic.c
+++ b/kernel/panic.c
@@ -176,13 +176,6 @@ void panic(const char *fmt, ...)
vsnprintf(buf, sizeof(buf), fmt, args);
va_end(args);
pr_emerg("Kernel panic - not syncing: %s\n", buf);
-#ifdef CONFIG_DEBUG_BUGVERBOSE
-   /*
-* Avoid nested stack-dumping if a panic occurs during oops processing
-*/
-   if (!test_taint(TAINT_DIE) && oops_in_progress <= 1)
-   dump_stack();
-#endif
 
/*
 * If we have crashed and we have a crash kernel loaded let it handle
@@ -217,6 +210,14 @@ void panic(const char *fmt, ...)
 */
atomic_notifier_call_chain(_notifier_list, 0, buf);
 
+#ifdef CONFIG_DEBUG_BUGVERBOSE
+   /*
+* Avoid nested stack-dumping if a panic occurs during oops processing
+*/
+   if (!test_taint(TAINT_DIE) && oops_in_progress <= 1)
+   dump_stack();
+#endif
+
/* Call flush even twice. It tries harder with a single online CPU */
printk_safe_flush_on_panic();
kmsg_dump(KMSG_DUMP_PANIC);
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH i-g-t v2] lib/pm: Wait a little for sound module load to complete

2018-09-03 Thread Chris Wilson
Sometimes we may probe the sound module as it is still being registered
and its debugfs not yet fully populated. If we do not find a file we
expect to exist, sleep a little and check again.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107801
Signed-off-by: Chris Wilson 
Cc: Imre Deak 
---
 lib/igt_pm.c | 22 +++---
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index 339a51e6f..c18bb87c6 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -154,20 +154,28 @@ static int __igt_pm_enable_audio_runtime_pm(void)
while ((de = readdir(dir))) {
const char *match = "hwC";
char buf[32] = { }; /* for Valgrind */
-   char *tmp;
+   int loops = 500;
+   int base;
int ret;
 
if (de->d_type != DT_LNK ||
strncmp(de->d_name, match, strlen(match)))
continue;
 
-   igt_assert(asprintf(,
-   "/sys/class/sound/%s/vendor_name",
-   de->d_name));
+   base = openat(dirfd(dir), de->d_name, O_RDONLY);
+   igt_assert_fd(base);
+
+   do {
+   fd = open(base, "vendor_name", O_RDONLY);
+   if (fd < 0) /* module is still loading? */
+   usleep(1000);
+   else
+   break;
+   } while (--loops);
+   close(base);
+   if (fd < 0)
+   continue;
 
-   fd = open(tmp, O_RDONLY);
-   free(tmp);
-   igt_assert_fd(fd);
ret = read(fd, buf, sizeof(buf));
close(fd);
igt_assert(ret > 0);
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH i-g-t] lib/pm: Wait a little for sound module load to complete

2018-09-03 Thread Chris Wilson
Quoting Chris Wilson (2018-09-03 13:51:10)
> Sometimes we may probe the sound module as it is still being registered
> and its debugfs not yet fully populated. If we do not find a file we
> expect to exist, sleep a little and check again.
> 
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107801
> Signed-off-by: Chris Wilson 
> Cc: Imre Deak 
> ---
>  lib/igt_pm.c | 22 +++---
>  1 file changed, 15 insertions(+), 7 deletions(-)
> 
> diff --git a/lib/igt_pm.c b/lib/igt_pm.c
> index 339a51e6f..e383f18b5 100644
> --- a/lib/igt_pm.c
> +++ b/lib/igt_pm.c
> @@ -154,20 +154,28 @@ static int __igt_pm_enable_audio_runtime_pm(void)
> while ((de = readdir(dir))) {
> const char *match = "hwC";
> char buf[32] = { }; /* for Valgrind */
> -   char *tmp;
> +   int loops = 500;
> +   int base;
> int ret;
>  
> if (de->d_type != DT_LNK ||
> strncmp(de->d_name, match, strlen(match)))
> continue;
>  
> -   igt_assert(asprintf(,
> -   "/sys/class/sound/%s/vendor_name",
> -   de->d_name));
> +   base = openat(dir, de->d_name, O_RDONLY);
s/dir/dirfd(dir)/
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/icl: Fix context RPCS programming (rev2)

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915/icl: Fix context RPCS programming (rev2)
URL   : https://patchwork.freedesktop.org/series/49005/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4757 -> Patchwork_10070 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49005/revisions/2/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10070:

  === IGT changes ===

 Warnings 

{igt@pm_rpm@module-reload}:
  fi-hsw-4770r:   PASS -> SKIP


== Known issues ==

  Here are the changes found in Patchwork_10070 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@drv_module_reload@basic-reload-inject:
  fi-hsw-4770r:   PASS -> DMESG-WARN (fdo#107425)

{igt@pm_rpm@module-reload}:
  fi-cnl-psr: PASS -> WARN (fdo#107708, fdo#107602)


 Possible fixes 

igt@kms_pipe_crc_basic@nonblocking-crc-pipe-b-frame-sequence:
  {fi-byt-clapper}:   FAIL (fdo#103191, fdo#107362) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS

igt@kms_psr@primary_page_flip:
  fi-cnl-psr: FAIL (fdo#107336) -> PASS


  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107425 https://bugs.freedesktop.org/show_bug.cgi?id=107425
  fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602
  fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708


== Participating hosts (53 -> 48) ==

  Missing(5): fi-ctg-p8600 fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 
fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4757 -> Patchwork_10070

  CI_DRM_4757: 1465de895e2b5d9e74e9a85189c9075155efa30d @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4621: 125eee6e981eac0a004aeb4f327439a132ceac5c @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10070: 9a2751c01ca21789da2a8f95dab23033540ad6c9 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

9a2751c01ca2 drm/i915/icl: Fix context RPCS programming

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10070/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH i-g-t] lib/pm: Wait a little for sound module load to complete

2018-09-03 Thread Chris Wilson
Sometimes we may probe the sound module as it is still being registered
and its debugfs not yet fully populated. If we do not find a file we
expect to exist, sleep a little and check again.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107801
Signed-off-by: Chris Wilson 
Cc: Imre Deak 
---
 lib/igt_pm.c | 22 +++---
 1 file changed, 15 insertions(+), 7 deletions(-)

diff --git a/lib/igt_pm.c b/lib/igt_pm.c
index 339a51e6f..e383f18b5 100644
--- a/lib/igt_pm.c
+++ b/lib/igt_pm.c
@@ -154,20 +154,28 @@ static int __igt_pm_enable_audio_runtime_pm(void)
while ((de = readdir(dir))) {
const char *match = "hwC";
char buf[32] = { }; /* for Valgrind */
-   char *tmp;
+   int loops = 500;
+   int base;
int ret;
 
if (de->d_type != DT_LNK ||
strncmp(de->d_name, match, strlen(match)))
continue;
 
-   igt_assert(asprintf(,
-   "/sys/class/sound/%s/vendor_name",
-   de->d_name));
+   base = openat(dir, de->d_name, O_RDONLY);
+   igt_assert_fd(base);
+
+   do {
+   fd = open(base, "vendor_name", O_RDONLY);
+   if (fd < 0) /* module is still loading? */
+   usleep(1000);
+   else
+   break;
+   } while (--loops);
+   close(base);
+   if (fd < 0)
+   continue;
 
-   fd = open(tmp, O_RDONLY);
-   free(tmp);
-   igt_assert_fd(fd);
ret = read(fd, buf, sizeof(buf));
close(fd);
igt_assert(ret > 0);
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/icl: Fix context RPCS programming (rev2)

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915/icl: Fix context RPCS programming (rev2)
URL   : https://patchwork.freedesktop.org/series/49005/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
9a2751c01ca2 drm/i915/icl: Fix context RPCS programming
-:18: WARNING:TYPO_SPELLING: 'writting' may be misspelled - perhaps 'writing'?
#18: 
writting to a bitfield starting three bits higher than it should). These

total: 0 errors, 1 warnings, 0 checks, 118 lines checked

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm: Remove "protection" around drm_vma_offset_manager_destroy()

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm: Remove "protection" around drm_vma_offset_manager_destroy()
URL   : https://patchwork.freedesktop.org/series/49069/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4754_full -> Patchwork_10069_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_10069_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@kms_setmode@basic:
  shard-apl:  PASS -> FAIL (fdo#99912)


 Possible fixes 

igt@kms_cursor_legacy@cursor-vs-flip-toggle:
  shard-hsw:  FAIL (fdo#103355) -> PASS

igt@perf@blocking:
  shard-hsw:  FAIL (fdo#102252) -> PASS


  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4754 -> Patchwork_10069

  CI_DRM_4754: b6b0b80157c9ecad0569a42bb8efeb6d2f27dfb3 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4620: 20087bf22698612a526353f022bc232e2b0dcdcc @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10069: 72665cf7563f4485efa6b4a9606b7162f442c69e @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10069/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 2/2] drm/i915/tracepoints: Remove DRM_I915_LOW_LEVEL_TRACEPOINTS Kconfig option

2018-09-03 Thread Kukanova, Svetlana
OK, so no end-user queries matter, just the queries from the tools for 
end-users do, right?

And with making the open-source tool (shipped by distros, etc.) suitable for 
negotiations we need to hurry while at least the trace-point mechanism is not 
yet completely broken and can be used to show usefulness and to have at least 
something that can be taken to distro?

If the new tool and kernel changes required by it are developed in parallel - 
you don't have that "shipped by a distro" condition, BTW, right? Or in case of 
parallel discussion you're deciding if the suggested tool  has rights to exist?

-Original Message-
From: Joonas Lahtinen [mailto:joonas.lahti...@linux.intel.com] 
Sent: Wednesday, August 29, 2018 5:52 PM
To: Intel-gfx@lists.freedesktop.org; Kukanova, Svetlana 
; Chris Wilson ; Tvrtko 
Ursulin ; Tvrtko Ursulin 
Subject: RE: [Intel-gfx] [PATCH 2/2] drm/i915/tracepoints: Remove 
DRM_I915_LOW_LEVEL_TRACEPOINTS Kconfig option

Quoting Kukanova, Svetlana (2018-08-27 16:37:14)
> > Once there is an actual request to have some metrics from vanilla kernels
> > through some end-user tools (not a developer tool, like here), I'll be glad
> > to discuss about how to provide the information the best for them in a
> > stable manner.
> 
> Sorry for my ignorance, but looks like I don't understand what developer vs.
> end-user means here.
> With regard to GPU profiling VTune's end-user is somebody who develops gfx or
> media applications basing on MediaSDK, OpenCL, C for Media, etc.
> Or, more often it's an intel application engineer working with those people's
> code.
> AE in his\her turn may contact e.g. Dmitry's team if judging by VTune data
> he\she decides that the problem is on the deeper level of the gfx stack, not
> in the customer's code.
> Then Dmitry's team would be experimenting with VTune and deciding if the
> problem is in their code or it's deeper in i915.
> Don't think that i915 people use VTune (sadly:)) so here the chain is broken.
> Otherwise they could e.g. blame HW based on the same data.
> I'm wondering who in this chain (app developer, AE, Dmitry, i915) is an
> "end-user" and who's a "developer"?
> Or is a "developer" a kernel developer only?
> And e.g. Dmitry is an end-user and thus he is not supposed to use tools like
> gpuvis or VTune?
> Looks like all the chain before i915 is annoyed by the kernel-rebuilding
> requirement.

With end-user tool I'm referring to something that would have interest
in being packaged and shipped by a distro.

gpuvis team seems to be doing fine with the application being built from source
and being run against a specially configured kernel for their purposes. I would
assume there to be some queries about a enabling the tracepoints by default if
there was demand. At the same time I would assume them to try to get the
application packaged and into distros.

And then we would commence discussing how to provide the information in a stable
manner (most likely outside tracepoints). So far I'm not seeing such queries
from gpuvis direction.

> > The interface discussion would probably start from a DRM subsystem level, so
> > that the tool would have an equivalent level of base experience from all
> > drivers.
>
> That sounds like a solution from an ideal world. I mean if DRM had a uAPI for
> scheduling observability and all the drivers had to implement this. And the
> drivers would require info from HW like GuC pointing to the necessity of uAPI
> support...
> Would be just great for all the tools (, developers and end-users).
> But I have no idea what kind of impulse should it be to bring this to reality.
> And if all the energy available to human kind at the given evolution point
> would be enough to at least start this. 
> Or am I just too pessimistic? Are there some simple defined steps to be done
> to make it? Can we build a realistic plan?

Step is "1. Have the tool" :) There seem to be three options: 1) open sourcing
VTune 2) contributing to gpuvis project to drive the project into the above
mentioned direction. 3) writing a new project from scratch (not encouraged,
unless you have something differentiating to bring to the table).

Unless somebody actively drives the feature to some Open Source userspace
consumer, there won't be an interface for the information from kernel.
Demand from an Open Source application is a hard requirement for kickstarting
the interface discussion.

> E.g. is this the first step? -
> > There's just no Open Source tool to first design and then validate the
> > interfaces against. There's just the debugging tool which happens to work
> > currently, without any guarantees that next kernel version would not cause a
> > substantial rework of the interfacing code.
> 
> How does it usually work, I mean you can't have a widely shipped open-source
> consumer already using a non-existent feature that is to be requested? 
> And I can't imagine what kind of existing tool should it be to decide suddenly
> that it needs to add GPU 

[Intel-gfx] [PATCH v2] drm/i915/icl: Fix context RPCS programming

2018-09-03 Thread Tvrtko Ursulin
From: Tvrtko Ursulin 

There are two issues with the current RPCS programming for Icelake:

Expansion of the slice count bitfield has been missed, as well as the
required programming workaround for the subslice count bitfield size
limitation.

1)

Bitfield width for configuring the active slice count has grown so we need
to program the GEN8_R_PWR_CLK_STATE accordingly.

Current code was always requesting eight times the number of slices (due
writting to a bitfield starting three bits higher than it should). These
requests were luckily a) capped by the hardware to the available number of
slices, and b) we haven't yet exported the code to ask for reduced slice
configurations.

Due both of the above there was no impact from this incorrect programming
but we should still fix it.

2)

Due subslice count bitfield being only three bits wide and furthermore
capped to a maximum documented value of four, special programming
workaround is needed to enable more than four subslices.

With this programming driver has to consider the GT configuration as
2x4x8, while the hardware internally translates this to 1x8x8.

A limitation stemming from this is that either a subslice count between
one and four can be selected, or a subslice count equaling the total
number of subslices in all selected slices. In other words, odd subslice
counts greater than four are impossible, as are odd subslice counts
greater than a single slice subslice count.

This also had no impact in the current code base due breakage from 1)
always reqesting more than one slice.

While fixing this we also add some asserts to flag up any future bitfield
overflows.

v2:
 * Use a local in all branches for clarity. (Lionel)

Signed-off-by: Tvrtko Ursulin 
Bspec: 12247
Reported-by: tony...@intel.com
Suggested-by: Lionel Landwerlin 
Cc: Lionel Landwerlin 
Cc: tony...@intel.com
Cc: Mika Kuoppala 
Reviewed-by: Lionel Landwerlin 
---
 drivers/gpu/drm/i915/i915_reg.h  |  2 +
 drivers/gpu/drm/i915/intel_lrc.c | 87 +++-
 2 files changed, 76 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
index f2321785cbd6..09bc8e730ee1 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -344,6 +344,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t reg)
 #define   GEN8_RPCS_S_CNT_ENABLE   (1 << 18)
 #define   GEN8_RPCS_S_CNT_SHIFT15
 #define   GEN8_RPCS_S_CNT_MASK (0x7 << GEN8_RPCS_S_CNT_SHIFT)
+#define   GEN11_RPCS_S_CNT_SHIFT   12
+#define   GEN11_RPCS_S_CNT_MASK(0x3f << GEN11_RPCS_S_CNT_SHIFT)
 #define   GEN8_RPCS_SS_CNT_ENABLE  (1 << 11)
 #define   GEN8_RPCS_SS_CNT_SHIFT   8
 #define   GEN8_RPCS_SS_CNT_MASK(0x7 << GEN8_RPCS_SS_CNT_SHIFT)
diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
index f8ceb9c99dd6..def467c2451b 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -2480,6 +2480,9 @@ int logical_xcs_ring_init(struct intel_engine_cs *engine)
 static u32
 make_rpcs(struct drm_i915_private *dev_priv)
 {
+   bool subslice_pg = INTEL_INFO(dev_priv)->sseu.has_subslice_pg;
+   u8 slices = hweight8(INTEL_INFO(dev_priv)->sseu.slice_mask);
+   u8 subslices = hweight8(INTEL_INFO(dev_priv)->sseu.subslice_mask[0]);
u32 rpcs = 0;
 
/*
@@ -2489,6 +2492,38 @@ make_rpcs(struct drm_i915_private *dev_priv)
if (INTEL_GEN(dev_priv) < 9)
return 0;
 
+   /*
+* Since the SScount bitfield in GEN8_R_PWR_CLK_STATE is only three bits
+* wide and Icelake has up to eight subslices, specfial programming is
+* needed in order to correctly enable all subslices.
+*
+* According to documentation software must consider the configuration
+* as 2x4x8 and hardware will translate this to 1x8x8.
+*
+* Furthemore, even though SScount is three bits, maximum documented
+* value for it is four. From this some rules/restrictions follow:
+*
+* 1.
+* If enabled subslice count is greater than four, two whole slices must
+* be enabled instead.
+*
+* 2.
+* When more than one slice is enabled, hardware ignores the subslice
+* count altogether.
+*
+* From these restrictions it follows that it is not possible to enable
+* a count of subslices between the SScount maximum of four restriction,
+* and the maximum available number on a particular SKU. Either all
+* subslices are enabled, or a count between one and four on the first
+* slice.
+*/
+   if (IS_GEN11(dev_priv) && slices == 1 && subslices >= 4) {
+   GEM_BUG_ON(subslices & 1);
+
+   subslice_pg = false;
+   slices *= 2;
+   }
+
/*
 * Starting in Gen9, render power gating can leave
 * 

Re: [Intel-gfx] [PATCH] drm/i915/icl: Fix context RPCS programming

2018-09-03 Thread Tvrtko Ursulin


On 31/08/2018 17:52, Lionel Landwerlin wrote:

On 31/08/2018 12:53, Tvrtko Ursulin wrote:

From: Tvrtko Ursulin 

There are two issues with the current RPCS programming for Icelake:

Expansion of the slice count bitfield has been missed, as well as the
required programming workaround for the subslice count bitfield size
limitation.

1)

Bitfield width for configuring the active slice count has grown so we 
need

to program the GEN8_R_PWR_CLK_STATE accordingly.

Current code was always requesting eight times the number of slices (due
writting to a bitfield starting three bits higher than it should). These
requests were luckily a) capped by the hardware to the available 
number of

slices, and b) we haven't yet exported the code to ask for reduced slice
configurations.

Due both of the above there was no impact from this incorrect programming
but we should still fix it.

2)

Due subslice count bitfield being only three bits wide and furthermore
capped to a maximum documented value of four, special programming
workaround is needed to enable more than four subslices.

With this programming driver has to consider the GT configuration as
2x4x8, while the hardware internally translates this to 1x8x8.

A limitation stemming from this is that either a subslice count between
one and four can be selected, or a subslice count equaling the total
number of subslices in all selected slices. In other words, odd subslice
counts greater than four are impossible, as are odd subslice counts
greater than a single slice subslice count.

This also had no impact in the current code base due breakage from 1)
always reqesting more than one slice.

While fixing this we also add some asserts to flag up any future bitfield
overflows.

Signed-off-by: Tvrtko Ursulin 
Bspec: 12247
Reported-by: tony...@intel.com
Suggested-by: Lionel Landwerlin 
Cc: Lionel Landwerlin 
Cc: tony...@intel.com
Cc: Mika Kuoppala 
---
  drivers/gpu/drm/i915/i915_reg.h  |  2 +
  drivers/gpu/drm/i915/intel_lrc.c | 89 +++-
  2 files changed, 78 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_reg.h 
b/drivers/gpu/drm/i915/i915_reg.h

index f2321785cbd6..09bc8e730ee1 100644
--- a/drivers/gpu/drm/i915/i915_reg.h
+++ b/drivers/gpu/drm/i915/i915_reg.h
@@ -344,6 +344,8 @@ static inline bool i915_mmio_reg_valid(i915_reg_t 
reg)

  #define   GEN8_RPCS_S_CNT_ENABLE    (1 << 18)
  #define   GEN8_RPCS_S_CNT_SHIFT    15
  #define   GEN8_RPCS_S_CNT_MASK    (0x7 << GEN8_RPCS_S_CNT_SHIFT)
+#define   GEN11_RPCS_S_CNT_SHIFT    12
+#define   GEN11_RPCS_S_CNT_MASK    (0x3f << GEN11_RPCS_S_CNT_SHIFT)
  #define   GEN8_RPCS_SS_CNT_ENABLE    (1 << 11)
  #define   GEN8_RPCS_SS_CNT_SHIFT    8
  #define   GEN8_RPCS_SS_CNT_MASK    (0x7 << GEN8_RPCS_SS_CNT_SHIFT)
diff --git a/drivers/gpu/drm/i915/intel_lrc.c 
b/drivers/gpu/drm/i915/intel_lrc.c

index f8ceb9c99dd6..323c46319cb8 100644
--- a/drivers/gpu/drm/i915/intel_lrc.c
+++ b/drivers/gpu/drm/i915/intel_lrc.c
@@ -2480,6 +2480,9 @@ int logical_xcs_ring_init(struct intel_engine_cs 
*engine)

  static u32
  make_rpcs(struct drm_i915_private *dev_priv)
  {
+    bool subslice_pg = INTEL_INFO(dev_priv)->sseu.has_subslice_pg;
+    u8 slices = hweight8(INTEL_INFO(dev_priv)->sseu.slice_mask);
+    u8 subslices = 
hweight8(INTEL_INFO(dev_priv)->sseu.subslice_mask[0]);

  u32 rpcs = 0;
  /*
@@ -2489,6 +2492,38 @@ make_rpcs(struct drm_i915_private *dev_priv)
  if (INTEL_GEN(dev_priv) < 9)
  return 0;
+    /*
+ * Since the SScount bitfield in GEN8_R_PWR_CLK_STATE is only 
three bits
+ * wide and Icelake has up to eight subslices, specfial 
programming is

+ * needed in order to correctly enable all subslices.
+ *
+ * According to documentation software must consider the 
configuration

+ * as 2x4x8 and hardware will translate this to 1x8x8.
+ *
+ * Furthemore, even though SScount is three bits, maximum documented
+ * value for it is four. From this some rules/restrictions follow:
+ *
+ * 1.
+ * If enabled subslice count is greater than four, two whole 
slices must

+ * be enabled instead.
+ *
+ * 2.
+ * When more than one slice is enabled, hardware ignores the 
subslice

+ * count altogether.
+ *
+ * From these restrictions it follows that it is not possible to 
enable
+ * a count of subslices between the SScount maximum of four 
restriction,

+ * and the maximum available number on a particular SKU. Either all
+ * subslices are enabled, or a count between one and four on the 
first

+ * slice.
+ */
+    if (IS_GEN11(dev_priv) && slices == 1 && subslices >= 4) {
+    GEM_BUG_ON(subslices & 1);
+
+    subslice_pg = false;



Err... Now I'm looking at the documentation again and I see this for the 
subslice enable field :



Enable Subslice Count Request.

0 = Use Async subslice count

1 = Use SScount in this register


Searching for "Async subslice count" leads me 

Re: [Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Do a full device reset after being wedged

2018-09-03 Thread Chris Wilson
Quoting Patchwork (2018-09-03 11:29:24)
> == Series Details ==
> 
> Series: series starting with [1/5] drm/i915: Do a full device reset after 
> being wedged
> URL   : https://patchwork.freedesktop.org/series/49061/
> State : success
> 
> == Summary ==
> 
> = CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10068_full =
> 
> == Summary - SUCCESS ==
> 
>   No regressions found.

A peaceful change. Thanks for the review,
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 2/5] drm/i915: Flag any possible writes for a GTT fault

2018-09-03 Thread Joonas Lahtinen
Quoting Chris Wilson (2018-09-03 11:33:34)
> We do not explicitly mark the PTE for the user's GTT mmap as being
> wrprotect, so we don't get a refault when we would need to change a
> read-only mmapping into read-write. As such, we must presume that if the
> vma has PROT_WRITE it may be written to, although this is supposed to be
> indicated by set-domain there are cases (e.g. after swap) where
> userspace may not be aware of the implicit domain change.
> 
> Signed-off-by: Chris Wilson 

Reviewed-by: Joonas Lahtinen 

Regards, Joonas
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for series starting with [1/5] drm/i915: Do a full device reset after being wedged

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [1/5] drm/i915: Do a full device reset after being 
wedged
URL   : https://patchwork.freedesktop.org/series/49061/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10068_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_10068_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@kms_flip@2x-flip-vs-expired-vblank:
  shard-glk:  PASS -> INCOMPLETE (k.org#198133, fdo#103359)

igt@kms_setmode@basic:
  shard-apl:  PASS -> FAIL (fdo#99912)

igt@perf@blocking:
  shard-hsw:  PASS -> FAIL (fdo#102252)


 Possible fixes 

igt@kms_vblank@pipe-b-ts-continuation-suspend:
  shard-apl:  INCOMPLETE (fdo#103927) -> PASS

igt@perf@polling:
  shard-hsw:  FAIL (fdo#102252) -> PASS


  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103359 https://bugs.freedesktop.org/show_bug.cgi?id=103359
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912
  k.org#198133 https://bugzilla.kernel.org/show_bug.cgi?id=198133


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4753 -> Patchwork_10068

  CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10068: f7020f7c61c7f49683d92ce208121a80b22206c2 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10068/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 5/5] drm/i915: Forcibly flush unwanted requests in drop-caches

2018-09-03 Thread Joonas Lahtinen
Quoting Chris Wilson (2018-09-03 11:33:37)
> Add a mode to debugfs/drop-caches to flush unwanted requests off the GPU
> (by wedging the device and resetting). This is very useful if a test
> terminated leaving a long queue of hanging batches that would ordinarily
> require a round trip through hangcheck for each.
> 
> It reduces the inter-test operation to just a write into drop-caches to
> reset driver/GPU state between tests.
> 
> Signed-off-by: Chris Wilson 

Reviewed-by: Joonas Lahtinen 

Regards, Joonas
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 4/5] drm/i915: Early rejection of buffer allocations larger than RAM

2018-09-03 Thread Joonas Lahtinen
Quoting Chris Wilson (2018-09-03 11:33:36)
> We currently try to pin and allocate the whole buffer at a time. If that
> object is larger than RAM, we will try to pin the whole of physical
> memory, force the machine into oom, and then still fail the allocation.
> 
> If the request is obviously too large, error out early. We opt to do
> this in the backend to make it easy to use alternate paths that do not
> require the entire object pinned, or may easily handle proxy objects
> that are larger than physical memory.
> 
> Signed-off-by: Chris Wilson 

Reviewed-by: Joonas Lahtinen 

Regards, Joonas
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 3/5] drm/i915: Force the slow path after a user-write error

2018-09-03 Thread Joonas Lahtinen
Quoting Chris Wilson (2018-09-03 11:33:35)
> If we fail to write the user relocation back when it is changed, force
> ourselves to take the slow relocation path where we can handle faults in
> the write path. There is still an element of dubiousness as having
> patched up the batch to use the correct offset, it no longer matches the
> presumed_offset in the relocation, so a second pass may miss any changes
> in layout.
> 
> Signed-off-by: Chris Wilson 

Reviewed-by: Joonas Lahtinen 

Regards, Joonas
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH 1/1] firmware/dmc/icl: load v1.07 on icelake.

2018-09-03 Thread Imre Deak
On Mon, Aug 27, 2018 at 05:38:44PM -0700, Anusha Srivatsa wrote:
> Add Support to load DMC on Icelake.
> 
> While at it, also add support to load the firmware
> during system resume.
> 
> v2: load firmware during system resume.(Imre)
> 
> v3: enable has_csr for icelake.(Jyoti)
> 
> v4: Only load the firmware in this patch
> 
> Cc: Jyoti Yadav 
> Cc: Imre Deak 
> Cc: Rodrigo Vivi 
> Cc: Paulo Zanoni 
> Signed-off-by: Anusha Srivatsa 

Reviewed-by: Imre Deak 

Is it ok to push this already now that the ICL 1.07 firmware is in [1]
or do we have to wait until it propagates to [2]?

[1] https://cgit.freedesktop.org/drm/drm-firmware/
[2] https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

> ---
>  drivers/gpu/drm/i915/intel_csr.c| 7 +++
>  drivers/gpu/drm/i915/intel_runtime_pm.c | 3 +++
>  2 files changed, 10 insertions(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_csr.c 
> b/drivers/gpu/drm/i915/intel_csr.c
> index 1ec4f09c61f6..6d9d47322405 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -34,6 +34,9 @@
>   * low-power state and comes back to normal.
>   */
>  
> +#define I915_CSR_ICL "i915/icl_dmc_ver1_07.bin"
> +#define ICL_CSR_VERSION_REQUIRED CSR_VERSION(1, 7)
> +
>  #define I915_CSR_GLK "i915/glk_dmc_ver1_04.bin"
>  MODULE_FIRMWARE(I915_CSR_GLK);
>  #define GLK_CSR_VERSION_REQUIRED CSR_VERSION(1, 4)
> @@ -301,6 +304,8 @@ static uint32_t *parse_csr_fw(struct drm_i915_private 
> *dev_priv,
>   if (csr->fw_path == i915_modparams.dmc_firmware_path) {
>   /* Bypass version check for firmware override. */
>   required_version = csr->version;
> + } else if (IS_ICELAKE(dev_priv)) {
> + required_version = ICL_CSR_VERSION_REQUIRED;
>   } else if (IS_CANNONLAKE(dev_priv)) {
>   required_version = CNL_CSR_VERSION_REQUIRED;
>   } else if (IS_GEMINILAKE(dev_priv)) {
> @@ -458,6 +463,8 @@ void intel_csr_ucode_init(struct drm_i915_private 
> *dev_priv)
>  
>   if (i915_modparams.dmc_firmware_path)
>   csr->fw_path = i915_modparams.dmc_firmware_path;
> + else if (IS_ICELAKE(dev_priv))
> + csr->fw_path = I915_CSR_ICL;
>   else if (IS_CANNONLAKE(dev_priv))
>   csr->fw_path = I915_CSR_CNL;
>   else if (IS_GEMINILAKE(dev_priv))
> diff --git a/drivers/gpu/drm/i915/intel_runtime_pm.c 
> b/drivers/gpu/drm/i915/intel_runtime_pm.c
> index 2852395125cd..bd7da068e813 100644
> --- a/drivers/gpu/drm/i915/intel_runtime_pm.c
> +++ b/drivers/gpu/drm/i915/intel_runtime_pm.c
> @@ -3563,6 +3563,9 @@ static void icl_display_core_init(struct 
> drm_i915_private *dev_priv,
>  
>   /* 7. Setup MBUS. */
>   icl_mbus_init(dev_priv);
> +
> + if (resume && dev_priv->csr.dmc_payload)
> + intel_csr_load_program(dev_priv);
>  }
>  
>  static void icl_display_core_uninit(struct drm_i915_private *dev_priv)
> -- 
> 2.17.1
> 
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm: Remove "protection" around drm_vma_offset_manager_destroy()

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm: Remove "protection" around drm_vma_offset_manager_destroy()
URL   : https://patchwork.freedesktop.org/series/49069/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4754 -> Patchwork_10069 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49069/revisions/1/mbox/

== Known issues ==

  Here are the changes found in Patchwork_10069 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@gem_exec_suspend@basic-s3:
  fi-blb-e6850:   PASS -> INCOMPLETE (fdo#107718)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  {fi-byt-clapper}:   PASS -> FAIL (fdo#103191, fdo#107362)


 Possible fixes 

igt@kms_pipe_crc_basic@read-crc-pipe-b-frame-sequence:
  {fi-byt-clapper}:   FAIL (fdo#103191, fdo#107362) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  fi-snb-2520m:   INCOMPLETE (fdo#103713) -> PASS


  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103713 https://bugs.freedesktop.org/show_bug.cgi?id=103713
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718


== Participating hosts (52 -> 47) ==

  Additional (1): fi-skl-6700hq 
  Missing(6): fi-hsw-4770r fi-ilk-m540 fi-hsw-4200u fi-byt-squawks 
fi-bsw-cyan fi-ctg-p8600 


== Build changes ==

* Linux: CI_DRM_4754 -> Patchwork_10069

  CI_DRM_4754: b6b0b80157c9ecad0569a42bb8efeb6d2f27dfb3 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4620: 20087bf22698612a526353f022bc232e2b0dcdcc @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10069: 72665cf7563f4485efa6b4a9606b7162f442c69e @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

72665cf7563f drm: Remove "protection" around drm_vma_offset_manager_destroy()

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10069/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Reduce context HW ID lifetime

2018-09-03 Thread Tvrtko Ursulin


On 31/08/2018 13:36, Chris Wilson wrote:

Quoting Tvrtko Ursulin (2018-08-30 17:23:43)


On 30/08/2018 11:24, Chris Wilson wrote:

+static int steal_hw_id(struct drm_i915_private *i915)
+{
+ struct i915_gem_context *ctx, *cn;
+ LIST_HEAD(pinned);
+ int id = -ENOSPC;
+
+ lockdep_assert_held(>contexts.mutex);
+
+ list_for_each_entry_safe(ctx, cn,
+  >contexts.hw_id_list, hw_id_link) {
+ if (atomic_read(>pin_hw_id)) {
+ list_move_tail(>hw_id_link, );
+ continue;
+ }
+
+ GEM_BUG_ON(!ctx->hw_id); /* perma-pinned kernel context */
+ list_del_init(>hw_id_link);
+ id = ctx->hw_id;
+ break;
+ }
+
+ list_splice_tail(, >contexts.hw_id_list);


Put a comment what is this code doing please. Trying to create some sort
of LRU order?


LRSearched. Same as the shrinker, and eviction code if you would also
review that ;)


Two things are infinite, the universe and your stream of patches! :)




+ return id;
+}
+
+static int assign_hw_id(struct drm_i915_private *i915, unsigned int *out)
+{
+ int ret;
+
+ lockdep_assert_held(>contexts.mutex);
+
+ ret = new_hw_id(i915, GFP_KERNEL | __GFP_RETRY_MAYFAIL | __GFP_NOWARN);
+ if (unlikely(ret < 0)) {
+ ret = steal_hw_id(i915);
+ if (ret < 0) /* once again for the correct erro code */


errno


+ ret = new_hw_id(i915, GFP_KERNEL);


Hmm.. shouldn't you try GFP_KERNEL before attempting to steal? Actually
I think you should branch based on -ENOSPC (steal) vs -ENOMEM (retry
with GFP_KERNEL). Which would actually mean something like:


I was applying the same strategy as we use elsewhere. Penalise any
driver cache before hitting reclaim.

I think that is fair from an application of soft backpressure point of
view. (Lack of backpressure is probably a sore point for many.)


My concern was lack of a phase which avoids hw id stealing for loads 
with few contexts but heavy memory pressure. Sounded like a thing worth 
"robustifying" against - you don't think so?





- ret = ida_simple_get(_priv->contexts.hw_ida,
-  0, max, GFP_KERNEL);


Although now that I see this I am struggling not to say the change to
try a lighter weight allocation strategy first (gfp may fail) needs to
be split out to a separate patch.


Pardon? I appear to suddenly be hard of hearing.

The patch was all about the steal_hw_id().


Yes, but you could't have kept the GFP_KERNEL ida_simple_get and only 
then fall back to stealing. Or as I said, GFP_MAYFAIL, then GFP_KERNEL, 
then steal.





- if (ret < 0) {
- /* Contexts are only released when no longer active.
-  * Flush any pending retires to hopefully release some
-  * stale contexts and try again.
-  */
- i915_retire_requests(dev_priv);
- ret = ida_simple_get(_priv->contexts.hw_ida,
-  0, max, GFP_KERNEL);
- if (ret < 0)
- return ret;
- }
-
- *out = ret;
- return 0;
-}
-
   static u32 default_desc_template(const struct drm_i915_private *i915,
const struct i915_hw_ppgtt *ppgtt)
   {
@@ -276,12 +324,6 @@ __create_hw_context(struct drm_i915_private *dev_priv,
   if (ctx == NULL)
   return ERR_PTR(-ENOMEM);
   
- ret = assign_hw_id(dev_priv, >hw_id);

- if (ret) {
- kfree(ctx);
- return ERR_PTR(ret);
- }
-
   kref_init(>ref);
   list_add_tail(>link, _priv->contexts.list);
   ctx->i915 = dev_priv;
@@ -295,6 +337,7 @@ __create_hw_context(struct drm_i915_private *dev_priv,
   
   INIT_RADIX_TREE(>handles_vma, GFP_KERNEL);

   INIT_LIST_HEAD(>handles_list);
+ INIT_LIST_HEAD(>hw_id_link);
   
   /* Default context will never have a file_priv */

   ret = DEFAULT_CONTEXT_HANDLE;
@@ -421,15 +464,35 @@ i915_gem_context_create_gvt(struct drm_device *dev)
   return ctx;
   }
   
+static void

+destroy_kernel_context(struct i915_gem_context **ctxp)
+{
+ struct i915_gem_context *ctx;
+
+ /* Keep the context ref so that we can free it immediately ourselves */
+ ctx = i915_gem_context_get(fetch_and_zero(ctxp));
+ GEM_BUG_ON(!i915_gem_context_is_kernel(ctx));
+
+ context_close(ctx);
+ i915_gem_context_free(ctx);
+}
+
   struct i915_gem_context *
   i915_gem_context_create_kernel(struct drm_i915_private *i915, int prio)
   {
   struct i915_gem_context *ctx;
+ int err;
   
   ctx = i915_gem_create_context(i915, NULL);

   if (IS_ERR(ctx))
   return ctx;
   
+ err = i915_gem_context_pin_hw_id(ctx);

+ if (err) {
+ destroy_kernel_context();
+ return ERR_PTR(err);
+ }
+
   i915_gem_context_clear_bannable(ctx);
   ctx->sched.priority = prio;
   ctx->ring_size = 

Re: [Intel-gfx] [PATCH 1/5] drm/i915: Do a full device reset after being wedged

2018-09-03 Thread Joonas Lahtinen
Quoting Chris Wilson (2018-09-03 11:33:33)
> We only call unset_wedged on the global reset path (since it's a global
> operation), so if we are terminally wedged and wish to reset, take the
> full device reset path rather than the quicker individual engine resets.
> 
> Signed-off-by: Chris Wilson 



> +++ b/drivers/gpu/drm/i915/i915_irq.c
> @@ -3309,7 +3309,8 @@ void i915_handle_error(struct drm_i915_private 
> *dev_priv,
>  * Try engine reset when available. We fall back to full reset if
>  * single reset fails.
>  */
> -   if (intel_has_reset_engine(dev_priv)) {
> +   if (intel_has_reset_engine(dev_priv) &&
> +   !i915_terminally_wedged(_priv->gpu_error)) {

NOT terminally wedged AND can reset individually reads clearer, but
either way:

Reviewed-by: Joonas Lahtinen 

Regards, Joonas
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] drm: Remove "protection" around drm_vma_offset_manager_destroy()

2018-09-03 Thread Chris Wilson
Using a spinlock to serialize the destroy function, within the destroy
function itself does not prevent the buggy driver from shooting
themselves in the foot - either way they still have a use-after-free
issue.

Reported-by: Jia-Ju Bai 
Signed-off-by: Chris Wilson 
Cc: Davidlohr Bueso 
Cc: Liviu Dudau 
Cc: Daniel Vetter 
---
 drivers/gpu/drm/drm_vma_manager.c | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/drivers/gpu/drm/drm_vma_manager.c 
b/drivers/gpu/drm/drm_vma_manager.c
index a6b2fe36b025..c5d0d2358301 100644
--- a/drivers/gpu/drm/drm_vma_manager.c
+++ b/drivers/gpu/drm/drm_vma_manager.c
@@ -103,10 +103,7 @@ EXPORT_SYMBOL(drm_vma_offset_manager_init);
  */
 void drm_vma_offset_manager_destroy(struct drm_vma_offset_manager *mgr)
 {
-   /* take the lock to protect against buggy drivers */
-   write_lock(>vm_lock);
drm_mm_takedown(>vm_addr_space_mm);
-   write_unlock(>vm_lock);
 }
 EXPORT_SYMBOL(drm_vma_offset_manager_destroy);
 
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


Re: [Intel-gfx] [PATCH] drm/i915: Determine uses-full-ppgtt from context for execbuf

2018-09-03 Thread Chris Wilson
Quoting Rodrigo Vivi (2018-09-03 06:20:22)
> On Sat, Sep 01, 2018 at 10:24:51AM +0100, Chris Wilson wrote:
> > Rather than inspect the global module parameter for whether full-ppgtt
> > maybe enabled, we can inspect the context directly as to whether it has
> > its own vm.
> > 
> > Signed-off-by: Chris Wilson 
> > Cc: Tvrtko Ursulin 
> > Cc: Bob Paauwe 
> > Cc: Rodrigo Vivi 
> 
> it is good that we don't need to depend on parameter for this.
> 
> Reviewed-by: Rodrigo Vivi 

Ta, pushed. Along the create path it's a little trickier, but we would
rather push the decision down as to what type of ppgtt to create (if
any) to the responsible subsystem. There ought to be a simple way!
-Chris
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915/intel_csr.c Added ICL Stepping info.

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915/intel_csr.c Added ICL Stepping info.
URL   : https://patchwork.freedesktop.org/series/49058/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10067_full =

== Summary - WARNING ==

  Minor unknown changes coming with Patchwork_10067_full need to be verified
  manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in Patchwork_10067_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  

== Possible new issues ==

  Here are the unknown changes that may have been introduced in 
Patchwork_10067_full:

  === IGT changes ===

 Warnings 

igt@kms_frontbuffer_tracking@fbc-rgb101010-draw-mmap-wc:
  shard-snb:  PASS -> SKIP +1


== Known issues ==

  Here are the changes found in Patchwork_10067_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@gem_exec_big:
  shard-hsw:  PASS -> INCOMPLETE (fdo#103540)

igt@pm_rpm@system-suspend:
  shard-apl:  PASS -> INCOMPLETE (fdo#103927)


 Possible fixes 

igt@kms_vblank@pipe-b-ts-continuation-suspend:
  shard-apl:  INCOMPLETE (fdo#103927) -> PASS

igt@perf@polling:
  shard-hsw:  FAIL (fdo#102252) -> PASS


  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103540 https://bugs.freedesktop.org/show_bug.cgi?id=103540
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4753 -> Patchwork_10067

  CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10067: e524a457fd75a1429b392fb289e4e1a2167ff6b1 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10067/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/5] drm/i915: Do a full device reset after being wedged

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [1/5] drm/i915: Do a full device reset after being 
wedged
URL   : https://patchwork.freedesktop.org/series/49061/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4753 -> Patchwork_10068 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49061/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10068:

  === IGT changes ===

 Warnings 

{igt@pm_rpm@module-reload}:
  fi-hsw-4770r:   PASS -> SKIP


== Known issues ==

  Here are the changes found in Patchwork_10068 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@amdgpu/amd_basic@userptr:
  fi-kbl-8809g:   PASS -> INCOMPLETE (fdo#107402)

igt@drv_module_reload@basic-reload-inject:
  fi-hsw-4770r:   PASS -> DMESG-WARN (fdo#107425)

{igt@pm_rpm@module-reload}:
  fi-glk-dsi: NOTRUN -> WARN (fdo#107708, fdo#107602)
  fi-cnl-psr: PASS -> WARN (fdo#107708, fdo#107602)


 Possible fixes 

igt@gem_exec_suspend@basic-s4-devices:
  fi-blb-e6850:   INCOMPLETE (fdo#107718) -> PASS

igt@kms_chamelium@hdmi-hpd-fast:
  fi-kbl-7500u:   FAIL (fdo#102672, fdo#103841) -> SKIP

igt@kms_frontbuffer_tracking@basic:
  fi-hsw-peppy:   DMESG-WARN (fdo#102614) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  {fi-byt-clapper}:   FAIL (fdo#107362, fdo#103191) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS

igt@prime_vgem@basic-fence-flip:
  fi-ilk-650: FAIL (fdo#104008) -> PASS


  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107402 https://bugs.freedesktop.org/show_bug.cgi?id=107402
  fdo#107425 https://bugs.freedesktop.org/show_bug.cgi?id=107425
  fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602
  fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718


== Participating hosts (49 -> 48) ==

  Additional (3): fi-cfl-8109u fi-glk-dsi fi-skl-6700hq 
  Missing(4): fi-ilk-m540 fi-byt-squawks fi-bsw-cyan fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4753 -> Patchwork_10068

  CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10068: f7020f7c61c7f49683d92ce208121a80b22206c2 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

f7020f7c61c7 drm/i915: Forcibly flush unwanted requests in drop-caches
592099574554 drm/i915: Early rejection of buffer allocations larger than RAM
537b66e108d7 drm/i915: Force the slow path after a user-write error
81b274ed9f78 drm/i915: Flag any possible writes for a GTT fault
4125e8b6522d drm/i915: Do a full device reset after being wedged

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10068/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH libdrm] Add basic CONTRIBUTING file

2018-09-03 Thread Daniel Vetter
I picked up a bunch of the pieces from wayland's version:

https://gitlab.freedesktop.org/wayland/wayland/blob/master/CONTRIBUTING.md

The weston one is fairly similar. Then I rather massively trimmed it
down since in reality libdrm is a bit a dumping ground with very few
real rules. The commit rights and CoC sections I've copied verbatim
from igt respectively drm-misc. Weston/Wayland only differ in their
pick of how many patches you need (10 instead of 5). I think for
libdrm this is supremely relevant, since most everyone will get their
commit rights by contributing already to the kernel or mesa and having
commit rights there already.

Anyway, I figured this is good to get the rules documented, even if
there's mostly not many rules.

Note: This references maintainers in a MAINTAINERS file, which needs
to be created first.

Note: With the gitlab migration the entire commit rights process is
still a bit up in the air. But gitlab commit rights and roles are
hierarchical, so we can do libdrm-only maintainer/commiter roles
("Owner" and "Developer" in gitlab-speak). This should avoid
conflating libdrm roles with mesa roles, useful for those pushing to
libdrm as primarily kernel contributors.

v2: Comments from Emil:
- Recommend subject prefix.
- Fix copypaste fumbles, this isn't igt/wayland ...

v3: Comments from Marek:
- libdrm moved to mesa, update the document. Atm the entire account
  request situation is entirely not clear for gitlab and mesa
  projects, so that's a bit up in the air. Also, should probably send
  an announcement to dri-devel@, which didn't happen.
- amd folks don't submit their patches to dri-devel, document that.
  Probably applies to other drivers too.

v4: Comments from Rob:
- Also include kernel/userspace in the commit counts criteria, due to
  libdrm's special role as a glue library.

v5: Summarize the irc discussion on gitlab roles in the commit message
a bit.

v6: Some grammer stuff from Eric E.

v7: Use --local in git config (Eric E.)

Cc: Dave Airlie 
Cc: Michel Dänzer 
Cc: Emil Velikov 
Cc: Marek Olšák 
Cc: Rob Clark 
Cc: Eric Engestrom 
Reviewed-by: Rob Clark  (v4)
Reviewed-by: Eric Engestrom  (v6)
Acked-by: Emil Velikov  (v6)
Acked-by: Marek Olšák  (v5)
References: 
https://gitlab.freedesktop.org/wayland/weston/blob/master/CONTRIBUTING.md
References: 
https://01.org/linuxgraphics/gfx-docs/maintainer-tools/drm-misc.html#commit-rights
References: https://cgit.freedesktop.org/drm/igt-gpu-tools/tree/CONTRIBUTING#n54
Signed-off-by: Daniel Vetter 
---
 CONTRIBUTING | 105 +++
 1 file changed, 105 insertions(+)
 create mode 100644 CONTRIBUTING

diff --git a/CONTRIBUTING b/CONTRIBUTING
new file mode 100644
index ..96f1e4fb0108
--- /dev/null
+++ b/CONTRIBUTING
@@ -0,0 +1,105 @@
+Contributing to libdrm
+==
+
+Submitting Patches
+--
+
+Patches should be sent to dri-de...@lists.freedesktop.org, using git
+send-email. For patches only touching driver specific code one of the driver
+mailing lists (like amd-...@lists.freedesktop.org) is also appropriate. See git
+documentation for help:
+
+http://git-scm.com/documentation
+
+Since dri-devel is a very busy mailing list please use --subject-prefix="PATCH
+libdrm" to make it easier to find libdrm patches. This is best done by running
+
+git config --local format.subjectprefix "PATCH libdrm"
+
+The first line of a commit message should contain a prefix indicating what part
+is affected by the patch followed by one sentence that describes the change. 
For
+examples:
+
+amdgpu: Use uint32_t i in amdgpu_find_bo_by_cpu_mapping
+
+The body of the commit message should describe what the patch changes and why,
+and also note any particular side effects. For a recommended reading on
+writing commit messages, see:
+
+http://who-t.blogspot.de/2009/12/on-commit-messages.html
+
+Your patches should also include a Signed-off-by line with your name and email
+address. If you're not the patch's original author, you should also gather
+S-o-b's by them (and/or whomever gave the patch to you.) The significance of
+this is that it certifies that you created the patch, that it was created under
+an appropriate open source license, or provided to you under those terms.  This
+lets us indicate a chain of responsibility for the copyright status of the 
code.
+For more details:
+
+https://developercertificate.org/
+
+We won't reject patches that lack S-o-b, but it is strongly recommended.
+
+Review and Merging
+--
+
+Patches should have at least one positive review (Reviewed-by: tag) or
+indication of approval (Acked-by: tag) before merging. For any code shared
+between drivers this is mandatory.
+
+Please note that kernel/userspace API header files have special rules, see
+include/drm/README.
+
+Coding style in the project loosely follows the CodingStyle of the linux 
kernel:
+

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for series starting with [1/5] drm/i915: Do a full device reset after being wedged

2018-09-03 Thread Patchwork
== Series Details ==

Series: series starting with [1/5] drm/i915: Do a full device reset after being 
wedged
URL   : https://patchwork.freedesktop.org/series/49061/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
4125e8b6522d drm/i915: Do a full device reset after being wedged
81b274ed9f78 drm/i915: Flag any possible writes for a GTT fault
537b66e108d7 drm/i915: Force the slow path after a user-write error
-:25: WARNING:LONG_LINE: line over 100 characters
#25: FILE: drivers/gpu/drm/i915/i915_gem_execbuffer.c:1489:
+   if (unlikely(__put_user(offset, 
[r-stack].presumed_offset))) {

-:25: CHECK:SPACING: spaces preferred around that '-' (ctx:VxV)
#25: FILE: drivers/gpu/drm/i915/i915_gem_execbuffer.c:1489:
+   if (unlikely(__put_user(offset, 
[r-stack].presumed_offset))) {
  ^

total: 0 errors, 1 warnings, 1 checks, 33 lines checked
592099574554 drm/i915: Early rejection of buffer allocations larger than RAM
f7020f7c61c7 drm/i915: Forcibly flush unwanted requests in drop-caches

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 2/5] drm/i915: Flag any possible writes for a GTT fault

2018-09-03 Thread Chris Wilson
We do not explicitly mark the PTE for the user's GTT mmap as being
wrprotect, so we don't get a refault when we would need to change a
read-only mmapping into read-write. As such, we must presume that if the
vma has PROT_WRITE it may be written to, although this is supposed to be
indicated by set-domain there are cases (e.g. after swap) where
userspace may not be aware of the implicit domain change.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_gem.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 7b7bbfe59697..625e07c56fe2 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2018,7 +2018,7 @@ vm_fault_t i915_gem_fault(struct vm_fault *vmf)
struct drm_device *dev = obj->base.dev;
struct drm_i915_private *dev_priv = to_i915(dev);
struct i915_ggtt *ggtt = _priv->ggtt;
-   bool write = !!(vmf->flags & FAULT_FLAG_WRITE);
+   bool write = area->vm_flags & VM_WRITE;
struct i915_vma *vma;
pgoff_t page_offset;
int ret;
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 4/5] drm/i915: Early rejection of buffer allocations larger than RAM

2018-09-03 Thread Chris Wilson
We currently try to pin and allocate the whole buffer at a time. If that
object is larger than RAM, we will try to pin the whole of physical
memory, force the machine into oom, and then still fail the allocation.

If the request is obviously too large, error out early. We opt to do
this in the backend to make it easy to use alternate paths that do not
require the entire object pinned, or may easily handle proxy objects
that are larger than physical memory.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_gem.c | 25 +++--
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
index 625e07c56fe2..89834ce19acd 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -2533,13 +2533,21 @@ static int i915_gem_object_get_pages_gtt(struct 
drm_i915_gem_object *obj)
gfp_t noreclaim;
int ret;
 
-   /* Assert that the object is not currently in any GPU domain. As it
+   /*
+* Assert that the object is not currently in any GPU domain. As it
 * wasn't in the GTT, there shouldn't be any way it could have been in
 * a GPU cache
 */
GEM_BUG_ON(obj->read_domains & I915_GEM_GPU_DOMAINS);
GEM_BUG_ON(obj->write_domain & I915_GEM_GPU_DOMAINS);
 
+   /*
+* If there's no chance of allocating enough pages for the whole
+* object, bail early.
+*/
+   if (page_count > totalram_pages)
+   return -ENOMEM;
+
st = kmalloc(sizeof(*st), GFP_KERNEL);
if (st == NULL)
return -ENOMEM;
@@ -2550,7 +2558,8 @@ static int i915_gem_object_get_pages_gtt(struct 
drm_i915_gem_object *obj)
return -ENOMEM;
}
 
-   /* Get the list of pages out of our struct file.  They'll be pinned
+   /*
+* Get the list of pages out of our struct file.  They'll be pinned
 * at this point until we release them.
 *
 * Fail silently without starting the shrinker
@@ -2582,7 +2591,8 @@ static int i915_gem_object_get_pages_gtt(struct 
drm_i915_gem_object *obj)
i915_gem_shrink(dev_priv, 2 * page_count, NULL, *s++);
cond_resched();
 
-   /* We've tried hard to allocate the memory by reaping
+   /*
+* We've tried hard to allocate the memory by reaping
 * our own buffer, now let the real VM do its job and
 * go down in flames if truly OOM.
 *
@@ -2594,7 +2604,8 @@ static int i915_gem_object_get_pages_gtt(struct 
drm_i915_gem_object *obj)
/* reclaim and warn, but no oom */
gfp = mapping_gfp_mask(mapping);
 
-   /* Our bo are always dirty and so we require
+   /*
+* Our bo are always dirty and so we require
 * kswapd to reclaim our pages (direct reclaim
 * does not effectively begin pageout of our
 * buffers on its own). However, direct reclaim
@@ -2638,7 +2649,8 @@ static int i915_gem_object_get_pages_gtt(struct 
drm_i915_gem_object *obj)
 
ret = i915_gem_gtt_prepare_pages(obj, st);
if (ret) {
-   /* DMA remapping failed? One possible cause is that
+   /*
+* DMA remapping failed? One possible cause is that
 * it could not reserve enough large entries, asking
 * for PAGE_SIZE chunks instead may be helpful.
 */
@@ -2672,7 +2684,8 @@ static int i915_gem_object_get_pages_gtt(struct 
drm_i915_gem_object *obj)
sg_free_table(st);
kfree(st);
 
-   /* shmemfs first checks if there is enough memory to allocate the page
+   /*
+* shmemfs first checks if there is enough memory to allocate the page
 * and reports ENOSPC should there be insufficient, along with the usual
 * ENOMEM for a genuine allocation failure.
 *
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 3/5] drm/i915: Force the slow path after a user-write error

2018-09-03 Thread Chris Wilson
If we fail to write the user relocation back when it is changed, force
ourselves to take the slow relocation path where we can handle faults in
the write path. There is still an element of dubiousness as having
patched up the batch to use the correct offset, it no longer matches the
presumed_offset in the relocation, so a second pass may miss any changes
in layout.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_gem_execbuffer.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c 
b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index a926d7d47183..931be2651f01 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -1486,8 +1486,10 @@ static int eb_relocate_vma(struct i915_execbuffer *eb, 
struct i915_vma *vma)
 * can read from this userspace address.
 */
offset = gen8_canonical_addr(offset & ~UPDATE);
-   __put_user(offset,
-  [r-stack].presumed_offset);
+   if (unlikely(__put_user(offset, 
[r-stack].presumed_offset))) {
+   remain = -EFAULT;
+   goto out;
+   }
}
} while (r++, --count);
urelocs += ARRAY_SIZE(stack);
@@ -1572,7 +1574,6 @@ static int eb_copy_relocations(const struct 
i915_execbuffer *eb)
 
relocs = kvmalloc_array(size, 1, GFP_KERNEL);
if (!relocs) {
-   kvfree(relocs);
err = -ENOMEM;
goto err;
}
@@ -1586,6 +1587,7 @@ static int eb_copy_relocations(const struct 
i915_execbuffer *eb)
if (__copy_from_user((char *)relocs + copied,
 (char __user *)urelocs + copied,
 len)) {
+end_user:
kvfree(relocs);
err = -EFAULT;
goto err;
@@ -1609,7 +1611,6 @@ static int eb_copy_relocations(const struct 
i915_execbuffer *eb)
unsafe_put_user(-1,
[copied].presumed_offset,
end_user);
-end_user:
user_access_end();
 
eb->exec[i].relocs_ptr = (uintptr_t)relocs;
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 1/5] drm/i915: Do a full device reset after being wedged

2018-09-03 Thread Chris Wilson
We only call unset_wedged on the global reset path (since it's a global
operation), so if we are terminally wedged and wish to reset, take the
full device reset path rather than the quicker individual engine resets.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_irq.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
index e31093ce871c..10f28a2ee2e6 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -3309,7 +3309,8 @@ void i915_handle_error(struct drm_i915_private *dev_priv,
 * Try engine reset when available. We fall back to full reset if
 * single reset fails.
 */
-   if (intel_has_reset_engine(dev_priv)) {
+   if (intel_has_reset_engine(dev_priv) &&
+   !i915_terminally_wedged(_priv->gpu_error)) {
for_each_engine_masked(engine, dev_priv, engine_mask, tmp) {
BUILD_BUG_ON(I915_RESET_MODESET >= I915_RESET_ENGINE);
if (test_and_set_bit(I915_RESET_ENGINE + engine->id,
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH 5/5] drm/i915: Forcibly flush unwanted requests in drop-caches

2018-09-03 Thread Chris Wilson
Add a mode to debugfs/drop-caches to flush unwanted requests off the GPU
(by wedging the device and resetting). This is very useful if a test
terminated leaving a long queue of hanging batches that would ordinarily
require a round trip through hangcheck for each.

It reduces the inter-test operation to just a write into drop-caches to
reset driver/GPU state between tests.

Signed-off-by: Chris Wilson 
---
 drivers/gpu/drm/i915/i915_debugfs.c | 52 -
 1 file changed, 36 insertions(+), 16 deletions(-)

diff --git a/drivers/gpu/drm/i915/i915_debugfs.c 
b/drivers/gpu/drm/i915/i915_debugfs.c
index a5265c236a33..4ad0e2ed8610 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -4131,13 +4131,17 @@ DEFINE_SIMPLE_ATTRIBUTE(i915_ring_test_irq_fops,
 #define DROP_FREED BIT(4)
 #define DROP_SHRINK_ALLBIT(5)
 #define DROP_IDLE  BIT(6)
+#define DROP_RESET_ACTIVE  BIT(7)
+#define DROP_RESET_SEQNO   BIT(8)
 #define DROP_ALL (DROP_UNBOUND | \
  DROP_BOUND| \
  DROP_RETIRE   | \
  DROP_ACTIVE   | \
  DROP_FREED| \
  DROP_SHRINK_ALL |\
- DROP_IDLE)
+ DROP_IDLE | \
+ DROP_RESET_ACTIVE | \
+ DROP_RESET_SEQNO)
 static int
 i915_drop_caches_get(void *data, u64 *val)
 {
@@ -4149,53 +4153,69 @@ i915_drop_caches_get(void *data, u64 *val)
 static int
 i915_drop_caches_set(void *data, u64 val)
 {
-   struct drm_i915_private *dev_priv = data;
-   struct drm_device *dev = _priv->drm;
+   struct drm_i915_private *i915 = data;
int ret = 0;
 
DRM_DEBUG("Dropping caches: 0x%08llx [0x%08llx]\n",
  val, val & DROP_ALL);
 
+   if (val & DROP_RESET_ACTIVE && !intel_engines_are_idle(i915))
+   i915_gem_set_wedged(i915);
+
/* No need to check and wait for gpu resets, only libdrm auto-restarts
 * on ioctls on -EAGAIN. */
-   if (val & (DROP_ACTIVE | DROP_RETIRE)) {
-   ret = mutex_lock_interruptible(>struct_mutex);
+   if (val & (DROP_ACTIVE | DROP_RETIRE | DROP_RESET_SEQNO)) {
+   ret = mutex_lock_interruptible(>drm.struct_mutex);
if (ret)
return ret;
 
if (val & DROP_ACTIVE)
-   ret = i915_gem_wait_for_idle(dev_priv,
+   ret = i915_gem_wait_for_idle(i915,
 I915_WAIT_INTERRUPTIBLE |
 I915_WAIT_LOCKED,
 MAX_SCHEDULE_TIMEOUT);
 
+   if (val & DROP_RESET_SEQNO) {
+   intel_runtime_pm_get(i915);
+   ret = i915_gem_set_global_seqno(>drm, 1);
+   intel_runtime_pm_put(i915);
+   }
+
if (val & DROP_RETIRE)
-   i915_retire_requests(dev_priv);
+   i915_retire_requests(i915);
 
-   mutex_unlock(>struct_mutex);
+   mutex_unlock(>drm.struct_mutex);
+   }
+
+   if (val & DROP_RESET_ACTIVE &&
+   i915_terminally_wedged(>gpu_error)) {
+   i915_handle_error(i915, ALL_ENGINES, 0, NULL);
+   wait_on_bit(>gpu_error.flags,
+   I915_RESET_HANDOFF,
+   TASK_UNINTERRUPTIBLE);
}
 
fs_reclaim_acquire(GFP_KERNEL);
if (val & DROP_BOUND)
-   i915_gem_shrink(dev_priv, LONG_MAX, NULL, I915_SHRINK_BOUND);
+   i915_gem_shrink(i915, LONG_MAX, NULL, I915_SHRINK_BOUND);
 
if (val & DROP_UNBOUND)
-   i915_gem_shrink(dev_priv, LONG_MAX, NULL, I915_SHRINK_UNBOUND);
+   i915_gem_shrink(i915, LONG_MAX, NULL, I915_SHRINK_UNBOUND);
 
if (val & DROP_SHRINK_ALL)
-   i915_gem_shrink_all(dev_priv);
+   i915_gem_shrink_all(i915);
fs_reclaim_release(GFP_KERNEL);
 
if (val & DROP_IDLE) {
do {
-   if (READ_ONCE(dev_priv->gt.active_requests))
-   flush_delayed_work(_priv->gt.retire_work);
-   drain_delayed_work(_priv->gt.idle_work);
-   } while (READ_ONCE(dev_priv->gt.awake));
+   if (READ_ONCE(i915->gt.active_requests))
+   flush_delayed_work(>gt.retire_work);
+   drain_delayed_work(>gt.idle_work);
+   } while (READ_ONCE(i915->gt.awake));
}
 
if (val & DROP_FREED)
-   i915_gem_drain_freed_objects(dev_priv);
+   i915_gem_drain_freed_objects(i915);
 
return ret;
 }
-- 
2.19.0.rc1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/intel_csr.c Added ICL Stepping info.

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915/intel_csr.c Added ICL Stepping info.
URL   : https://patchwork.freedesktop.org/series/49058/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4753 -> Patchwork_10067 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49058/revisions/1/mbox/

== Known issues ==

  Here are the changes found in Patchwork_10067 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@read-crc-pipe-a:
  {fi-byt-clapper}:   PASS -> FAIL (fdo#107362)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  {fi-byt-clapper}:   PASS -> FAIL (fdo#107362, fdo#103191)

{igt@pm_rpm@module-reload}:
  fi-glk-dsi: NOTRUN -> WARN (fdo#107708, fdo#107602)
  fi-cnl-psr: PASS -> WARN (fdo#107708, fdo#107602)


 Possible fixes 

igt@gem_exec_suspend@basic-s4-devices:
  fi-blb-e6850:   INCOMPLETE (fdo#107718) -> PASS

igt@kms_chamelium@hdmi-hpd-fast:
  fi-kbl-7500u:   FAIL (fdo#102672, fdo#103841) -> SKIP

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  {fi-byt-clapper}:   FAIL (fdo#107362, fdo#103191) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS

igt@prime_vgem@basic-fence-flip:
  fi-ilk-650: FAIL (fdo#104008) -> PASS


  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602
  fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708
  fdo#107718 https://bugs.freedesktop.org/show_bug.cgi?id=107718


== Participating hosts (49 -> 47) ==

  Additional (3): fi-cfl-8109u fi-glk-dsi fi-skl-6700hq 
  Missing(5): fi-hsw-peppy fi-ilk-m540 fi-byt-squawks fi-bsw-cyan 
fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4753 -> Patchwork_10067

  CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10067: e524a457fd75a1429b392fb289e4e1a2167ff6b1 @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

e524a457fd75 drm/i915/intel_csr.c Added ICL Stepping info.

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10067/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for drm/i915/intel_csr.c Added ICL Stepping info.

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915/intel_csr.c Added ICL Stepping info.
URL   : https://patchwork.freedesktop.org/series/49058/
State : warning

== Summary ==

$ dim checkpatch origin/drm-tip
e524a457fd75 drm/i915/intel_csr.c Added ICL Stepping info.
-:20: CHECK:LINE_SPACING: Please use a blank line after 
function/struct/union/enum declarations
#20: FILE: drivers/gpu/drm/i915/intel_csr.c:188:
 };
+static const struct stepping_info icl_stepping_info[] = {

total: 0 errors, 0 warnings, 1 checks, 20 lines checked

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] [PATCH] [intel-gfx] drm/i915/intel_csr.c Added ICL Stepping info.

2018-09-03 Thread Jyoti Yadav
As DMC Package contain DMC FW for multiple steppings including default
stepping. This patch will help to load FW for that particular stepping,
if FW for that stepping is available, instead of loading default FW.

Signed-off-by: Jyoti Yadav 
---
 drivers/gpu/drm/i915/intel_csr.c | 8 
 1 file changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index 1ec4f09..f6352ab 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -183,6 +183,11 @@ struct stepping_info {
{'A', '0'}, {'A', '1'}, {'A', '2'},
{'B', '0'}, {'B', '1'}, {'B', '2'}
 };
+static const struct stepping_info icl_stepping_info[] = {
+   {'A', '0'}, {'A', '1'}, {'A', '2'},
+   {'B', '0'}, {'B', '2'},
+   {'C', '0'}
+};
 
 static const struct stepping_info no_stepping_info = { '*', '*' };
 
@@ -198,6 +203,9 @@ struct stepping_info {
} else if (IS_BROXTON(dev_priv)) {
size = ARRAY_SIZE(bxt_stepping_info);
si = bxt_stepping_info;
+   } else if (IS_ICELAKE(dev_priv)) {
+   size = ARRAY_SIZE(icl_stepping_info);
+   si = icl_stepping_info;
} else {
size = 0;
si = NULL;
-- 
1.9.1

___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Kill debugfs's i915_dpcd

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915: Kill debugfs's i915_dpcd
URL   : https://patchwork.freedesktop.org/series/49055/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10066_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_10066_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@kms_cursor_legacy@cursor-vs-flip-toggle:
  shard-hsw:  PASS -> FAIL (fdo#103355)

igt@kms_setmode@basic:
  shard-apl:  PASS -> FAIL (fdo#99912)


 Possible fixes 

igt@kms_setmode@basic:
  shard-kbl:  FAIL (fdo#99912) -> PASS

igt@kms_vblank@pipe-b-ts-continuation-suspend:
  shard-apl:  INCOMPLETE (fdo#103927) -> PASS

igt@perf@polling:
  shard-hsw:  FAIL (fdo#102252) -> PASS


  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103355 https://bugs.freedesktop.org/show_bug.cgi?id=103355
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4753 -> Patchwork_10066

  CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10066: 79975fae5a1293a653417dcdae5112dd8899f5ec @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10066/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.IGT: success for drm/i915: Protect against wrong reg offset and warn.

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915: Protect against wrong reg offset and warn.
URL   : https://patchwork.freedesktop.org/series/49054/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4753_full -> Patchwork_10065_full =

== Summary - SUCCESS ==

  No regressions found.

  

== Known issues ==

  Here are the changes found in Patchwork_10065_full that come from known 
issues:

  === IGT changes ===

 Issues hit 

igt@kms_setmode@basic:
  shard-apl:  PASS -> FAIL (fdo#99912)


 Possible fixes 

igt@kms_vblank@pipe-b-ts-continuation-suspend:
  shard-apl:  INCOMPLETE (fdo#103927) -> PASS

igt@perf@polling:
  shard-hsw:  FAIL (fdo#102252) -> PASS


  fdo#102252 https://bugs.freedesktop.org/show_bug.cgi?id=102252
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#99912 https://bugs.freedesktop.org/show_bug.cgi?id=99912


== Participating hosts (5 -> 5) ==

  No changes in participating hosts


== Build changes ==

* Linux: CI_DRM_4753 -> Patchwork_10065

  CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10065: 1622c0e1a6174b89f1a350b0e939497a7e92ab81 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ 
git://anongit.freedesktop.org/piglit

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10065/shards.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx


[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915: Kill debugfs's i915_dpcd

2018-09-03 Thread Patchwork
== Series Details ==

Series: drm/i915: Kill debugfs's i915_dpcd
URL   : https://patchwork.freedesktop.org/series/49055/
State : success

== Summary ==

= CI Bug Log - changes from CI_DRM_4753 -> Patchwork_10066 =

== Summary - SUCCESS ==

  No regressions found.

  External URL: 
https://patchwork.freedesktop.org/api/1.0/series/49055/revisions/1/mbox/

== Possible new issues ==

  Here are the unknown changes that may have been introduced in Patchwork_10066:

  === IGT changes ===

 Possible regressions 

{igt@pm_rpm@module-reload}:
  fi-cfl-guc: PASS -> FAIL


== Known issues ==

  Here are the changes found in Patchwork_10066 that come from known issues:

  === IGT changes ===

 Issues hit 

igt@kms_pipe_crc_basic@read-crc-pipe-a:
  {fi-byt-clapper}:   PASS -> FAIL (fdo#107362)

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-a:
  {fi-byt-clapper}:   PASS -> FAIL (fdo#107362, fdo#103191)

{igt@pm_rpm@module-reload}:
  fi-cnl-psr: PASS -> WARN (fdo#107602, fdo#107708)


 Possible fixes 

igt@kms_chamelium@hdmi-hpd-fast:
  fi-kbl-7500u:   FAIL (fdo#103841, fdo#102672) -> SKIP

igt@kms_frontbuffer_tracking@basic:
  fi-hsw-peppy:   DMESG-WARN (fdo#102614) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-b:
  {fi-byt-clapper}:   FAIL (fdo#107362, fdo#103191) -> PASS

igt@kms_pipe_crc_basic@suspend-read-crc-pipe-c:
  fi-bxt-dsi: INCOMPLETE (fdo#103927) -> PASS

{igt@kms_psr@primary_page_flip}:
  fi-cnl-psr: FAIL (fdo#107336) -> PASS

igt@prime_vgem@basic-fence-flip:
  fi-ilk-650: FAIL (fdo#104008) -> PASS


  {name}: This element is suppressed. This means it is ignored when computing
  the status of the difference (SUCCESS, WARNING, or FAILURE).

  fdo#102614 https://bugs.freedesktop.org/show_bug.cgi?id=102614
  fdo#102672 https://bugs.freedesktop.org/show_bug.cgi?id=102672
  fdo#103191 https://bugs.freedesktop.org/show_bug.cgi?id=103191
  fdo#103841 https://bugs.freedesktop.org/show_bug.cgi?id=103841
  fdo#103927 https://bugs.freedesktop.org/show_bug.cgi?id=103927
  fdo#104008 https://bugs.freedesktop.org/show_bug.cgi?id=104008
  fdo#107336 https://bugs.freedesktop.org/show_bug.cgi?id=107336
  fdo#107362 https://bugs.freedesktop.org/show_bug.cgi?id=107362
  fdo#107602 https://bugs.freedesktop.org/show_bug.cgi?id=107602
  fdo#107708 https://bugs.freedesktop.org/show_bug.cgi?id=107708


== Participating hosts (49 -> 45) ==

  Additional (1): fi-skl-6700hq 
  Missing(5): fi-kbl-7560u fi-byt-squawks fi-bsw-cyan fi-ilk-m540 
fi-hsw-4200u 


== Build changes ==

* Linux: CI_DRM_4753 -> Patchwork_10066

  CI_DRM_4753: 0892613a442a70a96cba33b12bb344033b557879 @ 
git://anongit.freedesktop.org/gfx-ci/linux
  IGT_4619: 9e5fa9112546e5767d57237db8eace7c815b1996 @ 
git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
  Patchwork_10066: 79975fae5a1293a653417dcdae5112dd8899f5ec @ 
git://anongit.freedesktop.org/gfx-ci/linux


== Linux commits ==

79975fae5a12 drm/i915: Kill debugfs's i915_dpcd

== Logs ==

For more details see: 
https://intel-gfx-ci.01.org/tree/drm-tip/Patchwork_10066/issues.html
___
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx