Re: [Intel-gfx] [PATCH RFC PKS/PMEM 22/58] fs/f2fs: Utilize new kmap_thread()

2020-10-12 Thread Ira Weiny
On Fri, Oct 09, 2020 at 06:30:36PM -0700, Eric Biggers wrote: > On Sat, Oct 10, 2020 at 01:39:54AM +0100, Matthew Wilcox wrote: > > On Fri, Oct 09, 2020 at 02:34:34PM -0700, Eric Biggers wrote: > > > On Fri, Oct 09, 2020 at 12:49:57PM -0700, ira.we...@intel.com wrote: > > > > The kmap() calls in

[Intel-gfx] [PATCH i-g-t v2] tests/core_hotunplug: Restore i915 debugfs health check

2020-10-12 Thread Janusz Krzysztofik
Removal of igt_fork_hang_detector() from local_i915_healthcheck() by commit 1fbd127bd4e1 ("core_hotplug: Teach the healthcheck how to check execution status") resulted in unintentional removal of an important though implicit test feature of detecting, reporting as failures and recovering from

Re: [Intel-gfx] [PATCH RFC PKS/PMEM 48/58] drivers/md: Utilize new kmap_thread()

2020-10-12 Thread Coly Li
On 2020/10/12 13:28, Ira Weiny wrote: > On Sat, Oct 10, 2020 at 10:20:34AM +0800, Coly Li wrote: >> On 2020/10/10 03:50, ira.we...@intel.com wrote: >>> From: Ira Weiny >>> >>> These kmap() calls are localized to a single thread. To avoid the over >>> head of global PKRS updates use the new

Re: [Intel-gfx] [PATCH] drm/ingenic: Fix bad revert

2020-10-12 Thread Daniel Vetter
On Mon, Oct 12, 2020 at 12:25:09PM +0200, Paul Cercueil wrote: > Fix a badly reverted commit. The revert commit was cherry-picked from > drm-misc-next to drm-misc-next-fixes, and in the process some unrelated > code was added. > > Fixes: a3fb64c00d44 "Revert "gpu/drm: ingenic: Add option to mmap

[Intel-gfx] [PATCH] drm/i915/psr: Configure and Program IO buffer Wake and Fast Wake

2020-10-12 Thread Gwan-gyeong Mun
As per b.spec 49274, the IO buffer Wake lines and Fast Wake lines can be calculated based on the following formula. IO buffer wake lines = ROUNDUP(50us / total line time in us) Fast wake lines = ROUNDUP(32us / total line time in us) For both fields limit the minimum to 7 lines and maximum to

Re: [Intel-gfx] [PATCH] drm/vgem: Replace vgem_object_funcs with the common drm shmem helper

2020-10-12 Thread Daniel Vetter
On Mon, Oct 12, 2020 at 12:49 PM Chris Wilson wrote: > Quoting Daniel Vetter (2020-10-09 17:16:06) > > On Fri, Oct 9, 2020 at 12:21 PM Chris Wilson > > wrote: > > > > > > vgem is a minimalistic driver that provides shmemfs objects to > > > userspace that may then be used as an in-memory surface

Re: [Intel-gfx] [PATCH] drm/vgem: Replace vgem_object_funcs with the common drm shmem helper

2020-10-12 Thread Daniel Vetter
On Mon, Oct 12, 2020 at 03:01:09PM +0100, Chris Wilson wrote: > Quoting Daniel Vetter (2020-10-12 14:55:07) > > On Mon, Oct 12, 2020 at 12:49 PM Chris Wilson > > wrote: > > > Quoting Daniel Vetter (2020-10-09 17:16:06) > > > > On Fri, Oct 9, 2020 at 12:21 PM Chris Wilson > > > > wrote: > > > >

Re: [Intel-gfx] [PATCH 10/61] drm/i915: Disable userptr pread/pwrite support.

2020-10-12 Thread Maarten Lankhorst
Op 02-10-2020 om 22:14 schreef Ruhl, Michael J: >> -Original Message- >> From: Intel-gfx On Behalf Of >> Maarten Lankhorst >> Sent: Friday, October 2, 2020 8:59 AM >> To: intel-gfx@lists.freedesktop.org >> Subject: [Intel-gfx] [PATCH 10/61] drm/i915: Disable userptr pread/pwrite >>

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915/psr: Configure and Program IO buffer Wake and Fast Wake

2020-10-12 Thread Patchwork
== Series Details == Series: drm/i915/psr: Configure and Program IO buffer Wake and Fast Wake URL : https://patchwork.freedesktop.org/series/82581/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9130 -> Patchwork_18674

[Intel-gfx] [PATCH v3] drm/i915/display: Add max plane width for NV12 AUX plane for Gen10+ platforms

2020-10-12 Thread Aditya Swarup
Gen 10+ and Gen11+ platforms specify different max plane width for planar formats. Add max plane width for GLK and ICL based on BSpec: 7666 Fixes: 372b9ffb5799 ("drm/i915: Fix skl+ max plane width") Cc: Jani Nikula Cc: Matt Roper Cc: Ville Syrjälä Cc: Imre Deak Signed-off-by: Aditya Swarup

