From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
To: "jackson.lee" <jackson.lee@chipsnmedia.com>,
"mchehab@kernel.org" <mchehab@kernel.org>,
"hverkuil-cisco@xs4all.nl" <hverkuil-cisco@xs4all.nl>,
"bob.beckett@collabora.com" <bob.beckett@collabora.com>
Cc: "linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"lafley.kim" <lafley.kim@chipsnmedia.com>,
"b-brnich@ti.com" <b-brnich@ti.com>,
"hverkuil@xs4all.nl" <hverkuil@xs4all.nl>,
Nas Chung <nas.chung@chipsnmedia.com>
Subject: Re: [PATCH v2 4/7] media: chips-media: wave5: Use spinlock whenever statue is changed
Date: Wed, 28 May 2025 09:49:18 -0400 [thread overview]
Message-ID: <43d3d88e292c3aaf25eda8514451ef1949612620.camel@collabora.com> (raw)
In-Reply-To: <SE1P216MB130368B2DDB6A235D2603E04ED64A@SE1P216MB1303.KORP216.PROD.OUTLOOK.COM>
Le mardi 27 mai 2025 à 05:02 +0000, jackson.lee a écrit :
> Hi Nicolas
>
> > -----Original Message-----
> > From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
> > Sent: Saturday, May 24, 2025 2:41 AM
> > To: jackson.lee <jackson.lee@chipsnmedia.com>; mchehab@kernel.org;
> > hverkuil-cisco@xs4all.nl; sebastian.fricke@collabora.com;
> > bob.beckett@collabora.com; dafna.hirschfeld@collabora.com
> > Cc: linux-media@vger.kernel.org; linux-kernel@vger.kernel.org; lafley.kim
> > <lafley.kim@chipsnmedia.com>; b-brnich@ti.com; hverkuil@xs4all.nl; Nas
> > Chung <nas.chung@chipsnmedia.com>
> > Subject: Re: [PATCH v2 4/7] media: chips-media: wave5: Use spinlock
> > whenever statue is changed
> >
> > Hi,
> >
> > Le jeudi 22 mai 2025 à 16:26 +0900, Jackson.lee a écrit :
> > > From: Jackson Lee <jackson.lee@chipsnmedia.com>
> > >
> > > The device_run and finish_decode is not any more synchronized, so lock
> > > was needed in the device_run whenever state was changed.
> >
> > Can you try to introduce the locking ahead of the patches, otherwise this
> > break bisectability as the in-between become racy.
>
>
> Do you want to introduce this patch ahead of the performance patch?
I'm sure you can find the right anwser if you understand why I'm asking this. The way
patchset should be layout is so that at any step applying the set, the driver
should remain stable. If one patch above breaks something, and you fix it in the
next patch, this is not a bisectable set.
git bisect does not know about "sets" and shouldn't need to know about it either.
regards,
Nicolas
>
> Thanks
> Jackson
>
> >
> > Nicolas
> >
> > >
> > > Signed-off-by: Jackson Lee <jackson.lee@chipsnmedia.com>
> > > Signed-off-by: Nas Chung <nas.chung@chipsnmedia.com>
> > > ---
> > > drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c | 8 +++++++-
> > > 1 file changed, 7 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> > > b/drivers/media/platform/chips- media/wave5/wave5-vpu-dec.c index
> > > 42981c3b49bc..719c5527eb7f 100644
> > > --- a/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> > > +++ b/drivers/media/platform/chips-media/wave5/wave5-vpu-dec.c
> > > @@ -1577,6 +1577,7 @@ static void wave5_vpu_dec_device_run(void *priv)
> > > struct queue_status_info q_status;
> > > u32 fail_res = 0;
> > > int ret = 0;
> > > + unsigned long flags;
> > >
> > > dev_dbg(inst->dev->dev, "%s: Fill the ring buffer with new
> > bitstream data", __func__);
> > > pm_runtime_resume_and_get(inst->dev->dev);
> > > @@ -1617,7 +1618,9 @@ static void wave5_vpu_dec_device_run(void *priv)
> > > }
> > > spin_unlock_irqrestore(&inst->state_spinlock, flags);
> > > } else {
> > > + spin_lock_irqsave(&inst->state_spinlock, flags);
> > > switch_state(inst, VPU_INST_STATE_INIT_SEQ);
> > > + spin_unlock_irqrestore(&inst->state_spinlock, flags);
> > > }
> > >
> > > break;
> > > @@ -1628,8 +1631,9 @@ static void wave5_vpu_dec_device_run(void *priv)
> > > * we had a chance to switch, which leads to an invalid state
> > > * change.
> > > */
> > > + spin_lock_irqsave(&inst->state_spinlock, flags);
> > > switch_state(inst, VPU_INST_STATE_PIC_RUN);
> > > -
> > > + spin_unlock_irqrestore(&inst->state_spinlock, flags);
> > > /*
> > > * During DRC, the picture decoding remains pending, so just
> > leave the job
> > > * active until this decode operation completes.
> > > @@ -1643,7 +1647,9 @@ static void wave5_vpu_dec_device_run(void *priv)
> > > ret = wave5_prepare_fb(inst);
> > > if (ret) {
> > > dev_warn(inst->dev->dev, "Framebuffer preparation,
> > fail: %d\n",
> > > ret);
> > > + spin_lock_irqsave(&inst->state_spinlock, flags);
> > > switch_state(inst, VPU_INST_STATE_STOP);
> > > + spin_unlock_irqrestore(&inst->state_spinlock, flags);
> > > break;
> > > }
> > >
next prev parent reply other threads:[~2025-05-28 13:49 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-22 7:25 [PATCH v2 0/7] Performance improvement of decoder Jackson.lee
2025-05-22 7:26 ` [PATCH v2 1/7] media: chips-media: wave5: Fix Null reference while testing fluster Jackson.lee
2025-05-23 17:20 ` Nicolas Dufresne
2025-05-27 4:05 ` jackson.lee
2025-05-27 12:57 ` Nicolas Dufresne
2025-05-22 7:26 ` [PATCH v2 2/7] media: chips-media: wave5: Improve performance of decoder Jackson.lee
2025-05-23 17:39 ` Nicolas Dufresne
2025-05-27 4:58 ` jackson.lee
2025-05-28 13:46 ` Nicolas Dufresne
2025-06-04 4:09 ` jackson.lee
2025-06-04 13:47 ` Nicolas Dufresne
2025-06-05 4:50 ` jackson.lee
2025-06-05 13:28 ` Nicolas Dufresne
2025-06-09 8:47 ` jackson.lee
2025-05-30 14:33 ` Nicolas Dufresne
2025-05-22 7:26 ` [PATCH v2 3/7] media: chips-media: wave5: Fix not to be closed Jackson.lee
2025-05-22 7:26 ` [PATCH v2 4/7] media: chips-media: wave5: Use spinlock whenever statue is changed Jackson.lee
2025-05-23 17:41 ` Nicolas Dufresne
2025-05-27 5:02 ` jackson.lee
2025-05-28 13:49 ` Nicolas Dufresne [this message]
2025-05-22 7:26 ` [PATCH v2 5/7] media: chips-media: wave5: Fix not to free resources normally when instance was destroyed Jackson.lee
2025-05-23 17:42 ` Nicolas Dufresne
2025-05-27 5:04 ` jackson.lee
2025-05-22 7:26 ` [PATCH v2 6/7] media: chips-media: wave5: Reduce high CPU load Jackson.lee
2025-05-23 17:43 ` Nicolas Dufresne
2025-05-27 5:05 ` jackson.lee
2025-05-22 7:26 ` [PATCH v2 7/7] media: chips-media: wave5: Fix SError of kernel panic when closed Jackson.lee
2025-05-23 17:48 ` Nicolas Dufresne
2025-05-27 5:07 ` jackson.lee
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=43d3d88e292c3aaf25eda8514451ef1949612620.camel@collabora.com \
--to=nicolas.dufresne@collabora.com \
--cc=b-brnich@ti.com \
--cc=bob.beckett@collabora.com \
--cc=hverkuil-cisco@xs4all.nl \
--cc=hverkuil@xs4all.nl \
--cc=jackson.lee@chipsnmedia.com \
--cc=lafley.kim@chipsnmedia.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=nas.chung@chipsnmedia.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®