public inbox for linux-next@vger.kernel.org 
 help / color / mirror / Atom feed
From: Stephen Rothwell <sfr@canb•auug.org.au>
To: Dave Airlie <airlied@redhat•com>, DRI <dri-devel@lists•freedesktop.org>
Cc: "Linux Kernel Mailing List" <linux-kernel@vger•kernel.org>,
	"Linux Next Mailing List" <linux-next@vger•kernel.org>,
	"Lucas De Marchi" <lucas.demarchi@intel•com>,
	"Matthew Brost" <matthew.brost@intel•com>,
	"Niranjana Vishwanathapura" <niranjana.vishwanathapura@intel•com>,
	"Thomas Hellström" <thomas.hellstrom@linux•intel.com>,
	"Umesh Nerlige Ramappa" <umesh.nerlige.ramappa@intel•com>
Subject: linux-next: manual merge of the drm tree with Linus' tree
Date: Fri, 6 Jun 2025 12:08:51 +1000	[thread overview]
Message-ID: <20250606120851.2736b781@canb.auug.org.au> (raw)

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

Hi all,

Today's linux-next merge of the drm tree got a conflict in:

  drivers/gpu/drm/xe/xe_lrc.c

between commit:

  617d824c5323 ("drm/xe: Add WA BB to capture active context utilization")

from Linus' tree and commit:

  2b0a0ce0c20b ("drm/xe: Create LRC BO without VM")

from the drm tree.

