Re: [PATCH 4/5] firmware: arm_scmi: smc transport supports multi-message pool
From: Sudeep Holla
Date: Mon Oct 12 2020 - 04:57:58 EST
On Fri, Oct 09, 2020 at 04:17:52PM +0100, Sudeep Holla wrote:
> On Fri, Oct 09, 2020 at 02:43:31PM +0200, Etienne Carriere wrote:
> > On Thu, 8 Oct 2020 at 23:11, Sudeep Holla <sudeep.holla@xxxxxxx> wrote:
> > >
> > > On Thu, Oct 08, 2020 at 04:37:21PM +0200, Etienne Carriere wrote:
> > > > There is no reason for the smc transport to restrict itself to a 1
> > > > message pool. More can be allocated, messages are copied from/to the
> > > > shared memory only on SMC exit/entry hence SCMI driver can play with
> > > > several messages.
> > > >
> > > > Use value of 20 to mimic mailbox transport implementation.
> > >
> > > What is the need to mimic ?
> >
> > I had to pick a value. I can't say whether 2, 5 or 20 is better.
> > I looks how the mailbox transport did and used the same value
> > as it seemed reasonable regarding its memory cost.
> >
> > >
> > > > Any high value could fit. This should be something configurable.
> > >
> > > Why not 10 or 100 ? I see any value other than 1 is useless as we lock
> > > the channel in send_message and we don't maintain a queue like mailbox.
> >
> > I'll check again.
> > Playing with SCMI voltage domain [1], it happens that I needed several
> > preallocated message buffers unless what regulators fail to be probed.
>
>
> I may be missing something but I can't see how, we simply block in
> send_message while mailbox has a queue of 20 which is why it has 20 there.
>
> The issue you are seeing could be different. Let me know if I am missing
> something.
>
OK, I gave this some thought and realise that in-order to allow multiple
requests simultaneously, we do need this value > 1. I will take this
and make some tweaks to the commit log to indicate the same.
--
Regards,
Sudeep