Re: [Intel-gfx] [PATCH RFC PKS/PMEM 51/58] kernel: Utilize new kmap_thread()

2020-10-12 Thread Eric W. Biederman
ira.we...@intel.com writes: > From: Ira Weiny > > This kmap() call is localized to a single thread. To avoid the over > head of global PKRS updates use the new kmap_thread() call. Acked-by: "Eric W. Biederman" > > Cc: Eric Biederman > Signed-off-by: Ira Weiny > --- > kernel/kexec_core.c |

Re: [Intel-gfx] linux-next: build failure after merge of the drm-misc tree

2020-10-12 Thread Paul Cercueil
Hi Stephen, Le lun. 12 oct. 2020 à 15:24, Stephen Rothwell a écrit : Hi all, On Thu, 8 Oct 2020 15:42:02 +1100 Stephen Rothwell wrote: On Thu, 8 Oct 2020 14:09:03 +1100 Stephen Rothwell wrote: > > After merging the drm-misc tree, today's linux-next build (x86_64 > allmodconfig)

Re: [Intel-gfx] [PATCH RFC PKS/PMEM 57/58] nvdimm/pmem: Stray access protection for pmem->virt_addr

2020-10-12 Thread John Hubbard
On 10/9/20 12:50 PM, ira.we...@intel.com wrote: From: Ira Weiny The pmem driver uses a cached virtual address to access its memory directly. Because the nvdimm driver is well aware of the special protections it has mapped memory with, we call dev_access_[en|dis]able() around the direct

Re: [Intel-gfx] [PATCH RFC PKS/PMEM 26/58] fs/zonefs: Utilize new kmap_thread()

2020-10-12 Thread Damien Le Moal
On 2020/10/10 4:52, ira.we...@intel.com wrote: > From: Ira Weiny > > The kmap() calls in this FS are localized to a single thread. To avoid > the over head of global PKRS updates use the new kmap_thread() call. > > Cc: Damien Le Moal > Cc: Naohiro Aota > Signed-off-by: Ira Weiny > --- >

Re: [Intel-gfx] [PATCH RFC PKS/PMEM 10/58] drivers/rdma: Utilize new kmap_thread()

2020-10-12 Thread Bernard Metzler
-ira.we...@intel.com wrote: - >To: "Andrew Morton" , "Thomas Gleixner" >, "Ingo Molnar" , "Borislav >Petkov" , "Andy Lutomirski" , "Peter >Zijlstra" >From: ira.we...@intel.com >Date: 10/09/2020 09:52PM >Cc: "Ira Weiny" , "Mike Marciniszyn" >, "Dennis Dalessandro" >, "Doug Ledford" ,

[Intel-gfx] [PATCH] drm/ingenic: Fix bad revert

2020-10-12 Thread Paul Cercueil
Fix a badly reverted commit. The revert commit was cherry-picked from drm-misc-next to drm-misc-next-fixes, and in the process some unrelated code was added. Fixes: a3fb64c00d44 "Revert "gpu/drm: ingenic: Add option to mmap GEM buffers cached"" Signed-off-by: Paul Cercueil ---

[Intel-gfx] [RFC] drm/i915/gt: reduce context clear batch size to avoid gpu hang (rev2)

2020-10-12 Thread rwright
The first version of this RFC patch caused a build error when - to my suprise - it was automatically built. I had presumed an RFC message would be for comment only, and so I had pasted part of the patch, thereby breaking whitespace. In this version, I have directly included the patch without

Re: [Intel-gfx] [PATCH RFC PKS/PMEM 22/58] fs/f2fs: Utilize new kmap_thread()

2020-10-12 Thread Eric Biggers
On Sat, Oct 10, 2020 at 01:39:54AM +0100, Matthew Wilcox wrote: > On Fri, Oct 09, 2020 at 02:34:34PM -0700, Eric Biggers wrote: > > On Fri, Oct 09, 2020 at 12:49:57PM -0700, ira.we...@intel.com wrote: > > > The kmap() calls in this FS are localized to a single thread. To avoid > > > the over head

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/i915/display: Add max plane width for NV12 AUX plane for Gen10+ platforms (rev3)

2020-10-12 Thread Patchwork
== Series Details == Series: drm/i915/display: Add max plane width for NV12 AUX plane for Gen10+ platforms (rev3) URL : https://patchwork.freedesktop.org/series/81609/ State : success == Summary == CI Bug Log - changes from CI_DRM_9130 -> Patchwork_18675

Re: [Intel-gfx] ✓ Fi.CI.IGT: success for rm/i915: Add support for LTTPR non-transparent link training mode (rev2)

2020-10-12 Thread Imre Deak
On Thu, Oct 08, 2020 at 08:02:09PM +, Patchwork wrote: > == Series Details == > > Series: rm/i915: Add support for LTTPR non-transparent link training mode > (rev2) > URL : https://patchwork.freedesktop.org/series/82449/ > State : success Thanks for the reviews, patchset is pushed to

Re: [Intel-gfx] [PATCH 1/2] drm: Ask whether drm_gem_get_pages() should clear the CPU cache

2020-10-12 Thread Daniel Vetter
On Mon, Oct 12, 2020 at 11:51:30AM +0100, Chris Wilson wrote: > On some processors (such as arch/x86), accessing a page via a WC PAT is > bypassed if the page is physically tagged in the CPU cache, and the > access is serviced by the cache instead -- which leads to incoherency > should the

[Intel-gfx] [PATCH v2] drm/i915: DMA map DSM [stolen memory]

2020-10-12 Thread Chris Wilson
Pass the physical address of our BIOS reserved stolen memory to the dma mapper so we convert it into a proper dma_addr_t and track access with the iommu. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 29 +- drivers/gpu/drm/i915/i915_drv.h

[Intel-gfx] [PATCH v2 47/61] drm/i915/selftests: Prepare object tests for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Convert a single pin_pages call to use the unlocked version. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/i915_gem_object.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_object.c

[Intel-gfx] [PATCH v2 31/61] drm/i915: Prepare for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
From: Thomas Hellström Stolen objects need to lock, and we may call put_pages when refcount drops to 0, ensure all calls are handled correctly. Idea-from: Thomas Hellström Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_object.h | 14 ++

[Intel-gfx] [PATCH v2 33/61] drm/i915: Add ww locking around vm_access()

2020-10-12 Thread Maarten Lankhorst
i915_gem_object_pin_map potentially needs a ww context, so ensure we have one we can revoke. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_mman.c | 24 ++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git

[Intel-gfx] [PATCH v2 14/61] drm/i915: Fix userptr so we do not have to worry about obj->mm.lock, v2.

2020-10-12 Thread Maarten Lankhorst
Instead of doing what we do currently, which will never work with PROVE_LOCKING, do the same as AMD does, and something similar to relocation slowpath. When all locks are dropped, we acquire the pages for pinning. When the locks are taken, we transfer those pages in .get_pages() to the bo. As a

[Intel-gfx] [PATCH v2 30/61] drm/i915: Fix workarounds selftest, part 1

2020-10-12 Thread Maarten Lankhorst
pin_map needs the ww lock, so ensure we pin both before submission. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_object.h| 3 + drivers/gpu/drm/i915/gem/i915_gem_pages.c | 12 +++ .../gpu/drm/i915/gt/selftest_workarounds.c| 76 --- 3 files

[Intel-gfx] [PATCH v2 56/61] drm/i915/selftests: Prepare i915_request tests for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
Straightforward conversion by using unlocked versions. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/selftests/i915_request.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/gpu/drm/i915/selftests/i915_request.c

[Intel-gfx] [PATCH v2 20/61] drm/i915: Rework clflush to work correctly without obj->mm.lock.

2020-10-12 Thread Maarten Lankhorst
Pin in the caller, not in the work itself. This should also work better for dma-fence annotations. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_clflush.c | 15 +++ 1 file changed, 7 insertions(+), 8 deletions(-) diff --git

[Intel-gfx] [PATCH v2 51/61] drm/i915/selftests: Prepare hangcheck for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
Convert a few calls to use the unlocked versions. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/selftest_hangcheck.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_hangcheck.c

[Intel-gfx] [PATCH v2 38/61] drm/i915: Fix ww locking in shmem_create_from_object

2020-10-12 Thread Maarten Lankhorst
Quick fix, just use the unlocked version. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/shmem_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gt/shmem_utils.c b/drivers/gpu/drm/i915/gt/shmem_utils.c index

[Intel-gfx] [PATCH v2 54/61] drm/i915/selftests: Prepare ring submission for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
Use unlocked versions when the ww lock is not held. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/selftest_ring_submission.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_ring_submission.c

[Intel-gfx] [PATCH v2 53/61] drm/i915/selftests: Prepare mocs tests for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
Use pin_map_unlocked when we're not holding locks. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/selftest_mocs.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_mocs.c b/drivers/gpu/drm/i915/gt/selftest_mocs.c index

[Intel-gfx] [PATCH v2 45/61] drm/i915/selftests: Prepare execbuf tests for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Also quite simple, a single call needs to use the unlocked version. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/i915_gem_execbuffer.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_execbuffer.c

[Intel-gfx] [PATCH v2 52/61] drm/i915/selftests: Prepare execlists for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
Convert normal functions to unlocked versions where needed. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/selftest_lrc.c | 34 +- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_lrc.c

[Intel-gfx] [PATCH] drm/i915: DMA map DSM [stolen memory]

2020-10-12 Thread Chris Wilson
Pass the physical address of our BIOS reserved stolen memory to the dma mapper so we convert it into a proper dma_addr_t and track access with the iommu. Signed-off-by: Chris Wilson --- drivers/gpu/drm/i915/gem/i915_gem_stolen.c | 21 - drivers/gpu/drm/i915/i915_drv.h

