Re: [PATCH v3] soc: qcom: rpmh: Remove serialization of TCS commands

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

On Thu, Jan 7, 2021 at 12:39 AM Maulik Shah <mkshah@xxxxxxxxxxxxxx> wrote:
>
> From: Lina Iyer <ilina@xxxxxxxxxxxxxx>
>
> Requests sent to RPMH can be sent as fire-n-forget or response required,
> with the latter ensuring the command has been completed by the hardware
> accelerator. Commands in a request with tcs_cmd::wait set, would ensure
> that those select commands are sent as response required, even though
> the actual TCS request may be fire-n-forget.
>
> Also, commands with .wait flag were also guaranteed to be complete
> before the following command in the TCS is sent. This means that the
> next command of the same request blocked until the current request is
> completed. This could mean waiting for a voltage to settle or series of
> NOCs be configured before the next command is sent. But drivers using
> this feature have never cared about the serialization aspect. By not
> enforcing the serialization we can allow the hardware to run in parallel
> improving the performance.
>
> Let's clarify the usage of this member in the tcs_cmd structure to mean
> only completion and not serialization. This should also improve the
> performance of bus requests where changes could happen in parallel.
> Also, CPU resume from deep idle may see benefits from certain wake
> requests.
>
> Signed-off-by: Lina Iyer <ilina@xxxxxxxxxxxxxx>
> Signed-off-by: Maulik Shah <mkshah@xxxxxxxxxxxxxx>
> ---
> Changes in v3:
> - Update the comment in include/soc/qcom/tcs.h
> - Update to keep req->wait_for_compl as is irq handler
>
> Changes in v2:
> - Add SoB of self
> - Fix typo in comment
> - Update comment as Doug suggested
> - Remove write to RSC_DRV_CMD_WAIT_FOR_CMPL in tcs_write() and
>   tcs_invalidate()
> ---
>  drivers/soc/qcom/rpmh-rsc.c | 22 +++++++++-------------
>  include/soc/qcom/tcs.h      |  9 ++++++++-
>  2 files changed, 17 insertions(+), 14 deletions(-)

Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux