From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from fanzine2.igalia.com (fanzine2.igalia.com [213.97.179.56]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B2BE93A1A5F for ; Wed, 4 Mar 2026 10:21:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.97.179.56 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772619702; cv=none; b=nYvE80+Or5vX4BdI5metiNWhX5s3M/pxWf7zDVUgIDWOrUxDFBpUaAr1tf2GtOUId9aX5IS7Wn0fsPQlZ8NSuMC3xGZkGDUpo7SKXPZYoeTKTIDw69hlPsXJXfz48iEPMFZtoYllZUn1XzthhOPhnxgQd94ASE/BAqbpgXOvtF8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772619702; c=relaxed/simple; bh=3R3NZVZdxW8DBw1xFO3CTFe65aVYDyZi41cqZs5u/GQ=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=JaszIB8fxSZD1UY6G+2dNya8b29kiBcaxRDJJMK+XUzWY0dFhzOO9EqNkShfgY0r+v0vJIvonXz+m3D2+UG24J0bPCVabIneLA238fNcQb70TXzuhmOTnAltd+DnD6L15KB2wtOcQEmvfUAAsaJS53/m8W2zy18fLo+28na+quo= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com; spf=pass smtp.mailfrom=igalia.com; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b=lm3eST/P; arc=none smtp.client-ip=213.97.179.56 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=igalia.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=igalia.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=igalia.com header.i=@igalia.com header.b="lm3eST/P" DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=igalia.com; s=20170329; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:From: References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender:Reply-To: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=YZtJLvcYJzGZ0MY9wW1WKKkqsKRvbi5fsIX2camDAh4=; b=lm3eST/P9/j019Uc6ETDK18PBR IhwojNXDgQRpWINixYhEzgBNNOAnbcR+If56iGr8qtjQISv448Tun3sG2VrkD1BKcFAD40dIq4Vr6 SPKhkOOiHMZACN5Zg79GX+v9epo8OlHaqeY+VZwbG6BoJWiyNfKdMAMHqHfj1Bszz3OdVxI5wwBIY +/MVpWTTfSoGcEEaup6vUwYbh1SexIy1Qd/ol3K8HXAOxeQ1GX//738sJPPHkS9UETY2PjPNJc1dg FOdDFTWg3uKi3tEXn6VpGrecGAlM0GSv8xGmmfpMmoWHIZBoh+W0PAUE83oSg9EQmJJ8iZ60SYEVR m41mTUgg==; Received: from [189.7.87.203] (helo=[192.168.0.2]) by fanzine2.igalia.com with esmtpsa (Cipher TLS1.3:ECDHE_X25519__RSA_PSS_RSAE_SHA256__AES_128_GCM:128) (Exim) id 1vxjLu-008rOj-T8; Wed, 04 Mar 2026 11:21:15 +0100 Message-ID: <3ddab49b-d1a8-4efb-949c-12df119bf3fd@igalia.com> Date: Wed, 4 Mar 2026 07:21:09 -0300 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH] drm/v3d: Using spin_lock_irqsave instead of spin_lock in the RT kernel To: Xiaolei Wang , mwen@igalia.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org References: <20260304031724.246404-1-xiaolei.wang@windriver.com> From: =?UTF-8?Q?Ma=C3=ADra_Canal?= Content-Language: en-US Autocrypt: addr=mcanal@igalia.com; keydata= xsBNBGcCwywBCADgTji02Sv9zjHo26LXKdCaumcSWglfnJ93rwOCNkHfPIBll85LL9G0J7H8 /PmEL9y0LPo9/B3fhIpbD8VhSy9Sqz8qVl1oeqSe/rh3M+GceZbFUPpMSk5pNY9wr5raZ63d gJc1cs8XBhuj1EzeE8qbP6JAmsL+NMEmtkkNPfjhX14yqzHDVSqmAFEsh4Vmw6oaTMXvwQ40 SkFjtl3sr20y07cJMDe++tFet2fsfKqQNxwiGBZJsjEMO2T+mW7DuV2pKHr9aifWjABY5EPw G7qbrh+hXgfT+njAVg5+BcLz7w9Ju/7iwDMiIY1hx64Ogrpwykj9bXav35GKobicCAwHABEB AAHNIE1hw61yYSBDYW5hbCA8bWNhbmFsQGlnYWxpYS5jb20+wsCRBBMBCAA7FiEE+ORdfQEW dwcppnfRP/MOinaI+qoFAmcCwywCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQ P/MOinaI+qoUBQgAqz2gzUP7K3EBI24+a5FwFlruQGtim85GAJZXToBtzsfGLLVUSCL3aF/5 O335Bh6ViSBgxmowIwVJlS/e+L95CkTGzIIMHgyUZfNefR2L3aZA6cgc9z8cfow62Wu8eXnq GM/+WWvrFQb/dBKKuohfBlpThqDWXxhozazCcJYYHradIuOM8zyMtCLDYwPW7Vqmewa+w994 7Lo4CgOhUXVI2jJSBq3sgHEPxiUBOGxvOt1YBg7H9C37BeZYZxFmU8vh7fbOsvhx7Aqu5xV7 FG+1ZMfDkv+PixCuGtR5yPPaqU2XdjDC/9mlRWWQTPzg74RLEw5sz/tIHQPPm6ROCACFls7A TQRnAsMsAQgAxTU8dnqzK6vgODTCW2A6SAzcvKztxae4YjRwN1SuGhJR2isJgQHoOH6oCItW Xc1CGAWnci6doh1DJvbbB7uvkQlbeNxeIz0OzHSiB+pb1ssuT31Hz6QZFbX4q+crregPIhr+ 0xeDi6Mtu+paYprI7USGFFjDUvJUf36kK0yuF2XUOBlF0beCQ7Jhc+UoI9Akmvl4sHUrZJzX LMeajARnSBXTcig6h6/NFVkr1mi1uuZfIRNCkxCE8QRYebZLSWxBVr3h7dtOUkq2CzL2kRCK T2rKkmYrvBJTqSvfK3Ba7QrDg3szEe+fENpL3gHtH6h/XQF92EOulm5S5o0I+ceREwARAQAB wsB2BBgBCAAgFiEE+ORdfQEWdwcppnfRP/MOinaI+qoFAmcCwywCGwwACgkQP/MOinaI+qpI zQf+NAcNDBXWHGA3lgvYvOU31+ik9bb30xZ7IqK9MIi6TpZqL7cxNwZ+FAK2GbUWhy+/gPkX it2gCAJsjo/QEKJi7Zh8IgHN+jfim942QZOkU+p/YEcvqBvXa0zqW0sYfyAxkrf/OZfTnNNE Tr+uBKNaQGO2vkn5AX5l8zMl9LCH3/Ieaboni35qEhoD/aM0Kpf93PhCvJGbD4n1DnRhrxm1 uEdQ6HUjWghEjC+Jh9xUvJco2tUTepw4OwuPxOvtuPTUa1kgixYyG1Jck/67reJzMigeuYFt raV3P8t/6cmtawVjurhnCDuURyhUrjpRhgFp+lW8OGr6pepHol/WFIOQEg== In-Reply-To: <20260304031724.246404-1-xiaolei.wang@windriver.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Hi Xiaolei, On 04/03/26 00:17, Xiaolei Wang wrote: > Disabling interrupts before calling 'spin_lock()' is unnecessary; > its implementation is only for satisfying lockdep's requirements. Yeah, the idea is really to satisfy lockdep's requirements. See comment in `v3d_job_start_stats()`. However, I sent a series recently to address this workaround [1]. I appreciate reviews and comments about the series. [1] https://lore.kernel.org/dri-devel/20260217-v3d-reset-locking-improv-v1-0-0db848016869@igalia.com/T/ Best regards, - MaĆ­ra > Since preemption is disabled by default when calling 'spin_lock()' > in the standard kernel, both 'local_irq_save()' and 'preempt_disable()' > become redundant. Therefore, we can replace 'spin_lock()' with > 'spin_lock_irqsave()' to ensure compatibility between the standard > kernel and the rt kernel. Avoid the following warning: > > Hardware name: Raspberry Pi 5 Model B Rev 1.0 (DT) > Call trace: > dump_backtrace.part.0+0xe0/0x100 > show_stack+0x20/0x40 > dump_stack_lvl+0x60/0x80 dump_stack+0x18/0x28 > __might_resched+0x134/0x168 > rt_spin_lock+0x5c/0xe0 > v3d_job_update_stats+0x64/0x1d0 [v3d] > v3d_irq+0xf0/0x410 [v3d] > irq_forced_thread_fn+0x44/0xd8 > irq_thread+0x1ac/0x2d8 > kthread+0x124/0x138 > ret_from_fork+0x10/0x20 > > Fixes: fa6a20c87470 ("drm/v3d: Address race-condition between per-fd GPU stats and fd release") > Signed-off-by: Xiaolei Wang > --- > drivers/gpu/drm/v3d/v3d_sched.c | 15 ++------------- > 1 file changed, 2 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/v3d/v3d_sched.c b/drivers/gpu/drm/v3d/v3d_sched.c > index 6dc871fc9a62..5eaacb1d1480 100644 > --- a/drivers/gpu/drm/v3d/v3d_sched.c > +++ b/drivers/gpu/drm/v3d/v3d_sched.c > @@ -203,24 +203,13 @@ v3d_job_update_stats(struct v3d_job *job, enum v3d_queue q) > u64 now = local_clock(); > unsigned long flags; > > - /* See comment in v3d_job_start_stats() */ > - if (IS_ENABLED(CONFIG_LOCKDEP)) > - local_irq_save(flags); > - else > - preempt_disable(); > - > /* Don't update the local stats if the file context has already closed */ > - spin_lock(&queue->queue_lock); > + spin_lock_irqsave(&queue->queue_lock, flags); > if (job->file_priv) > v3d_stats_update(&job->file_priv->stats[q], now); > - spin_unlock(&queue->queue_lock); > + spin_unlock_irqrestore(&queue->queue_lock, flags); > > v3d_stats_update(global_stats, now); > - > - if (IS_ENABLED(CONFIG_LOCKDEP)) > - local_irq_restore(flags); > - else > - preempt_enable(); > } > > static struct dma_fence *v3d_bin_job_run(struct drm_sched_job *sched_job)