[Intel-gfx] ✗ Fi.CI.BAT: failure for drm/i915: DMA map DSM [stolen memory]

2020-10-12 Thread Patchwork
== Series Details == Series: drm/i915: DMA map DSM [stolen memory] URL : https://patchwork.freedesktop.org/series/82575/ State : failure == Summary == CI Bug Log - changes from CI_DRM_9129 -> Patchwork_18673 Summary --- **FAILURE**

Re: [Intel-gfx] [PATCH] drm/vgem: Replace vgem_object_funcs with the common drm shmem helper

2020-10-12 Thread Chris Wilson
Quoting Daniel Vetter (2020-10-12 15:12:50) > On Mon, Oct 12, 2020 at 03:01:09PM +0100, Chris Wilson wrote: > > Quoting Daniel Vetter (2020-10-12 14:55:07) > > > On Mon, Oct 12, 2020 at 12:49 PM Chris Wilson > > > wrote: > > > > Quoting Daniel Vetter (2020-10-09 17:16:06) > > > > > On Fri, Oct

[Intel-gfx] [PATCH v2 24/61] drm/i915: Take reservation lock around i915_vma_pin.

2020-10-12 Thread Maarten Lankhorst
We previously complained when ww == NULL. This function is now only used in selftests to pin an object, and ww locking is now fixed. Signed-off-by: Maarten Lankhorst --- .../i915/gem/selftests/i915_gem_coherency.c | 14 + drivers/gpu/drm/i915/i915_gem.c | 6 +-

[Intel-gfx] [PATCH v2 00/61] drm/i915: Remove obj->mm.lock!

2020-10-12 Thread Maarten Lankhorst
Finally there, just needs a lot of fixes! A lot of places were calling certain calls without any object lock held, with the removal of mm.lock we can no longer do this, and have to fix it. Phys page handling has to be redone, as nothing protects obj->ops structure, we have to remove swapping it,

[Intel-gfx] [PATCH v2 05/61] drm/i915: Add gem object locking to madvise.

2020-10-12 Thread Maarten Lankhorst
Doesn't need the full ww lock, only checking if pages are bound. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/i915_gem.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index

[Intel-gfx] [PATCH v2 57/61] drm/i915/selftests: Prepare memory region tests for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
Use the unlocked variants for pin_map and pin_pages, and add lock around unpinning/putting pages. Signed-off-by: Maarten Lankhorst --- .../drm/i915/selftests/intel_memory_region.c | 18 +++--- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git

[Intel-gfx] [PATCH v2 29/61] drm/i915: Fix pread/pwrite to work with new locking rules.

2020-10-12 Thread Maarten Lankhorst
We are removing obj->mm.lock, and need to take the reservation lock before we can pin pages. Move the pinning pages into the helper, and merge gtt pwrite/pread preparation and cleanup paths. The fence lock is also removed; it will conflict with fence annotations, because of memory allocations

[Intel-gfx] [PATCH v2 23/61] drm/i915: Move pinning to inside engine_wa_list_verify()

2020-10-12 Thread Maarten Lankhorst
This should be done as part of the ww loop, in order to remove a i915_vma_pin that needs ww held. Now only i915_ggtt_pin() callers remaining. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/intel_workarounds.c | 24 -- .../gpu/drm/i915/gt/selftest_workarounds.c

[Intel-gfx] [PATCH v2 01/61] drm/i915: Move cmd parser pinning to execbuffer

2020-10-12 Thread Maarten Lankhorst
We need to get rid of allocations in the cmd parser, because it needs to be called from a signaling context, first move all pinning to execbuf, where we already hold all locks. Allocate jump_whitelist in the execbuffer, and add annotations around intel_engine_cmd_parser(), to ensure we only call

[Intel-gfx] [PATCH v2 13/61] drm/i915: Reject UNSYNCHRONIZED for userptr

2020-10-12 Thread Maarten Lankhorst
We should not allow this any more, as it will break with the new userptr implementation, it could still be made to work, but there's no point in doing so. Signed-off-by: Maarten Lankhorst --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 2 + drivers/gpu/drm/i915/gem/i915_gem_object.h|

[Intel-gfx] [PATCH v2 03/61] drm/i915: Do not share hwsp across contexts any more, v3.

2020-10-12 Thread Maarten Lankhorst
Instead of sharing pages with breadcrumbs, give each timeline a single page. This allows unrelated timelines not to share locks any more during command submission. As an additional benefit, seqno wraparound no longer requires i915_vma_pin, which means we no longer need to worry about a potential

[Intel-gfx] [PATCH v2 15/61] drm/i915: Flatten obj->mm.lock

2020-10-12 Thread Maarten Lankhorst
With userptr fixed, there is no need for all separate lockdep classes now, and we can remove all lockdep tricks used. A trylock in the shrinker is all we need now to flatten the locking hierarchy. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_object.c | 6 +---

