From: Bjorn Andersson <bjorn.andersson@linaro.org>
To: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Alexey Klimov <alexey.klimov@arm.com>,
Sudeep Holla <sudeep.holla@arm.com>
Subject: Re: [PATCH] mailbox: txdone_method shouldn't always be reset
Date: Thu, 16 Nov 2017 23:04:00 -0800 [thread overview]
Message-ID: <20171117070400.GV28761@minitux> (raw)
In-Reply-To: <CABb+yY0nSnkYQtL28UwsqRCRkaZHSU2O-RM9r=50n0n7Owkf+A@mail.gmail.com>
On Thu 16 Nov 22:47 PST 2017, Jassi Brar wrote:
> On 16 Nov 2017 23:12, "Bjorn Andersson" <bjorn.andersson@linaro.org> wrote:
> On Thu 16 Nov 09:06 PST 2017, Jassi Brar wrote:
> > diff --git a/drivers/mailbox/mailbox.c b/drivers/mailbox/mailbox.c
> > index 674b35f..95e480e 100644
> > --- a/drivers/mailbox/mailbox.c
> > +++ b/drivers/mailbox/mailbox.c
> > @@ -124,7 +124,8 @@ static enum hrtimer_restart txdone_hrtimer(struct
> > hrtimer *hrtimer)
> > for (i = 0; i < mbox->num_chans; i++) {
> > struct mbox_chan *chan = &mbox->chans[i];
> >
> > - if (chan->active_req && chan->cl) {
> > + if (chan->active_req && chan->cl &&
> > + chan->txdone_method == TXDONE_BY_POLL) {
>
> The hrtimer code will crash before reaching this point if the channel
> wasn't TXDONE_BY_POLL when it was created, so this part is not needed.
>
>
> We have one timer for all channels of a controller. While this channel may
> be run by ACK, some other might need to be POLLed. And we want to avoid
> polling this channel.
>
Oh, you're right.
But the fact that the timer function will poll channels that are
"upgraded" to ACK is a separate issue.
>
> > txdone = chan->mbox->ops->last_tx_done(chan);
> > if (txdone)
> > tx_tick(chan, 0);
> > @@ -418,7 +419,7 @@ void mbox_free_channel(struct mbox_chan *chan)
> > spin_lock_irqsave(&chan->lock, flags);
> > chan->cl = NULL;
> > chan->active_req = NULL;
> > - if (chan->txdone_method == TXDONE_BY_ACK)
> > + if (chan->txdone_method == TXDONE_BY_ACK &&
> chan->mbox->txdone_poll)
>
> This should be enough, but the logic here is not obvious. This relies on
> the fact that a mbox with txdone_poll would have been initialized as
> txdone = POLL and that txdone now being ACK would imply that it was
> "upgraded" in the request path.
>
> So at least this would have to be captured in a comment.
>
>
> Sure I'll add a comment.
>
Thanks
Regards,
Bjorn
next prev parent reply other threads:[~2017-11-17 7:04 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-16 5:31 [PATCH] mailbox: txdone_method shouldn't always be reset Bjorn Andersson
2017-11-16 16:51 ` Jassi Brar
2017-11-16 17:06 ` Jassi Brar
2017-11-16 17:42 ` Bjorn Andersson
[not found] ` <CABb+yY0cwDCG=zKBT1ckoLSi+cHnmxcNbi2BXz2EstVTAo169w@mail.gmail.com>
[not found] ` <CABb+yY0SmdLyo7g46VqznHZravBv7qUTZcuQ5o4v+4QGMw-pyQ@mail.gmail.com>
[not found] ` <CABb+yY0EkKUMfLrQs4OjHkVPKghKND6hChfzmjS60asTrAcYyg@mail.gmail.com>
[not found] ` <CABb+yY0GkRpPgAgAFOMxLJ_7qh4wV7R5At8VFOxepuEN76K1QQ@mail.gmail.com>
[not found] ` <CABb+yY0nSnkYQtL28UwsqRCRkaZHSU2O-RM9r=50n0n7Owkf+A@mail.gmail.com>
2017-11-17 7:04 ` Bjorn Andersson [this message]
2017-11-17 9:51 ` Sudeep Holla
2017-11-17 12:40 ` Jassi Brar
2017-11-16 17:24 ` Sudeep Holla
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=20171117070400.GV28761@minitux \
--to=bjorn.andersson@linaro.org \
--cc=alexey.klimov@arm.com \
--cc=jassisinghbrar@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=sudeep.holla@arm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.