On Tue, Oct 7, 2025 at 4:21 PM opensource india <[email protected]> wrote:
>
> On Sun, Sep 28, 2025 at 11:19 AM Pavan Bobba <[email protected]> wrote:
> >
> > Replace the open-coded polling with schedule() in vmw_fallback_wait()
> > by schedule_hrtimeout(). The old code wakes up at jiffy granularity and
> > leads to unnecessary CPU wakeups during fence waits.
> >
> > schedule_hrtimeout() provides high-resolution sleep with finer control,
> > reducing CPU utilization without affecting fence correctness. For the
> > non-interruptible case, use schedule_timeout_uninterruptible().
> >
> > Signed-off-by: Pavan Bobba <[email protected]>
> > ---
> >  drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 16 ++++++----------
> >  1 file changed, 6 insertions(+), 10 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c 
> > b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
> > index 05773eb394d3..64045b0efafc 100644
> > --- a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
> > +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
> > @@ -202,16 +202,12 @@ int vmw_fallback_wait(struct vmw_private *dev_priv,
> >                 if (lazy)
> >                         schedule_timeout(1);
> >                 else if ((++count & 0x0F) == 0) {
> > -                       /**
> > -                        * FIXME: Use schedule_hr_timeout here for
> > -                        * newer kernels and lower CPU utilization.
> > -                        */
> > -
> > -                       __set_current_state(TASK_RUNNING);
> > -                       schedule();
> > -                       __set_current_state((interruptible) ?
> > -                                           TASK_INTERRUPTIBLE :
> > -                                           TASK_UNINTERRUPTIBLE);
> > +                       ktime_t delta = ktime_set(0, NSEC_PER_MSEC);
> > +
> > +                       if (interruptible)
> > +                               schedule_hrtimeout(&delta, 
> > HRTIMER_MODE_REL);
> > +                       else
> > +                               schedule_timeout_uninterruptible(delta);
> >                 }
> >                 if (interruptible && signal_pending(current)) {
> >                         ret = -ERESTARTSYS;
> > --
> > 2.43.0
> >
>
> anyone please review this patch?

Hi all, can anyone please review this?

Reply via email to