[Intel-gfx] [PATCH v2 18/61] drm/i915: Make ring submission compatible with obj->mm.lock removal, v2.

2020-10-12 Thread Maarten Lankhorst
We map the initial context during first pin. This allows us to remove pin_map from state allocation, which saves us a few retry loops. We won't need this until first pin anyway. intel_ring_submission_setup() is also reworked slightly to do all pinning in a single ww loop. Changes since v1: -

[Intel-gfx] [PATCH v2 40/61] drm/i915/selftests: Prepare huge_pages testcases for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Straightforward conversion, just convert a bunch of calls to unlocked versions. Signed-off-by: Maarten Lankhorst --- .../gpu/drm/i915/gem/selftests/huge_pages.c | 28 ++- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git

[Intel-gfx] [PATCH v2 43/61] drm/i915/selftests: Prepare context tests for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Straightforward conversion, just convert a bunch of calls to unlocked versions. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git

[Intel-gfx] [PATCH v2 25/61] drm/i915: Make intel_init_workaround_bb more compatible with ww locking.

2020-10-12 Thread Maarten Lankhorst
Make creation separate from pinning, in order to take the lock only once, and pin the mapping with the lock held. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/intel_lrc.c | 43 ++--- 1 file changed, 33 insertions(+), 10 deletions(-) diff --git

[Intel-gfx] [PATCH v2 28/61] drm/i915: Defer pin calls in buffer pool until first use by caller.

2020-10-12 Thread Maarten Lankhorst
We need to take the obj lock to pin pages, so wait until the callers have done so, before making the object unshrinkable. Signed-off-by: Maarten Lankhorst --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 2 + .../gpu/drm/i915/gem/i915_gem_object_blt.c| 6 +++

[Intel-gfx] [PATCH v2 17/61] drm/i915: Populate logical context during first pin.

2020-10-12 Thread Maarten Lankhorst
This allows us to remove pin_map from state allocation, which saves us a few retry loops. We won't need this until first pin, anyway. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/intel_context_types.h | 13 ++- drivers/gpu/drm/i915/gt/intel_lrc.c | 107

[Intel-gfx] [PATCH v2 16/61] drm/i915: Pin timeline map after first timeline pin, v2.

2020-10-12 Thread Maarten Lankhorst
We're starting to require the reservation lock for pinning, so wait until we have that. Update the selftests to handle this correctly, and ensure pin is called in live_hwsp_rollover_user() and mock_hwsp_freelist(). Changes since v1: - Fix NULL + XX arithmatic, use casts. (kbuild) Signed-off-by:

[Intel-gfx] [PATCH v2 06/61] drm/i915: Move HAS_STRUCT_PAGE to obj->flags

2020-10-12 Thread Maarten Lankhorst
We want to remove the changing of ops structure for attaching phys pages, so we need to kill off HAS_STRUCT_PAGE from ops->flags, and put it in the bo. This will remove a potential race of dereferencing the wrong obj->ops without ww mutex held. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH v2 49/61] drm/i915/selftests: Prepare igt_gem_utils for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
igt_emit_store_dw needs to use the unlocked version, as it's not holding a lock. This fixes igt_gpu_fill_dw() which is used by some other selftests. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/igt_gem_utils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)

[Intel-gfx] [PATCH v2 02/61] drm/i915: Add missing -EDEADLK handling to execbuf pinning

2020-10-12 Thread Maarten Lankhorst
i915_vma_pin may fail with -EDEADLK when we start locking page tables, so ensure we handle this correctly. Signed-off-by: Maarten Lankhorst --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 23 +++ 1 file changed, 18 insertions(+), 5 deletions(-) diff --git

[Intel-gfx] [PATCH v2 21/61] drm/i915: Pass ww ctx to intel_pin_to_display_plane

2020-10-12 Thread Maarten Lankhorst
Instead of multiple lockings, lock the object once, and perform the ww dance around attach_phys and pin_pages. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_display.c | 69 --- drivers/gpu/drm/i915/display/intel_display.h | 2 +-

[Intel-gfx] [PATCH v2 48/61] drm/i915/selftests: Prepare object blit tests for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Use some unlocked versions where we're not holding the ww lock. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/i915_gem_object_blt.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_object_blt.c

[Intel-gfx] [PATCH v2 60/61] drm/i915: Finally remove obj->mm.lock.

2020-10-12 Thread Maarten Lankhorst
With all callers and selftests fixed to use ww locking, we can now finally remove this lock. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_object.c| 2 - drivers/gpu/drm/i915/gem/i915_gem_object.h| 5 +-- .../gpu/drm/i915/gem/i915_gem_object_types.h | 1 -

[Intel-gfx] [PATCH v2 22/61] drm/i915: Add object locking to vm_fault_cpu

2020-10-12 Thread Maarten Lankhorst
Take a simple lock so we hold ww around (un)pin_pages as needed. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_mman.c | 4 1 file changed, 4 insertions(+) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c index

