Re: [PATCH v3] drm/i915/gt: Do not consider preemption during execlists_dequeue for gen8

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Fri, Jul 12, 2024 at 03:25:23PM +0200, Gote, Nitin R wrote:
> > -----Original Message-----
> > From: Vivi, Rodrigo <rodrigo.vivi@xxxxxxxxx>
> > Sent: Thursday, July 11, 2024 11:39 PM
> > To: Cavitt, Jonathan <jonathan.cavitt@xxxxxxxxx>
> > Cc: Gote, Nitin R <nitin.r.gote@xxxxxxxxx>; Wilson, Chris P
> > <chris.p.wilson@xxxxxxxxx>; tursulin@xxxxxxxxxxx; intel-
> > gfx@xxxxxxxxxxxxxxxxxxxxx; dri-devel@xxxxxxxxxxxxxxxxxxxxx; Shyti, Andi
> > <andi.shyti@xxxxxxxxx>; Das, Nirmoy <nirmoy.das@xxxxxxxxx>;
> > janusz.krzysztofik@xxxxxxxxxxxxxxx; Chris Wilson
> > <chris.p.wilson@xxxxxxxxxxxxxxx>; stable@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH v3] drm/i915/gt: Do not consider preemption during
> > execlists_dequeue for gen8
> > 
> > On Thu, Jul 11, 2024 at 04:28:53PM +0000, Cavitt, Jonathan wrote:
> > > -----Original Message-----
> > > From: Intel-gfx <intel-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx> On Behalf Of
> > > Nitin Gote
> > > Sent: Thursday, July 11, 2024 9:32 AM
> > > To: Wilson, Chris P <chris.p.wilson@xxxxxxxxx>; tursulin@xxxxxxxxxxx;
> > > intel-gfx@xxxxxxxxxxxxxxxxxxxxx
> > > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx; Shyti, Andi
> > > <andi.shyti@xxxxxxxxx>; Das, Nirmoy <nirmoy.das@xxxxxxxxx>;
> > > janusz.krzysztofik@xxxxxxxxxxxxxxx; Gote, Nitin R
> > > <nitin.r.gote@xxxxxxxxx>; Chris Wilson
> > > <chris.p.wilson@xxxxxxxxxxxxxxx>; stable@xxxxxxxxxxxxxxx
> > > Subject: [PATCH v3] drm/i915/gt: Do not consider preemption during
> > > execlists_dequeue for gen8
> > > >
> > > > We're seeing a GPU HANG issue on a CHV platform, which was caused by
> > > > bac24f59f454 ("drm/i915/execlists: Enable coarse preemption boundaries
> > for gen8").
> > > >
> > > > Gen8 platform has only timeslice and doesn't support a preemption
> > > > mechanism as engines do not have a preemption timer and doesn't send
> > > > an irq if the preemption timeout expires.
> > >
> > > That seems to mean the original can_preempt function was inaccurately
> > > built, so fixing it here makes the most sense to me, especially if it's causing
> > problems.
> > >
> > > Reviewed-by: Jonathan Cavitt <jonathan.cavitt@xxxxxxxxx> -Jonathan
> > > Cavitt
> > >
> > > > So, add a fix to not consider preemption during dequeuing for gen8
> > > > platforms.
> > > >
> > > > v2: Simplify can_preempt() function (Tvrtko Ursulin)
> > > >
> > > > v3:
> > > >  - Inside need_preempt(), condition of can_preempt() is not required
> > > >    as simplified can_preempt() is enough. (Chris Wilson)
> > > >
> > > > Fixes: bac24f59f454 ("drm/i915/execlists: Enable coarse preemption
> > > > boundaries for gen8")
> > 
> > Something strange in here...
> > 
> > This patch is not using directly or indirectly (I915_ENGINE_HAS_PREEMPTION)
> > the can_preempt()...
> >
> 
> Thank you Rodrigo for the review comment. Seems like you are right.
> Fixes: bac24f59f454 is misleading as it's not using can_preempt(). 
> The bug could be from the commit bac24f59f454 as mentioned in the issue
> But this change fixes the original implementation of can_preempt()  in below commit.
> Fixes: 751f82b353a6 ("drm/i915/gt: Only disable preemption on gen8 render engines").
> 
> I will update the Fixes in the commit description and will send in v4.

Can I reword the commit log to something similar:

    drm/i915/gt: Do not consider preemption during execlists_dequeue for gen8

    We're seeing a GPU hang issue on a CHV platform, which was caused by commit
    bac24f59f454 ("drm/i915/execlists: Enable coarse preemption boundaries for
    Gen8").

    The Gen8 platform only supports timeslicing and doesn't have a preemption
    mechanism, as its engines do not have a preemption timer.

    Commit 751f82b353a6 ("drm/i915/gt: Only disable preemption on Gen8 render
    engines") addressed this issue only for render engines. This patch extends
    that fix by ensuring that preemption is not considered for all engines on
    Gen8 platforms.

    v4:
     - Use the correct Fixes tag (Rodrigo Vivi)
     - Reworded commit log (Andi Shyti)

    v3:
     - Inside need_preempt(), condition of can_preempt() is not required
       as simplified can_preempt() is enough. (Chris Wilson)

    v2: Simplify can_preempt() function (Tvrtko Ursulin)

Andi




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux