On Wed, Aug 14, 2024 at 03:48:32PM +0200, Andi Shyti wrote: > Hi, > > I am resending this patch series, not to disregard the previous > discussions, but to ensure it gets tested with the IGTs that > Krzysztof has provided. > > This patch series finalizes the memory mapping fixes and > improvements by enabling partial memory mapping for CPU memory as > well. > > The concept of partial memory mapping, achieved by adding an > object offset, was implicitly introduced in commit 8bdd9ef7e9b1 > ("drm/i915/gem: Fix Virtual Memory mapping boundaries > calculation") for GTT memory. > > To address a previous discussion with Sima and Matt, this feature > is used by Mesa and is required across all platforms utilizing > Mesa. Although Nirmoy suggested using the Fixes tag to backport Other vendors than Intel too? > this to previous kernels, I view this as a new feature rather > than a fix. > > Lionel, please let me know if you have a different perspective > and believe this should be treated as a bug fix, requiring it > to be backported to stable kernels. > > The IGTs have been developed in collaboration with the Mesa team > to replicate the exact Mesa use case[*]. > > Thanks Chris for the support, thanks Krzysztof for taking care of > the IGT tests, thanks Nirmoy for your reviews and thanks Sima and > Matt for the discussion on this series. > > Andi > > [*] https://patchwork.freedesktop.org/patch/608232/?series=137303&rev=1 So here is really quick test [1] which I put together in Xe to test partial mmaps, not as complete as the i915 one though. It fails on the Xe baseline. It pass if with [2] in drm_gem.c:drm_gem_mmap. Blindly changing that function might not be the correct solution but thought I'd share as a reference. Matt [1] https://patchwork.freedesktop.org/patch/608268/?series=137313&rev=1 [2] s/drm_vma_offset_exact_lookup_locked/drm_vma_offset_lookup_locked > > Test-with: 20240814132404.18392-1-krzysztof.niemiec@xxxxxxxxx > > Changelog: > ========== > v1 -> v2 > - Added Nirmoy's tags. > > Andi Shyti (2): > drm/i915/gem: Do not look for the exact address in node > drm/i915/gem: Calculate object page offset for partial memory mapping > > drivers/gpu/drm/i915/gem/i915_gem_mman.c | 10 ++++++---- > drivers/gpu/drm/i915/i915_mm.c | 12 +++++++++++- > drivers/gpu/drm/i915/i915_mm.h | 3 ++- > 3 files changed, 19 insertions(+), 6 deletions(-) > > -- > 2.45.2 >