[Intel-gfx] [PATCH v2 07/61] drm/i915: Rework struct phys attachment handling

2020-10-12 Thread Maarten Lankhorst
Instead of creating a separate object type, we make changes to the shmem type, to clear struct page backing. This will allow us to ensure we never run into a race when we exchange obj->ops with other function pointers. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH v2 39/61] drm/i915: Use a single page table lock for each gtt.

2020-10-12 Thread Maarten Lankhorst
We may create page table objects on the fly, but we may need to wait with the ww lock held. Instead of waiting on a freed obj lock, ensure we have the same lock for each object to keep -EDEADLK working. This ensures that i915_vma_pin_ww can lock the page tables when required. Signed-off-by:

[Intel-gfx] [PATCH v2 04/61] drm/i915: Ensure we hold the object mutex in pin correctly.

2020-10-12 Thread Maarten Lankhorst
Currently we have a lot of places where we hold the gem object lock, but haven't yet been converted to the ww dance. Complain loudly about those places. i915_vma_pin shouldn't have the obj lock held, so we can do a ww dance, while i915_vma_pin_ww should. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH v2 32/61] drm/i915: Add igt_spinner_pin() to allow for ww locking around spinner.

2020-10-12 Thread Maarten Lankhorst
By default, we assume that it's called inside igt_create_request to keep existing selftests working, but allow for manual pinning when passing a ww context. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/selftests/igt_spinner.c | 136 ---

[Intel-gfx] [PATCH v2 12/61] drm/i915: Reject more ioctls for userptr

2020-10-12 Thread Maarten Lankhorst
Allow set_domain to fail silently, waiting for idle should be good enough. set_tiling and set_caching are rejected with -ENXIO, there's no valid reason to allow it. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_display.c | 2 +-

[Intel-gfx] [PATCH v2 11/61] drm/i915: No longer allow exporting userptr through dma-buf

2020-10-12 Thread Maarten Lankhorst
It doesn't make sense to export a memory address, we will prevent allowing access this way to different address spaces when we rework userptr handling, so best to explicitly disable it. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 5 ++--- 1 file changed, 2

[Intel-gfx] [PATCH v2 59/61] drm/i915/selftests: Prepare gtt tests for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
We need to lock the global gtt dma_resv, use i915_vm_lock_objects to handle this correctly. Add ww handling for this where required. Add the object lock around unpin/put pages, and use the unlocked versions of pin_pages and pin_map where required. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH v2 61/61] drm/i915: Keep userpointer bindings if seqcount is unchanged

2020-10-12 Thread Maarten Lankhorst
Instead of force unbinding and rebinding every time, we try to check if our notifier seqcount is still correct when pages are bound. This way we only rebind userptr when we need to, and prevent stalls. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 29

[Intel-gfx] [PATCH v2 37/61] drm/i915: Add missing ww lock in intel_dsb_prepare.

2020-10-12 Thread Maarten Lankhorst
Because of the long lifetime of the mapping, we cannot wrap this in a simple limited ww lock. Just use the unlocked version of pin_map, because we'll likely release the mapping a lot later, in a different thread. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/display/intel_dsb.c | 2

[Intel-gfx] [PATCH v2 46/61] drm/i915/selftests: Prepare mman testcases for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Ensure we hold the lock around put_pages, and use the unlocked wrappers for pinning pages and mappings. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c | 10 ++ 1 file changed, 6 insertions(+), 4 deletions(-) diff --git

[Intel-gfx] [PATCH v2 35/61] drm/i915: Lock ww in ucode objects correctly

2020-10-12 Thread Maarten Lankhorst
In the ucode functions, the calls are done before userspace runs, when debugging using debugfs, or when creating semi-permanent mappings; we can safely use the unlocked versions that does the ww dance for us. Because there is no pin_pages_unlocked yet, add it as convenience function. This

[Intel-gfx] [PATCH v2 44/61] drm/i915/selftests: Prepare dma-buf tests for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Use pin_pages_unlocked() where we don't have a lock. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_dmabuf.c

[Intel-gfx] [PATCH v2 19/61] drm/i915: Handle ww locking in init_status_page

2020-10-12 Thread Maarten Lankhorst
Try to pin to ggtt first, and use a full ww loop to handle eviction correctly. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/intel_engine_cs.c | 37 +++ 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/intel_engine_cs.c

[Intel-gfx] [PATCH v2 58/61] drm/i915/selftests: Prepare cs engine tests for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
Same as other tests, use pin_map_unlocked. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/selftest_engine_cs.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_engine_cs.c b/drivers/gpu/drm/i915/gt/selftest_engine_cs.c index

[Intel-gfx] [PATCH v2 41/61] drm/i915/selftests: Prepare client blit for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Straightforward conversion, just convert a bunch of calls to unlocked versions. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/i915_gem_client_blt.c | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git

[Intel-gfx] [PATCH v2 55/61] drm/i915/selftests: Prepare timeline tests for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
We can no longer call intel_timeline_pin with a null argument, so add a ww loop that locks the backing object. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/selftest_timeline.c | 26 ++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git