I fixed it up (maybe? - see below) and can carry the fix as
necessary. This is now fixed as far as linux-next is concerned, but any
non trivial conflicts should be mentioned to your upstream maintainer
when your tree is submitted for merging.  You may also want to consider
cooperating with the maintainer of the conflicting tree to minimise any
particularly complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc drivers/gpu/drm/xe/xe_lrc.c
index 61a2e87990a9,e1db6f2a1ad0..000000000000
--- a/drivers/gpu/drm/xe/xe_lrc.c
+++ b/drivers/gpu/drm/xe/xe_lrc.c
@@@ -909,69 -876,7 +909,66 @@@ static void xe_lrc_set_ppgtt(struct xe_
  static void xe_lrc_finish(struct xe_lrc *lrc)
  {
  	xe_hw_fence_ctx_finish(&lrc->fence_ctx);
- 	xe_bo_lock(lrc->bo, false);
- 	xe_bo_unpin(lrc->bo);
- 	xe_bo_unlock(lrc->bo);
- 	xe_bo_put(lrc->bo);
+ 	xe_bo_unpin_map_no_vm(lrc->bo);
 +	xe_bo_unpin_map_no_vm(lrc->bb_per_ctx_bo);
 +}
 +
 +/*
 + * xe_lrc_setup_utilization() - Setup wa bb to assist in calculating active
 + * context run ticks.
 + * @lrc: Pointer to the lrc.
 + *
 + * Context Timestamp (CTX_TIMESTAMP) in the LRC accumulates the run ticks of the
 + * context, but only gets updated when the context switches out. In order to
 + * check how long a context has been active before it switches out, two things
 + * are required:
 + *
 + * (1) Determine if the context is running:
 + * To do so, we program the WA BB to set an initial value for CTX_TIMESTAMP in
 + * the LRC. The value chosen is 1 since 0 is the initial value when the LRC is
 + * initialized. During a query, we just check for this value to determine if the
 + * context is active. If the context switched out, it would overwrite this
 + * location with the actual CTX_TIMESTAMP MMIO value. Note that WA BB runs as
 + * the last part of context restore, so reusing this LRC location will not
 + * clobber anything.
 + *
 + * (2) Calculate the time that the context has been active for:
 + * The CTX_TIMESTAMP ticks only when the context is active. If a context is
 + * active, we just use the CTX_TIMESTAMP MMIO as the new value of utilization.
 + * While doing so, we need to read the CTX_TIMESTAMP MMIO for the specific
 + * engine instance. Since we do not know which instance the context is running
 + * on until it is scheduled, we also read the ENGINE_ID MMIO in the WA BB and
 + * store it in the PPHSWP.
 + */
 +#define CONTEXT_ACTIVE 1ULL
 +static void xe_lrc_setup_utilization(struct xe_lrc *lrc)
 +{
 +	u32 *cmd;
 +
 +	cmd = lrc->bb_per_ctx_bo->vmap.vaddr;
 +
 +	*cmd++ = MI_STORE_REGISTER_MEM | MI_SRM_USE_GGTT | MI_SRM_ADD_CS_OFFSET;
 +	*cmd++ = ENGINE_ID(0).addr;
 +	*cmd++ = __xe_lrc_engine_id_ggtt_addr(lrc);
 +	*cmd++ = 0;
 +
 +	*cmd++ = MI_STORE_DATA_IMM | MI_SDI_GGTT | MI_SDI_NUM_DW(1);
 +	*cmd++ = __xe_lrc_ctx_timestamp_ggtt_addr(lrc);
 +	*cmd++ = 0;
 +	*cmd++ = lower_32_bits(CONTEXT_ACTIVE);
 +
 +	if (lrc_to_xe(lrc)->info.has_64bit_timestamp) {
 +		*cmd++ = MI_STORE_DATA_IMM | MI_SDI_GGTT | MI_SDI_NUM_DW(1);
 +		*cmd++ = __xe_lrc_ctx_timestamp_udw_ggtt_addr(lrc);
 +		*cmd++ = 0;
 +		*cmd++ = upper_32_bits(CONTEXT_ACTIVE);
 +	}
 +
 +	*cmd++ = MI_BATCH_BUFFER_END;
 +
 +	xe_lrc_write_ctx_reg(lrc, CTX_BB_PER_CTX_PTR,
 +			     xe_bo_ggtt_addr(lrc->bb_per_ctx_bo) | 1);
 +
  }
  
  #define PVC_CTX_ASID		(0x2e + 1)

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

             reply	other threads:[~2025-06-06  2:09 UTC|newest]

Thread overview: 159+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-06  2:08 Stephen Rothwell [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-01-05  2:16 linux-next: manual merge of the drm tree with Linus' tree Stephen Rothwell
2026-01-05  7:07 ` Thomas Zimmermann
2026-01-06 21:35   ` Stephen Rothwell
2025-12-04  3:06 Stephen Rothwell
2025-12-04  7:35 ` Thomas Zimmermann
2025-05-21  4:13 Stephen Rothwell
2025-05-21  4:10 Stephen Rothwell
2025-03-24  3:06 Stephen Rothwell
2025-03-03  2:12 Stephen Rothwell
2024-11-11  2:04 Stephen Rothwell
2024-10-28  2:49 Stephen Rothwell
2024-09-16  4:15 Stephen Rothwell
2024-09-16 12:58 ` Tobias Jakobi
2024-09-17 20:24   ` Alex Deucher
2024-09-09  3:11 Stephen Rothwell
2024-03-04  1:08 Stephen Rothwell
2024-03-04  0:47 Stephen Rothwell
2024-01-08  0:14 Stephen Rothwell
2023-06-19  1:17 Stephen Rothwell
2022-11-30 22:57 Stephen Rothwell
2022-11-27 23:58 Stephen Rothwell
2022-11-29  9:07 ` Geert Uytterhoeven
2022-11-17  2:13 Stephen Rothwell
2022-09-19  0:58 Stephen Rothwell
2022-09-19  7:58 ` Geert Uytterhoeven
2022-09-19 14:23   ` Nathan Chancellor
2022-02-28  3:17 Stephen Rothwell
2021-10-29  0:48 Stephen Rothwell
2021-10-29  6:52 ` Joonas Lahtinen
2021-10-11  0:37 Stephen Rothwell
2021-08-23  2:41 Stephen Rothwell
2021-08-24  0:12 ` Stephen Rothwell
2021-08-12  1:20 Stephen Rothwell
2021-07-01  0:52 Stephen Rothwell
2021-03-29  2:14 Stephen Rothwell
2021-03-30  7:36 ` Geert Uytterhoeven
2021-03-30 23:41   ` Stephen Rothwell
2021-02-01  1:30 Stephen Rothwell
2021-02-14 22:07 ` Stephen Rothwell
2021-01-18  0:56 Stephen Rothwell
2020-10-02  3:42 Stephen Rothwell
2020-05-25  3:51 Stephen Rothwell
2020-03-23  0:50 Stephen Rothwell
2019-11-13  1:38 Stephen Rothwell
2019-11-13  1:13 Stephen Rothwell
2019-11-13  0:58 Stephen Rothwell
2019-11-13  0:50 Stephen Rothwell
2019-11-13  0:46 Stephen Rothwell
2019-11-13  0:40 Stephen Rothwell
2019-08-26  3:12 Stephen Rothwell
2019-06-11  2:19 Stephen Rothwell
2018-06-04  3:09 Stephen Rothwell
2018-03-26  3:38 Stephen Rothwell
2018-03-22  6:37 Stephen Rothwell
2018-03-26  3:45 ` Stephen Rothwell
2018-03-13  1:15 Stephen Rothwell
2018-02-18 23:10 Stephen Rothwell
2018-02-20 20:15 ` Rodrigo Vivi
2018-02-18 23:02 Stephen Rothwell
2018-01-15  1:08 Stephen Rothwell
2017-11-23 23:37 Stephen Rothwell
2017-10-30 18:36 Mark Brown
2017-10-30 18:26 Mark Brown
2017-08-28  2:32 Stephen Rothwell
2017-07-31  2:24 Stephen Rothwell
2017-07-24  2:06 Stephen Rothwell
2017-07-24  2:09 ` Stephen Rothwell
2017-06-05  2:49 Stephen Rothwell
2017-04-05  0:30 Stephen Rothwell
2017-02-23 23:17 Stephen Rothwell
2016-09-28  1:57 Stephen Rothwell
2016-09-20  2:42 Stephen Rothwell
2016-09-20 12:25 ` Philipp Zabel
2016-09-05  3:58 Stephen Rothwell
2016-09-05  3:51 Stephen Rothwell
2016-07-29  1:45 Stephen Rothwell
2016-05-09  1:28 Stephen Rothwell
2016-05-09  1:27 Stephen Rothwell
2016-03-17  0:45 Stephen Rothwell
2016-03-17  1:43 ` Luis R. Rodriguez
2016-02-29  2:59 Stephen Rothwell
2015-12-07  3:38 Stephen Rothwell
2015-11-01  8:11 Stephen Rothwell
2015-07-27  1:14 Stephen Rothwell
2015-06-21  3:50 Stephen Rothwell
2015-06-22  7:20 ` Christian König
2015-05-11  3:07 Stephen Rothwell
2015-04-07  5:22 Stephen Rothwell
2015-01-29  2:17 Stephen Rothwell
2015-01-29  8:19 ` Oded Gabbay
2015-01-22  2:22 Stephen Rothwell
2015-01-22  2:31 ` Dave Airlie
2015-01-22  2:57   ` Stephen Rothwell
2015-01-22  2:18 Stephen Rothwell
2015-01-22  2:15 Stephen Rothwell
2014-12-05  4:46 Stephen Rothwell
2014-12-05  4:39 Stephen Rothwell
2014-11-17  3:11 Stephen Rothwell
2014-11-17  9:47 ` Thierry Reding
2014-06-05  3:59 Stephen Rothwell
2014-06-05  3:54 Stephen Rothwell
2014-03-31  2:54 Stephen Rothwell
2014-03-24  2:01 Stephen Rothwell
2014-03-24  8:49 ` Jani Nikula
2013-12-19  2:09 Stephen Rothwell
2013-12-19  1:59 Stephen Rothwell
2013-11-07  2:21 Stephen Rothwell
2013-11-07  2:10 Stephen Rothwell
2013-10-28  5:58 Stephen Rothwell
2013-10-28  5:28 Stephen Rothwell
2013-10-28  5:11 Stephen Rothwell
2013-07-29  2:58 Stephen Rothwell
2013-07-26  3:01 Stephen Rothwell
2013-06-24  2:56 Stephen Rothwell
2013-06-17  3:09 Stephen Rothwell
2013-02-13  4:48 Stephen Rothwell
2012-11-30  1:22 Stephen Rothwell
2012-10-04  2:00 Stephen Rothwell
2012-10-04  1:54 Stephen Rothwell
2012-09-17  4:53 Stephen Rothwell
2012-08-24  2:20 Stephen Rothwell
2012-08-24  2:19 Stephen Rothwell
2012-08-24  7:13 ` Jani Nikula
2012-08-24  7:12   ` Dave Airlie
2012-08-24 20:29     ` Sedat Dilek
2012-07-19  1:38 Stephen Rothwell
2012-07-16  3:00 Stephen Rothwell
2012-06-29  3:30 Stephen Rothwell
2012-06-29  9:01 ` Daniel Vetter
2012-05-14  4:08 Stephen Rothwell
2012-05-07  3:45 Stephen Rothwell
2012-05-07  8:06 ` Daniel Vetter
2012-05-03  3:07 Stephen Rothwell
2012-04-13  3:38 Stephen Rothwell
2012-04-13  8:59 ` Daniel Vetter
2012-03-05  3:47 Stephen Rothwell
2011-12-28  2:53 Stephen Rothwell
2011-12-28  2:44 Stephen Rothwell
2011-12-21  3:18 Stephen Rothwell
2011-12-12  2:06 Stephen Rothwell
2011-03-09  3:41 Stephen Rothwell
2010-10-15  1:54 Stephen Rothwell
2010-10-03 23:30 Stephen Rothwell
2010-10-03 23:30 Stephen Rothwell
2010-04-28  3:58 Stephen Rothwell
2010-04-27  2:51 Stephen Rothwell
2010-04-12  5:06 Stephen Rothwell
2009-10-06  2:28 Stephen Rothwell
2009-10-08  2:35 ` Stephen Rothwell
2009-10-08  3:38   ` Dave Airlie
2009-10-08  3:44     ` Stephen Rothwell
2009-09-08  5:01 Stephen Rothwell
2009-08-20  5:27 Stephen Rothwell
2009-08-20  5:30 ` Dave Airlie
2009-08-20  6:43   ` Stephen Rothwell
2009-08-20  5:07 Stephen Rothwell
2009-08-05  3:44 Stephen Rothwell
2009-02-10  6:22 Stephen Rothwell

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=20250606120851.2736b781@canb.auug.org.au \
    --to=sfr@canb$(echo .)auug.org.au \
    --cc=airlied@redhat$(echo .)com \
    --cc=dri-devel@lists$(echo .)freedesktop.org \
    --cc=linux-kernel@vger$(echo .)kernel.org \
    --cc=linux-next@vger$(echo .)kernel.org \
    --cc=lucas.demarchi@intel$(echo .)com \
    --cc=matthew.brost@intel$(echo .)com \
    --cc=niranjana.vishwanathapura@intel$(echo .)com \
    --cc=thomas.hellstrom@linux$(echo .)intel.com \
    --cc=umesh.nerlige.ramappa@intel$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox