[Intel-gfx] [PATCH] drm/i915/perf: allow holding preemption on filtered ctx
kbuild test robot
lkp at intel.com
Wed Jun 6 18:57:15 UTC 2018
Hi Lionel,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on drm-intel/for-linux-next]
[also build test ERROR on v4.17 next-20180605]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Lionel-Landwerlin/drm-i915-perf-allow-holding-preemption-on-filtered-ctx/20180607-005605
base: git://anongit.freedesktop.org/drm-intel for-linux-next
config: x86_64-randconfig-x011-201822 (attached as .config)
compiler: gcc-7 (Debian 7.3.0-16) 7.3.0
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
All errors (new ones prefixed by >>):
drivers/gpu//drm/i915/intel_lrc.c: In function 'gen8_emit_bb_start':
>> drivers/gpu//drm/i915/intel_lrc.c:1981:6: error: 'struct i915_request' has no member named 'gem_context'
(rq->gem_context->perf_disabled_preemption ?
^~
vim +1981 drivers/gpu//drm/i915/intel_lrc.c
1934
1935 static int gen8_emit_bb_start(struct i915_request *rq,
1936 u64 offset, u32 len,
1937 const unsigned int flags)
1938 {
1939 u32 *cs;
1940 int ret;
1941
1942 /* Don't rely in hw updating PDPs, specially in lite-restore.
1943 * Ideally, we should set Force PD Restore in ctx descriptor,
1944 * but we can't. Force Restore would be a second option, but
1945 * it is unsafe in case of lite-restore (because the ctx is
1946 * not idle). PML4 is allocated during ppgtt init so this is
1947 * not needed in 48-bit.*/
1948 if (rq->ctx->ppgtt &&
1949 (intel_engine_flag(rq->engine) & rq->ctx->ppgtt->pd_dirty_rings) &&
1950 !i915_vm_is_48bit(&rq->ctx->ppgtt->base) &&
1951 !intel_vgpu_active(rq->i915)) {
1952 ret = intel_logical_ring_emit_pdps(rq);
1953 if (ret)
1954 return ret;
1955
1956 rq->ctx->ppgtt->pd_dirty_rings &= ~intel_engine_flag(rq->engine);
1957 }
1958
1959 cs = intel_ring_begin(rq, 6);
1960 if (IS_ERR(cs))
1961 return PTR_ERR(cs);
1962
1963 /*
1964 * WaDisableCtxRestoreArbitration:bdw,chv
1965 *
1966 * We don't need to perform MI_ARB_ENABLE as often as we do (in
1967 * particular all the gen that do not need the w/a at all!), if we
1968 * took care to make sure that on every switch into this context
1969 * (both ordinary and for preemption) that arbitrartion was enabled
1970 * we would be fine. However, there doesn't seem to be a downside to
1971 * being paranoid and making sure it is set before each batch and
1972 * every context-switch.
1973 *
1974 * Note that if we fail to enable arbitration before the request
1975 * is complete, then we do not see the context-switch interrupt and
1976 * the engine hangs (with RING_HEAD == RING_TAIL).
1977 *
1978 * That satisfies both the GPGPU w/a and our heavy-handed paranoia.
1979 */
1980 *cs++ = MI_ARB_ON_OFF |
> 1981 (rq->gem_context->perf_disabled_preemption ?
1982 MI_ARB_DISABLE : MI_ARB_ENABLE);
1983
1984 /* FIXME(BDW): Address space and security selectors. */
1985 *cs++ = MI_BATCH_BUFFER_START_GEN8 |
1986 (flags & I915_DISPATCH_SECURE ? 0 : BIT(8)) |
1987 (flags & I915_DISPATCH_RS ? MI_BATCH_RESOURCE_STREAMER : 0);
1988 *cs++ = lower_32_bits(offset);
1989 *cs++ = upper_32_bits(offset);
1990
1991 *cs++ = MI_ARB_ON_OFF | MI_ARB_DISABLE;
1992 *cs++ = MI_NOOP;
1993 intel_ring_advance(rq, cs);
1994
1995 return 0;
1996 }
1997
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 34021 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/intel-gfx/attachments/20180607/956d03e0/attachment-0001.gz>
More information about the Intel-gfx
mailing list