[Intel-gfx] [PATCH v2 50/61] drm/i915/selftests: Prepare context selftest for obj->mm.lock removal

2020-10-12 Thread Maarten Lankhorst
Only needs to convert a single call to the unlocked version. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/selftest_context.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/i915/gt/selftest_context.c

[Intel-gfx] [PATCH v2 34/61] drm/i915: Increase ww locking for perf.

2020-10-12 Thread Maarten Lankhorst
We need to lock a few more objects, some temporarily, add ww lock where needed. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/i915_perf.c | 56 1 file changed, 43 insertions(+), 13 deletions(-) diff --git a/drivers/gpu/drm/i915/i915_perf.c

[Intel-gfx] [PATCH v2 27/61] drm/i915: Take obj lock around set_domain ioctl

2020-10-12 Thread Maarten Lankhorst
We need to lock the object to move it to the correct domain, add the missing lock. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_domain.c | 17 + 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/i915/gem/i915_gem_domain.c

[Intel-gfx] [PATCH v2 26/61] drm/i915: Make __engine_unpark() compatible with ww locking.

2020-10-12 Thread Maarten Lankhorst
Take the ww lock around engine_unpark. Because of the many many places where rpm is used, I chose the safest option and used a trylock to opportunistically take this lock for __engine_unpark. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gt/intel_engine_pm.c | 4 +++- 1 file

[Intel-gfx] [PATCH v2 09/61] drm/i915: make lockdep slightly happier about execbuf.

2020-10-12 Thread Maarten Lankhorst
As soon as we install fences, we should stop allocating memory in order to prevent any potential deadlocks. This is required later on, when we start adding support for dma-fence annotations. Signed-off-by: Maarten Lankhorst --- .../gpu/drm/i915/gem/i915_gem_execbuffer.c| 24

[Intel-gfx] [PATCH v2 08/61] drm/i915: Convert i915_gem_object_attach_phys() to ww locking

2020-10-12 Thread Maarten Lankhorst
Simple adding of i915_gem_object_lock, we may start to pass ww to get_pages() in the future, but that won't be the case here; We override shmem's get_pages() handling by calling i915_gem_object_get_pages_phys(), no ww is needed. Signed-off-by: Maarten Lankhorst ---

[Intel-gfx] [PATCH v2 10/61] drm/i915: Disable userptr pread/pwrite support.

2020-10-12 Thread Maarten Lankhorst
Userptr should not need the kernel for a userspace memcpy, userspace needs to call memcpy directly. Signed-off-by: Maarten Lankhorst --- .../gpu/drm/i915/gem/i915_gem_object_types.h | 2 ++ drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 20 +++ drivers/gpu/drm/i915/i915_gem.c

[Intel-gfx] [PATCH v2 36/61] drm/i915: Add ww locking to dma-buf ops.

2020-10-12 Thread Maarten Lankhorst
vmap is using pin_pages, but needs to use ww locking, add pin_pages_unlocked to correctly lock the mapping. Also add ww locking to begin/end cpu access. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 60 -- 1 file changed, 33

[Intel-gfx] [PATCH v2 42/61] drm/i915/selftests: Prepare coherency tests for obj->mm.lock removal.

2020-10-12 Thread Maarten Lankhorst
Straightforward conversion, just convert a bunch of calls to unlocked versions. Signed-off-by: Maarten Lankhorst --- drivers/gpu/drm/i915/gem/selftests/i915_gem_coherency.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git

Re: [Intel-gfx] [PATCH] drm/vgem: Replace vgem_object_funcs with the common drm shmem helper

2020-10-12 Thread Chris Wilson
Quoting Daniel Vetter (2020-10-12 14:55:07) > On Mon, Oct 12, 2020 at 12:49 PM Chris Wilson > wrote: > > Quoting Daniel Vetter (2020-10-09 17:16:06) > > > On Fri, Oct 9, 2020 at 12:21 PM Chris Wilson > > > wrote: > > > > > > > > vgem is a minimalistic driver that provides shmemfs objects to >

Re: [Intel-gfx] [PATCH v4 1/1] drm/i915/gt: Initialize reserved and unspecified MOCS indices

2020-10-12 Thread Joonas Lahtinen
Quoting Ayaz A Siddiqui (2020-07-29 13:25:39) > In order to avoid functional breakage of mis-programmed applications that > have grown to depend on unused MOCS entries, we are programming > those entries to be equal to fully cached ("L3 + LLC") entry. > > These reserved and unspecified entries

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for series starting with [1/2] drm: Ask whether drm_gem_get_pages() should clear the CPU cache

2020-10-12 Thread Patchwork
== Series Details == Series: series starting with [1/2] drm: Ask whether drm_gem_get_pages() should clear the CPU cache URL : https://patchwork.freedesktop.org/series/82569/ State : warning == Summary == $ dim sparse --fast origin/drm-tip Sparse version: v0.6.2 Fast mode used, each commit

