Re: [PATCH RFC 0/2] Uninterruptible host1x syncpoint wait for Tegra video capture

From: Mikko Perttunen

Date: Sun Nov 08 2026 - 22:27:48 EST


On Sunday, November 8, 2026 2:21 PM DelaySystem via B4 Relay wrote:
> Signed-off-by: DelaySystem <DelaySystem@xxxxxxxxx>
> The Tegra20 video capture path runs in a kernel thread and waits on
> host1x syncpoints with host1x_syncpt_wait(), which is unconditionally
> interruptible: any signal aborts the wait with -ERESTARTSYS. At high
> resolutions and framerates these spurious failures are common, so the
> driver wraps both waits in do/while retry loops, with a TODO asking
> for an uninterruptible variant of the wait.
>
> This series proposes one: patch 1 refactors host1x_syncpt_wait() so
> the interruptible behavior is preserved exactly for existing callers
> (including two DRM ioctls that are userspace ABI and must stay
> interruptible) and adds host1x_syncpt_wait_uninterruptible() for
> in-kernel users. Patch 2 converts the Tegra20 capture waits and drops
> the retry loops and the TODO.
>
> This is sent as an RFC because the API shape and the scope need
> agreement before a final series:
>
> 1. Is a separate _uninterruptible() variant the shape host1x wants,
> or would the maintainers prefer something else (for example an
> internal helper with a flag, or a different name)?
> 2. Tegra210's two waits (tegra210.c) have no retry loop: a spurious
> -ERESTARTSYS currently fails the buffer. Should they convert to
> the uninterruptible wait as well, or is failing on signal
> intentional there?
> 3. drivers/crypto/tegra/tegra-se-main.c also waits with
> MAX_SCHEDULE_TIMEOUT; left out of scope here, but flagging in
> case its maintainer wants the same treatment.
>
> drivers/staging/media/tegra-video with VIDEO_TEGRA=m, zero warnings).
> The tegra20.c change itself has no compile coverage here: that object
> builds only for 32-bit ARM (ARCH_TEGRA_2x_SOC/_3x_SOC) and no ARM
> toolchain is available, and there is no Tegra hardware for runtime
> testing. Hardware testing help is needed before any final series.

nak

>
> Testing: compile-tested only (arm64: drivers/gpu/host1x and
> ---
> DelaySystem (2):
> gpu: host1x: add uninterruptible syncpoint wait variant
> staging: media: tegra-video: uninterruptible syncpt wait for tegra20
>
> drivers/gpu/host1x/syncpt.c | 46 ++++++++++++++++++++++-------
> drivers/staging/media/tegra-video/tegra20.c | 37 +++++++----------------
> include/linux/host1x.h | 2 ++
> 3 files changed, 48 insertions(+), 37 deletions(-)
> ---
> base-commit: fa4ad798f6f681031775266044ba1b0cf3c670bd
> change-id: 20261107-batch1-b1-host1x-wait-3cb3b92e9199
>
> Best regards,
> --
> DelaySystem <DelaySystem@xxxxxxxxx>
>
>
>