mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sudeep Holla <sudeep.holla@arm.com>
To: Jassi Brar <jassisinghbrar@gmail.com>
Cc: Sudeep Holla <sudeep.holla@arm.com>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	Jassi Brar <jaswinder.singh@linaro.org>,
	Alexey Klimov <alexey.klimov@arm.com>
Subject: Re: [PATCH 1/3] mailbox: always wait in mbox_send_message for blocking Tx mode
Date: Wed, 29 Mar 2017 12:34:06 +0100	[thread overview]
Message-ID: <5f5d3202-1e67-9569-21a2-5a676bb45617@arm.com> (raw)
In-Reply-To: <CABb+yY3hgNYPO0Ksot5ZrPEEk5cOYhvbqE9jBQUPRF+dzaEtMQ@mail.gmail.com>


On 28/03/17 19:20, Jassi Brar wrote:
> Hi Sudeep,
> 
> On Tue, Mar 21, 2017 at 5:00 PM, Sudeep Holla <sudeep.holla@arm.com> wrote:
>> There exists a race when msg_submit return immediately as there was an
>> active request being processed which may have completed just before it's
>> checked again in mbox_send_message. This will result in return to the
>> caller without waiting in mbox_send_message even when it's blocking Tx.
>>
>> This patch fixes the issue by waiting for the completion always if Tx
>> is in blocking mode.
>>
>> Fixes: 2b6d83e2b8b7 ("mailbox: Introduce framework for mailbox")
>> Cc: Jassi Brar <jassisinghbrar@gmail.com>
>> Reported-by: Alexey Klimov <alexey.klimov@arm.com>
>> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
>> ---
>>  drivers/mailbox/mailbox.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> Hi Jassi,
>>
>> Here are fixes for few issues we encountered when dealing with multiple
>> requests on multiple channels simultaneously.
>>
> Thanks for finding the bug.
> 
> I see patch-1 tries to fix the bug.  Patch-2,3 try to fix the
> ramifications of the bug but they may change behaviour for some users.
> Do you face any issue even after applying patch-1 ?
> 

Unfortunately yes. Are you concerned with the change in return value on
timeout ? I understand and then I chose -ETIME vs -ETIMEDOUT as hardware
can still use it and we can distinguish the software timer expiry from
that. Even -EIO seems incorrect for s/w timeout as it exists today, but
I agree it has some impact on existing users.

Also Patch 3 seems independent for me just to avoid complete call if it
was empty message.

Alexey also brought up another issue which is relating to ordering and
may require completion flags per message instead of per channel. Today
we can't guarantee that first blocker on the wait queue is same as the
first in the mailbox queue.

e.g.:
	Thread#1(T1)		   Thread#2(T2)
     mbox_send_message		 mbox_send_message
            |				|
	    V				|
	add_to_rbuf(M1)			V
	    |			  add_to_rbuf(M2)
	    |				|
	    |				V
	    V			   msg_submit(picks M1)
	msg_submit			|
	    |				V
	    V			wait_for_completion(on M2)
     wait_for_completion(on M1)		|  (1st in waitQ)
     	    |	(2nd in waitQ)		V
     	    V			wake_up(on completion of M1)<--incorrect

I will let him dive in as he had some thoughts on that.

-- 
Regards,
Sudeep

  reply	other threads:[~2017-03-29 11:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-21 11:30 Sudeep Holla
2017-03-21 11:30 ` [PATCH 2/3] mailbox: skip complete wait event if timer expired Sudeep Holla
2017-03-21 11:30 ` [PATCH 3/3] mailbox: handle empty message in tx_tick Sudeep Holla
2017-03-28 18:20 ` [PATCH 1/3] mailbox: always wait in mbox_send_message for blocking Tx mode Jassi Brar
2017-03-29 11:34   ` Sudeep Holla [this message]
2017-03-29 17:46     ` Jassi Brar
2017-04-11 13:00 ` Alexey Klimov

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=5f5d3202-1e67-9569-21a2-5a676bb45617@arm.com \
    --to=sudeep.holla@arm.com \
    --cc=alexey.klimov@arm.com \
    --cc=jassisinghbrar@gmail.com \
    --cc=jaswinder.singh@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    /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®