Re: [Intel-gfx] [PATCH 2/2] drm/i915/dp: use opregion mailbox #5 EDID for eDP, if available

2020-10-12 Thread Lee, Shawn C
On Fri, Aug 28, 2020 at 06:19AM, Shankar Uma wrote: >> -Original Message- >> From: Jani Nikula >> Sent: Friday, August 28, 2020 11:50 AM >> To: intel-gfx@lists.freedesktop.org >> Cc: Nikula, Jani ; Shankar, Uma >> >> Subject: [PATCH 2/2] drm/i915/dp: use opregion mailbox #5 EDID for eDP,

Re: [Intel-gfx] [PATCH v4 0/7] Convert the intel iommu driver to the dma-iommu api

2020-10-12 Thread Tvrtko Ursulin
On 29/09/2020 01:11, Lu Baolu wrote: Hi Tvrtko, On 9/28/20 5:44 PM, Tvrtko Ursulin wrote: On 27/09/2020 07:34, Lu Baolu wrote: Hi, The previous post of this series could be found here. https://lore.kernel.org/linux-iommu/20200912032200.11489-1-baolu...@linux.intel.com/ This version

[Intel-gfx] [PATCH 1/2] drm: Ask whether drm_gem_get_pages() should clear the CPU cache

2020-10-12 Thread Chris Wilson
On some processors (such as arch/x86), accessing a page via a WC PAT is bypassed if the page is physically tagged in the CPU cache, and the access is serviced by the cache instead -- which leads to incoherency should the physical page itself be accessed using DMA. In order to prevent the false

[Intel-gfx] [PATCH 2/2] drm/vgem: Replace vgem_object_funcs with the common drm shmem helper

2020-10-12 Thread Chris Wilson
vgem is a minimalistic driver that provides shmemfs objects to userspace that may then be used as an in-memory surface and transported across dma-buf to other drivers. Since vgem's introduction, drm_gem_shmem_helper now provides the same shmemfs facilities and so we can trim vgem to wrap the

[Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [1/2] drm: Ask whether drm_gem_get_pages() should clear the CPU cache

2020-10-12 Thread Patchwork
== Series Details == Series: series starting with [1/2] drm: Ask whether drm_gem_get_pages() should clear the CPU cache URL : https://patchwork.freedesktop.org/series/82569/ State : success == Summary == CI Bug Log - changes from CI_DRM_9128 -> Patchwork_18672

Re: [Intel-gfx] [PATCH 2/2] drm/i915/dp: use opregion mailbox #5 EDID for eDP, if available

2020-10-12 Thread Jani Nikula
On Mon, 12 Oct 2020, "Lee, Shawn C" wrote: > On Fri, Aug 28, 2020 at 06:19AM, Shankar Uma wrote: >>> -Original Message- >>> From: Jani Nikula >>> Sent: Friday, August 28, 2020 11:50 AM >>> To: intel-gfx@lists.freedesktop.org >>> Cc: Nikula, Jani ; Shankar, Uma >>> >>> Subject: [PATCH

Re: [Intel-gfx] [PATCH] drm/vgem: Replace vgem_object_funcs with the common drm shmem helper

2020-10-12 Thread Chris Wilson
Quoting Daniel Vetter (2020-10-09 17:16:06) > On Fri, Oct 9, 2020 at 12:21 PM Chris Wilson wrote: > > > > vgem is a minimalistic driver that provides shmemfs objects to > > userspace that may then be used as an in-memory surface and transported > > across dma-buf to other drivers. Since it's

[Intel-gfx] ✗ Fi.CI.DOCS: warning for drm/i915: Remove obj->mm.lock! (rev2)

2020-10-12 Thread Patchwork
== Series Details == Series: drm/i915: Remove obj->mm.lock! (rev2) URL : https://patchwork.freedesktop.org/series/82337/ State : warning == Summary == $ make htmldocs 2>&1 > /dev/null | grep i915 ./drivers/gpu/drm/i915/gem/i915_gem_shrinker.c:102: warning: Function parameter or member 'ww'

[Intel-gfx] ✓ Fi.CI.BAT: success for drm/ingenic: Fix bad revert

2020-10-12 Thread Patchwork
== Series Details == Series: drm/ingenic: Fix bad revert URL : https://patchwork.freedesktop.org/series/82588/ State : success == Summary == CI Bug Log - changes from CI_DRM_9130 -> Patchwork_18679 Summary --- **SUCCESS** No

Re: [Intel-gfx] [PATCH] drm/i915/tgl/psr: Fix glitches when doing frontbuffer modifications

2020-10-12 Thread Mun, Gwan-gyeong
On Mon, 2020-10-12 at 11:15 -0700, Souza, Jose wrote: > On Mon, 2020-10-12 at 19:12 +0100, Mun, Gwan-gyeong wrote: > > After applying this patch, the psr screen glitch issue is still > > seen. > > Same IOMMU errors too? In my end it is fixed. > Can you also give a try without the DMC firmware and

  1   2   >