From: Rodrigo Vivi <rodrigo.vivi@intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 4/5] drm/i915/gtt: Rename i915_vm_is_48b to i915_vm_is_4lvl
Date: Thu, 14 Mar 2019 15:52:40 -0700 [thread overview]
Message-ID: <20190314225240.GA11873@intel.com> (raw)
In-Reply-To: <20190314223839.28258-4-chris@chris-wilson.co.uk>
On Thu, Mar 14, 2019 at 10:38:38PM +0000, Chris Wilson wrote:
> Large ppGTT are differentiated by the requirement to go to four levels
> to address more than 32b. Given the introduction of more 4 level ppGTT
> with different sizes of addressable bits, rename i915_vm_is_48b() to
> better reflect the commonality of using 4 levels.
>
> Based on a patch by Bob Paauwe <bob.j.paauwe@intel.com>
>
> Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
> Cc: Bob Paauwe <bob.j.paauwe@intel.com>
> Cc: Matthew Auld <matthew.william.auld@gmail.com>
> Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
> ---
> drivers/gpu/drm/i915/gvt/scheduler.c | 6 ++---
> drivers/gpu/drm/i915/i915_gem_context.c | 2 +-
> drivers/gpu/drm/i915/i915_gem_gtt.c | 27 +++++++++------------
> drivers/gpu/drm/i915/i915_gem_gtt.h | 4 +--
> drivers/gpu/drm/i915/intel_lrc.c | 4 +--
> drivers/gpu/drm/i915/selftests/huge_pages.c | 4 +--
> 6 files changed, 21 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
> index 709bcaaed765..7550e09939ae 100644
> --- a/drivers/gpu/drm/i915/gvt/scheduler.c
> +++ b/drivers/gpu/drm/i915/gvt/scheduler.c
> @@ -1101,9 +1101,9 @@ i915_context_ppgtt_root_restore(struct intel_vgpu_submission *s)
> struct i915_hw_ppgtt *i915_ppgtt = s->shadow_ctx->ppgtt;
> int i;
>
> - if (i915_vm_is_48bit(&i915_ppgtt->vm))
> + if (i915_vm_is_4lvl(&i915_ppgtt->vm)) {
> px_dma(&i915_ppgtt->pml4) = s->i915_context_pml4;
> - else {
> + } else {
> for (i = 0; i < GEN8_3LVL_PDPES; i++)
> px_dma(i915_ppgtt->pdp.page_directory[i]) =
> s->i915_context_pdps[i];
> @@ -1154,7 +1154,7 @@ i915_context_ppgtt_root_save(struct intel_vgpu_submission *s)
> struct i915_hw_ppgtt *i915_ppgtt = s->shadow_ctx->ppgtt;
> int i;
>
> - if (i915_vm_is_48bit(&i915_ppgtt->vm))
> + if (i915_vm_is_4lvl(&i915_ppgtt->vm))
> s->i915_context_pml4 = px_dma(&i915_ppgtt->pml4);
> else {
> for (i = 0; i < GEN8_3LVL_PDPES; i++)
> diff --git a/drivers/gpu/drm/i915/i915_gem_context.c b/drivers/gpu/drm/i915/i915_gem_context.c
> index b6370225dcb5..21208a865380 100644
> --- a/drivers/gpu/drm/i915/i915_gem_context.c
> +++ b/drivers/gpu/drm/i915/i915_gem_context.c
> @@ -321,7 +321,7 @@ static u32 default_desc_template(const struct drm_i915_private *i915,
> desc = GEN8_CTX_VALID | GEN8_CTX_PRIVILEGE;
>
> address_mode = INTEL_LEGACY_32B_CONTEXT;
> - if (ppgtt && i915_vm_is_48bit(&ppgtt->vm))
> + if (ppgtt && i915_vm_is_4lvl(&ppgtt->vm))
> address_mode = INTEL_LEGACY_64B_CONTEXT;
> desc |= address_mode << GEN8_CTX_ADDRESSING_MODE_SHIFT;
>
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
> index 845d0ed5755b..83362c8ac110 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
> @@ -584,7 +584,7 @@ setup_scratch_page(struct i915_address_space *vm, gfp_t gfp)
> * for all.
> */
> size = I915_GTT_PAGE_SIZE_4K;
> - if (i915_vm_is_48bit(vm) &&
> + if (i915_vm_is_4lvl(vm) &&
> HAS_PAGE_SIZES(vm->i915, I915_GTT_PAGE_SIZE_64K)) {
> size = I915_GTT_PAGE_SIZE_64K;
> gfp |= __GFP_NOWARN;
> @@ -727,18 +727,13 @@ static void __pdp_fini(struct i915_page_directory_pointer *pdp)
> pdp->page_directory = NULL;
> }
>
> -static inline bool use_4lvl(const struct i915_address_space *vm)
> -{
> - return i915_vm_is_48bit(vm);
> -}
> -
> static struct i915_page_directory_pointer *
> alloc_pdp(struct i915_address_space *vm)
> {
> struct i915_page_directory_pointer *pdp;
> int ret = -ENOMEM;
>
> - GEM_BUG_ON(!use_4lvl(vm));
> + GEM_BUG_ON(!i915_vm_is_4lvl(vm));
>
> pdp = kzalloc(sizeof(*pdp), GFP_KERNEL);
> if (!pdp)
> @@ -767,7 +762,7 @@ static void free_pdp(struct i915_address_space *vm,
> {
> __pdp_fini(pdp);
>
> - if (!use_4lvl(vm))
> + if (!i915_vm_is_4lvl(vm))
> return;
>
> cleanup_px(vm, pdp);
> @@ -871,7 +866,7 @@ static void gen8_ppgtt_set_pdpe(struct i915_address_space *vm,
> gen8_ppgtt_pdpe_t *vaddr;
>
> pdp->page_directory[pdpe] = pd;
> - if (!use_4lvl(vm))
> + if (!i915_vm_is_4lvl(vm))
> return;
>
> vaddr = kmap_atomic_px(pdp);
> @@ -936,7 +931,7 @@ static void gen8_ppgtt_clear_4lvl(struct i915_address_space *vm,
> struct i915_page_directory_pointer *pdp;
> unsigned int pml4e;
>
> - GEM_BUG_ON(!use_4lvl(vm));
> + GEM_BUG_ON(!i915_vm_is_4lvl(vm));
>
> gen8_for_each_pml4e(pdp, pml4, start, length, pml4e) {
> GEM_BUG_ON(pdp == vm->scratch_pdp);
> @@ -1247,7 +1242,7 @@ static int gen8_init_scratch(struct i915_address_space *vm)
> goto free_pt;
> }
>
> - if (use_4lvl(vm)) {
> + if (i915_vm_is_4lvl(vm)) {
> vm->scratch_pdp = alloc_pdp(vm);
> if (IS_ERR(vm->scratch_pdp)) {
> ret = PTR_ERR(vm->scratch_pdp);
> @@ -1257,7 +1252,7 @@ static int gen8_init_scratch(struct i915_address_space *vm)
>
> gen8_initialize_pt(vm, vm->scratch_pt);
> gen8_initialize_pd(vm, vm->scratch_pd);
> - if (use_4lvl(vm))
> + if (i915_vm_is_4lvl(vm))
> gen8_initialize_pdp(vm, vm->scratch_pdp);
>
> return 0;
> @@ -1279,7 +1274,7 @@ static int gen8_ppgtt_notify_vgt(struct i915_hw_ppgtt *ppgtt, bool create)
> enum vgt_g2v_type msg;
> int i;
>
> - if (use_4lvl(vm)) {
> + if (i915_vm_is_4lvl(vm)) {
> const u64 daddr = px_dma(&ppgtt->pml4);
>
> I915_WRITE(vgtif_reg(pdp[0].lo), lower_32_bits(daddr));
> @@ -1309,7 +1304,7 @@ static void gen8_free_scratch(struct i915_address_space *vm)
> if (!vm->scratch_page.daddr)
> return;
>
> - if (use_4lvl(vm))
> + if (i915_vm_is_4lvl(vm))
> free_pdp(vm, vm->scratch_pdp);
> free_pd(vm, vm->scratch_pd);
> free_pt(vm, vm->scratch_pt);
> @@ -1355,7 +1350,7 @@ static void gen8_ppgtt_cleanup(struct i915_address_space *vm)
> if (intel_vgpu_active(dev_priv))
> gen8_ppgtt_notify_vgt(ppgtt, false);
>
> - if (use_4lvl(vm))
> + if (i915_vm_is_4lvl(vm))
> gen8_ppgtt_cleanup_4lvl(ppgtt);
> else
> gen8_ppgtt_cleanup_3lvl(&ppgtt->vm, &ppgtt->pdp);
> @@ -1555,7 +1550,7 @@ static struct i915_hw_ppgtt *gen8_ppgtt_create(struct drm_i915_private *i915)
> if (err)
> goto err_free;
>
> - if (use_4lvl(&ppgtt->vm)) {
> + if (i915_vm_is_4lvl(&ppgtt->vm)) {
> err = setup_px(&ppgtt->vm, &ppgtt->pml4);
> if (err)
> goto err_scratch;
> diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
> index a47e11e6fc1b..35f21a2ae36c 100644
> --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
> +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
> @@ -348,7 +348,7 @@ struct i915_address_space {
> #define i915_is_ggtt(vm) ((vm)->is_ggtt)
>
> static inline bool
> -i915_vm_is_48bit(const struct i915_address_space *vm)
> +i915_vm_is_4lvl(const struct i915_address_space *vm)
> {
> return (vm->total - 1) >> 32;
> }
> @@ -488,7 +488,7 @@ static inline u32 gen6_pde_index(u32 addr)
> static inline unsigned int
> i915_pdpes_per_pdp(const struct i915_address_space *vm)
> {
> - if (i915_vm_is_48bit(vm))
> + if (i915_vm_is_4lvl(vm))
> return GEN8_PML4ES_PER_PML4;
>
> return GEN8_3LVL_PDPES;
> diff --git a/drivers/gpu/drm/i915/intel_lrc.c b/drivers/gpu/drm/i915/intel_lrc.c
> index dc3de09c7586..11b81fd15fab 100644
> --- a/drivers/gpu/drm/i915/intel_lrc.c
> +++ b/drivers/gpu/drm/i915/intel_lrc.c
> @@ -1499,7 +1499,7 @@ static int execlists_request_alloc(struct i915_request *request)
> */
>
> /* Unconditionally invalidate GPU caches and TLBs. */
> - if (i915_vm_is_48bit(&request->gem_context->ppgtt->vm))
> + if (i915_vm_is_4lvl(&request->gem_context->ppgtt->vm))
> ret = request->engine->emit_flush(request, EMIT_INVALIDATE);
> else
> ret = emit_pdps(request);
> @@ -2719,7 +2719,7 @@ static void execlists_init_reg_state(u32 *regs,
> CTX_REG(regs, CTX_PDP0_UDW, GEN8_RING_PDP_UDW(engine, 0), 0);
> CTX_REG(regs, CTX_PDP0_LDW, GEN8_RING_PDP_LDW(engine, 0), 0);
>
> - if (i915_vm_is_48bit(&ppgtt->vm)) {
> + if (i915_vm_is_4lvl(&ppgtt->vm)) {
> /* 64b PPGTT (48bit canonical)
> * PDP0_DESCRIPTOR contains the base address to PML4 and
> * other PDP Descriptors are ignored.
> diff --git a/drivers/gpu/drm/i915/selftests/huge_pages.c b/drivers/gpu/drm/i915/selftests/huge_pages.c
> index 3ad7f041ae84..2e1db30af477 100644
> --- a/drivers/gpu/drm/i915/selftests/huge_pages.c
> +++ b/drivers/gpu/drm/i915/selftests/huge_pages.c
> @@ -1449,7 +1449,7 @@ static int igt_ppgtt_pin_update(void *arg)
> * huge-gtt-pages.
> */
>
> - if (!ppgtt || !i915_vm_is_48bit(&ppgtt->vm)) {
> + if (!ppgtt || !i915_vm_is_4lvl(&ppgtt->vm)) {
> pr_info("48b PPGTT not supported, skipping\n");
> return 0;
> }
> @@ -1719,7 +1719,7 @@ int i915_gem_huge_page_mock_selftests(void)
> goto out_unlock;
> }
>
> - if (!i915_vm_is_48bit(&ppgtt->vm)) {
> + if (!i915_vm_is_4lvl(&ppgtt->vm)) {
> pr_err("failed to create 48b PPGTT\n");
> err = -EINVAL;
> goto out_close;
> --
> 2.20.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
next prev parent reply other threads:[~2019-03-14 22:52 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-14 22:38 [PATCH 1/5] drm/i915: Mark up vGPU support for full-ppgtt Chris Wilson
2019-03-14 22:38 ` [PATCH 2/5] drm/i915: Record platform specific ppGTT size in intel_device_info Chris Wilson
2019-03-14 23:56 ` Rodrigo Vivi
2019-03-14 22:38 ` [PATCH 3/5] drm/i915: Drop address size from ppgtt_type Chris Wilson
2019-03-15 0:03 ` Rodrigo Vivi
2019-03-15 8:32 ` Chris Wilson
2019-03-14 22:38 ` [PATCH 4/5] drm/i915/gtt: Rename i915_vm_is_48b to i915_vm_is_4lvl Chris Wilson
2019-03-14 22:52 ` Rodrigo Vivi [this message]
2019-03-14 22:38 ` [PATCH 5/5] drm/i915/gtt: Refactor common ppgtt initialisation Chris Wilson
2019-03-14 22:53 ` Rodrigo Vivi
2019-03-15 9:09 ` Chris Wilson
2019-03-15 16:55 ` Bob Paauwe
2019-03-15 17:01 ` Rodrigo Vivi
2019-03-15 17:26 ` Bob Paauwe
2019-03-15 17:59 ` Rodrigo Vivi
2019-03-14 22:55 ` [PATCH 1/5] drm/i915: Mark up vGPU support for full-ppgtt Rodrigo Vivi
2019-03-14 23:18 ` ✗ Fi.CI.SPARSE: warning for series starting with [1/5] " Patchwork
2019-03-14 23:36 ` ✓ Fi.CI.BAT: success " Patchwork
2019-03-15 2:15 ` [PATCH 1/5] " Zhenyu Wang
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=20190314225240.GA11873@intel.com \
--to=rodrigo.vivi@intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
/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.