All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Yang, Fei" <fei.yang@intel.com>
To: "Roper, Matthew D" <matthew.d.roper@intel.com>
Cc: "intel-gfx@lists.freedesktop.org"
	<intel-gfx@lists.freedesktop.org>,
	"dri-devel@lists.freedesktop.org"
	<dri-devel@lists.freedesktop.org>,
	"Hajda, Andrzej" <andrzej.hajda@intel.com>,
	"Das, Nirmoy" <nirmoy.das@intel.com>
Subject: Re: [Intel-gfx] [PATCH 3/8] drm/i915/mtl: Add PTE encode function
Date: Mon, 24 Apr 2023 18:41:14 +0000	[thread overview]
Message-ID: <BYAPR11MB25678D775EF934B410E6B5E09A679@BYAPR11MB2567.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20230424172029.GA6250@mdroper-desk1.amr.corp.intel.com>

[-- Attachment #1: Type: text/plain, Size: 4540 bytes --]

> On Sun, Apr 23, 2023 at 12:37:27AM -0700, Yang, Fei wrote:
>>> On Fri, Apr 21, 2023 at 10:27:22AM -0700, Yang, Fei wrote:
>>>>> On Wed, Apr 19, 2023 at 04:00:53PM -0700, fei.yang@intel.com wrote:
>>>>>> From: Fei Yang <fei.yang@intel.com>
>>>>>>
>>>>>> PTE encode functions are platform dependent. This patch implements
>>>>>> PTE functions for MTL, and ensures the correct PTE encode function
>>>>>> is used by calling pte_encode function pointer instead of the
>>>>>> hardcoded gen8 version of PTE encode.
>>>>>>
>>>>>> Signed-off-by: Fei Yang <fei.yang@intel.com>
>>>>>> Reviewed-by: Andrzej Hajda <andrzej.hajda@intel.com>
>>>>>> Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
>>>>>> Acked-by: Nirmoy Das <nirmoy.das@intel.com>
>>>>>
>>>>> Bspec: 45015, 45040
>>>>>
>>>>>> ---
>>>>>>  drivers/gpu/drm/i915/display/intel_dpt.c |  2 +-
>>>>>>  drivers/gpu/drm/i915/gt/gen8_ppgtt.c     | 45 ++++++++++++++++++++----
>>>>>>  drivers/gpu/drm/i915/gt/intel_ggtt.c     | 36 +++++++++++++++++--
>>>>>>  3 files changed, 72 insertions(+), 11 deletions(-)
>>>>>>
>>>>>> diff --git a/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>b/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>> index b8027392144d..c5eacfdba1a5 100644
>>>>>> --- a/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>> +++ b/drivers/gpu/drm/i915/display/intel_dpt.c
>>>>>> @@ -300,7 +300,7 @@ intel_dpt_create(struct intel_framebuffer *fb)
>>>>>>        vm->vma_ops.bind_vma    = dpt_bind_vma;
>>>>>>        vm->vma_ops.unbind_vma  = dpt_unbind_vma;
>>>>>>
>>>>>> -     vm->pte_encode = gen8_ggtt_pte_encode;
>>>>>> +     vm->pte_encode = vm->gt->ggtt->vm.pte_encode;
>>>>>>
>>>>>>        dpt->obj = dpt_obj;
>>>>>>        dpt->obj->is_dpt = true;
>>>>>> diff --git a/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
>>>>>>  b/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
>>>>>> index 4daaa6f55668..11b91e0453c8 100644
>>>>>> --- a/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
>>>>>> +++ b/drivers/gpu/drm/i915/gt/gen8_ppgtt.c
>>>>>> @@ -55,6 +55,34 @@ static u64 gen8_pte_encode(dma_addr_t addr,
>>>>>>        return pte;
>>>>>>  }
>>>>>>
>>>>>> +static u64 mtl_pte_encode(dma_addr_t addr,
>>>>>> +                       enum i915_cache_level level,
>>>>>> +                       u32 flags)
>>>>>> +{
>>>>>> +     gen8_pte_t pte = addr | GEN8_PAGE_PRESENT | GEN8_PAGE_RW;
>>>>>> +
>>>>>> +     if (unlikely(flags & PTE_READ_ONLY))
>>>>>> +             pte &= ~GEN8_PAGE_RW;
>>>>>> +
>>>>>> +     if (flags & PTE_LM)
>>>>>> +             pte |= GEN12_PPGTT_PTE_LM | GEN12_PPGTT_PTE_NC;
>>>>>
>>>>> GEN12_PPGTT_PTE_NC got defined in the previous patch as BIT(5).  But
>>>>> according to bspec 45040, bit 5 is ignored in the PTE encoding.  What is
>>>>> this trying to do?
>>>>
>>>> This takes effect only for PTE_LM, doesn't affect MTL.
>>>> PTE_NC is needed for PVC (use of access counter).
>>>> I believe this function was writen based on the one for PVC. And this
>>>> function did get extended to cover all gen12 in a later patch.
>>>
>>> Even though MTL doesn't have local memory, PTE_LM is supposed to be
>>> used on MTL for access to BAR2 stolen memory.
>>
>> You were right, but I still think this code is fine because this bit is
>> ignored for MTL anyway and it is needed for other platforms with LMEM.
>> Otherwise this code would have some sort of platform checking which is
>> hard to do because we don't have platform info here.
>> Or we would have to define another PTE encode function for platforms
>> needing PTE_NC just for this one difference, then manage the function
>> pointer correctly.
>
> MTL is the only platform that uses this function right now:
>
>   +       if (GRAPHICS_VER_FULL(gt->i915) >= IP_VER(12, 70))
>   +               ppgtt->vm.pte_encode = mtl_pte_encode;
>   +       else
>   +               ppgtt->vm.pte_encode = gen8_pte_encode;
>
> If this is intended for PVC, then you have it in the wrong function to
> begin with (and it also shouldn't be in a patch labelled "mtl").  If
> you're trying to future-proof for some post-MTL discrete platform, then
> such code should be saved until we enable that platform so that it can
> be properly reviewed.

dropped GEN12_PPGTT_PTE_NC bit in v2 of https://patchwork.freedesktop.org/series/116900/

> Matt
>
>>
>> -Fei
>>
>>> Matt
>>>
>>>> -Fei
>>>>> Matt
>>>>>
>>>>>> +
>>>>>> +     switch (level) {
>>>>>> +     case I915_CACHE_NONE:
>>>>>> +             pte |= GEN12_PPGTT_PTE_PAT1;
>>>>>> +             break;

[-- Attachment #2: Type: text/html, Size: 10619 bytes --]

  reply	other threads:[~2023-04-24 18:44 UTC|newest]

Thread overview: 83+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-19 23:00 [PATCH 0/8] drm/i915/mtl: Define MOCS and PAT tables for MTL fei.yang
2023-04-19 23:00 ` [Intel-gfx] " fei.yang
2023-04-19 23:00 ` [PATCH 1/8] drm/i915/mtl: Set has_llc=0 fei.yang
2023-04-19 23:00   ` [Intel-gfx] " fei.yang
2023-04-20 10:20   ` Das, Nirmoy
2023-04-20 10:20     ` Das, Nirmoy
2023-04-19 23:00 ` [PATCH 2/8] drm/i915/mtl: Define MOCS and PAT tables for MTL fei.yang
2023-04-19 23:00   ` [Intel-gfx] " fei.yang
2023-04-20 20:29   ` Matt Roper
2023-04-19 23:00 ` [PATCH 3/8] drm/i915/mtl: Add PTE encode function fei.yang
2023-04-19 23:00   ` [Intel-gfx] " fei.yang
2023-04-20 20:40   ` Matt Roper
2023-04-21 17:27     ` Yang, Fei
2023-04-21 17:42       ` Matt Roper
2023-04-23  7:37         ` Yang, Fei
2023-04-23  7:37           ` Yang, Fei
2023-04-24 17:20           ` Matt Roper
2023-04-24 18:41             ` Yang, Fei [this message]
2023-04-19 23:00 ` [PATCH 4/8] drm/i915/mtl: workaround coherency issue for Media fei.yang
2023-04-19 23:00   ` [Intel-gfx] " fei.yang
2023-04-20  8:26   ` Andrzej Hajda
2023-04-20 11:36   ` Das, Nirmoy
2023-04-20 11:36     ` Das, Nirmoy
2023-04-20 20:52   ` Matt Roper
2023-04-19 23:00 ` [PATCH 5/8] drm/i915/mtl: end support for set caching ioctl fei.yang
2023-04-19 23:00   ` [Intel-gfx] " fei.yang
2023-04-20 21:05   ` Matt Roper
2023-04-19 23:00 ` [PATCH 6/8] drm/i915: preparation for using PAT index fei.yang
2023-04-19 23:00   ` [Intel-gfx] " fei.yang
2023-04-20  8:45   ` Andrzej Hajda
2023-04-20 21:14   ` Matt Roper
2023-04-19 23:00 ` [PATCH 7/8] drm/i915: use pat_index instead of cache_level fei.yang
2023-04-19 23:00   ` [Intel-gfx] " fei.yang
2023-04-20 10:13   ` Andrzej Hajda
2023-04-20 12:39     ` Tvrtko Ursulin
2023-04-20 20:34       ` Yang, Fei
2023-04-21  8:43   ` Tvrtko Ursulin
2023-04-21 10:17   ` Tvrtko Ursulin
2023-04-23  6:12     ` Yang, Fei
2023-04-23  6:12       ` Yang, Fei
2023-04-24  8:41       ` Tvrtko Ursulin
2023-04-21 11:39   ` Tvrtko Ursulin
2023-04-23  6:52     ` Yang, Fei
2023-04-23  6:52       ` Yang, Fei
2023-04-24  9:22       ` Tvrtko Ursulin
2023-04-19 23:00 ` [PATCH 8/8] drm/i915: Allow user to set cache at BO creation fei.yang
2023-04-19 23:00   ` [Intel-gfx] " fei.yang
2023-04-20 11:39   ` Andi Shyti
2023-04-20 11:39     ` [Intel-gfx] " Andi Shyti
2023-04-20 13:06     ` Tvrtko Ursulin
2023-04-20 16:11       ` Yang, Fei
2023-04-20 16:29         ` Andi Shyti
2023-04-20 16:29           ` Andi Shyti
2023-04-21 20:48         ` Jordan Justen
2023-04-21 20:48           ` Jordan Justen
     [not found]           ` <BYAPR11MB2567F03AD43D7E2DE2628D5D9A669@BYAPR11MB2567.namprd11.prod.outlook.com>
     [not found]             ` <168232538771.392286.3227368099155268955@jljusten-skl>
2023-04-24  9:08               ` Tvrtko Ursulin
2023-04-24  9:08                 ` Tvrtko Ursulin
2023-04-24 17:13                 ` Jordan Justen
2023-04-24 17:13                   ` Jordan Justen
2023-04-25 13:41                   ` IOCTL feature detection (Was: Re: [Intel-gfx] [PATCH 8/8] drm/i915: Allow user to set cache at BO creation) Joonas Lahtinen
2023-04-25 13:41                     ` [Intel-gfx] IOCTL feature detection (Was: " Joonas Lahtinen
2023-04-25 17:21                     ` IOCTL feature detection (Was: Re: [Intel-gfx] " Teres Alexis, Alan Previn
2023-04-25 17:21                       ` [Intel-gfx] IOCTL feature detection (Was: " Teres Alexis, Alan Previn
2023-04-25 18:19                     ` IOCTL feature detection (Was: Re: [Intel-gfx] " Jordan Justen
2023-04-25 18:19                       ` [Intel-gfx] IOCTL feature detection (Was: " Jordan Justen
2023-04-26 11:52                     ` IOCTL feature detection (Was: Re: [Intel-gfx] " Daniel Vetter
2023-04-26 11:52                       ` [Intel-gfx] IOCTL feature detection (Was: " Daniel Vetter
2023-04-26 16:48                       ` IOCTL feature detection (Was: Re: [Intel-gfx] " Teres Alexis, Alan Previn
2023-04-26 16:48                         ` [Intel-gfx] IOCTL feature detection (Was: " Teres Alexis, Alan Previn
2023-04-26 18:10                         ` IOCTL feature detection (Was: Re: [Intel-gfx] " Ceraolo Spurio, Daniele
2023-04-26 18:10                           ` [Intel-gfx] IOCTL feature detection (Was: " Ceraolo Spurio, Daniele
2023-04-26 20:04                       ` IOCTL feature detection (Was: Re: [Intel-gfx] " Jordan Justen
2023-04-26 20:04                         ` [Intel-gfx] IOCTL feature detection (Was: " Jordan Justen
2023-04-19 23:29 ` [Intel-gfx] ✗ Fi.CI.SPARSE: warning for drm/i915/mtl: Define MOCS and PAT tables for MTL (rev8) Patchwork
2023-04-19 23:51 ` [Intel-gfx] ✗ Fi.CI.BAT: failure " Patchwork
2023-04-20 11:30 ` [Intel-gfx] [PATCH 0/8] drm/i915/mtl: Define MOCS and PAT tables for MTL Andi Shyti
  -- strict thread matches above, loose matches on Subject: below --
2023-04-19 21:12 fei.yang
2023-04-19 21:12 ` [Intel-gfx] [PATCH 3/8] drm/i915/mtl: Add PTE encode function fei.yang
2023-04-19 22:01   ` Andi Shyti
2023-04-19 18:09 [PATCH 0/8] drm/i915/mtl: Define MOCS and PAT tables for MTL fei.yang
2023-04-19 18:09 ` [Intel-gfx] [PATCH 3/8] drm/i915/mtl: Add PTE encode function fei.yang
2023-04-17  6:24 [PATCH 0/8] drm/i915/mtl: Define MOCS and PAT tables for MTL fei.yang
2023-04-17  6:24 ` [Intel-gfx] [PATCH 3/8] drm/i915/mtl: Add PTE encode function fei.yang
2023-04-19 11:02   ` Andi Shyti
2023-04-19 12:51   ` Andrzej Hajda
2023-04-19 15:11   ` Das, Nirmoy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=BYAPR11MB25678D775EF934B410E6B5E09A679@BYAPR11MB2567.namprd11.prod.outlook.com \
    --to=fei.yang@intel.com \
    --cc=andrzej.hajda@intel.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=matthew.d.roper@intel.com \
    --cc=nirmoy.das@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.