[Intel-xe] ✓ CI.checkpatch: success for drm/xe/mmio: Make xe_mmio_wait32() aware of interrupts (rev6)

Patchwork patchwork at emeril.freedesktop.org
Wed Nov 22 00:23:17 UTC 2023


== Series Details ==

Series: drm/xe/mmio: Make xe_mmio_wait32() aware of interrupts (rev6)
URL   : https://patchwork.freedesktop.org/series/126428/
State : success

== Summary ==

+ KERNEL=/kernel
+ git clone https://gitlab.freedesktop.org/drm/maintainer-tools mt
Cloning into 'mt'...
warning: redirecting to https://gitlab.freedesktop.org/drm/maintainer-tools.git/
+ git -C mt rev-list -n1 origin/master
63c2b6b160bca2df6efc7bc4cea6f442097d7854
+ cd /kernel
+ git config --global --add safe.directory /kernel
+ git log -n1
commit 24bff05122296d4fc1ee7a4d411ab939357bfe0f
Author: Gustavo Sousa <gustavo.sousa at intel.com>
Date:   Mon Nov 20 08:02:05 2023 -0800

    drm/xe/mmio: Make xe_mmio_wait32() aware of interrupts
    
    With the current implementation, a preemption or other kind of interrupt
    might happen between xe_mmio_read32() and ktime_get_raw(). Such an
    interruption (specially in the case of preemption) might be long enough
    to cause a timeout without giving a chance of a new check on the
    register value on a next iteration, which would have happened otherwise.
    
    This issue causes some sporadic timeouts in some code paths. As an
    example, we were experiencing some rare timeouts when waiting for PLL
    unlock for C10/C20 PHYs (see intel_cx0pll_disable()). After debugging,
    we found out that the PLL unlock was happening within the expected time
    period (20us), which suggested a bug in xe_mmio_wait32().
    
    To fix the issue, ensure that we do a last check out of the loop if
    necessary.
    
    This change was tested with the aforementioned PLL unlocking code path.
    Experiments showed that, before this change, we observed reported
    timeouts in 54 of 5000 runs; and, after this change, no timeouts were
    reported in 5000 runs.
    
    v2:
      - Prefer an implementation without a barrier (v1 switched the order of
        xe_mmio_read32() and ktime_get_raw() calls and added a barrier() in
        between). (Lucas, Rodrigo)
    
    Cc: Rodrigo Vivi <rodrigo.vivi at intel.com>
    Reviewed-by: Lucas De Marchi <lucas.demarchi at intel.com>
    Signed-off-by: Gustavo Sousa <gustavo.sousa at intel.com>
+ /mt/dim checkpatch 89e2bb1e155242dd9aa46bc90e563e71c5f498b0 drm-intel
4f5179938 drm/xe/mmio: Move xe_mmio_wait32() to xe_mmio.c
24bff0512 drm/xe/mmio: Make xe_mmio_wait32() aware of interrupts




More information about the Intel-xe mailing list