mbox series

[v6,00/16] remoteproc: Add support for detaching a remote processor

Message ID 20210223233515.3468677-1-mathieu.poirier@linaro.org (mailing list archive)
Headers show
Series remoteproc: Add support for detaching a remote processor | expand

Message

Mathieu Poirier Feb. 23, 2021, 11:34 p.m. UTC
Following the work done here [1], this set provides support for the
remoteproc core to release resources associated with a remote processor
without having to switch it off. That way a platform driver can be removed
or the application processor power cycled while the remote processor is
still operating.

Modifications for this revision are detailed in the changelog of each patch
but the main difference is that going from RPROC_RUNNING -> RPROC_DETACHED
is no longer supported to avoid dealing tricky resource table issues.

Applies cleanly on rproc-next (e8b4e9a21af7).  I will rebase on 5.12-rc1 when it
comes out next week.

Thanks,
Mathieu

Arnaud POULIQUEN (1):
  remoteproc: stm32: Move memory parsing to rproc_ops

Mathieu Poirier (15):
  remoteproc: Remove useless check in rproc_del()
  remoteproc: Rename function rproc_actuate()
  remoteproc: Add new RPROC_ATTACHED state
  remoteproc: Properly represent the attached state
  remoteproc: Add new get_loaded_rsc_table() to rproc_ops
  remoteproc: stm32: Move resource table setup to rproc_ops
  remoteproc: Add new detach() remoteproc operation
  remoteproc: Introduce function __rproc_detach()
  remoteproc: Introduce function rproc_detach()
  remoteproc: Properly deal with the resource table when attached
  remoteproc: Properly deal with a kernel panic when attached
  remoteproc: Properly deal with a start request when attached
  remoteproc: Properly deal with a stop request when attached
  remoteproc: Properly deal with a detach request when attached
  remoteproc: Refactor rproc delete and cdev release path

 drivers/remoteproc/remoteproc_cdev.c     |  21 +-
 drivers/remoteproc/remoteproc_core.c     | 263 ++++++++++++++++++++---
 drivers/remoteproc/remoteproc_internal.h |  10 +
 drivers/remoteproc/remoteproc_sysfs.c    |  17 +-
 drivers/remoteproc/stm32_rproc.c         | 168 +++++++--------
 include/linux/remoteproc.h               |  21 +-
 6 files changed, 362 insertions(+), 138 deletions(-)

Comments

Arnaud POULIQUEN Feb. 26, 2021, 4:40 p.m. UTC | #1
Hi Mathieu,

On 2/24/21 12:34 AM, Mathieu Poirier wrote:
> Following the work done here [1], this set provides support for the
> remoteproc core to release resources associated with a remote processor
> without having to switch it off. That way a platform driver can be removed
> or the application processor power cycled while the remote processor is
> still operating.
> 
> Modifications for this revision are detailed in the changelog of each patch
> but the main difference is that going from RPROC_RUNNING -> RPROC_DETACHED
> is no longer supported to avoid dealing tricky resource table issues.

This seems reasonable to me. If necessary, this could be part of a separate series.

From test point of view, it is working pretty well on my side.

Thanks,
Arnaud

> 
> Applies cleanly on rproc-next (e8b4e9a21af7).  I will rebase on 5.12-rc1 when it
> comes out next week.
> 
> Thanks,
> Mathieu
> 
> Arnaud POULIQUEN (1):
>   remoteproc: stm32: Move memory parsing to rproc_ops
> 
> Mathieu Poirier (15):
>   remoteproc: Remove useless check in rproc_del()
>   remoteproc: Rename function rproc_actuate()
>   remoteproc: Add new RPROC_ATTACHED state
>   remoteproc: Properly represent the attached state
>   remoteproc: Add new get_loaded_rsc_table() to rproc_ops
>   remoteproc: stm32: Move resource table setup to rproc_ops
>   remoteproc: Add new detach() remoteproc operation
>   remoteproc: Introduce function __rproc_detach()
>   remoteproc: Introduce function rproc_detach()
>   remoteproc: Properly deal with the resource table when attached
>   remoteproc: Properly deal with a kernel panic when attached
>   remoteproc: Properly deal with a start request when attached
>   remoteproc: Properly deal with a stop request when attached
>   remoteproc: Properly deal with a detach request when attached
>   remoteproc: Refactor rproc delete and cdev release path
> 
>  drivers/remoteproc/remoteproc_cdev.c     |  21 +-
>  drivers/remoteproc/remoteproc_core.c     | 263 ++++++++++++++++++++---
>  drivers/remoteproc/remoteproc_internal.h |  10 +
>  drivers/remoteproc/remoteproc_sysfs.c    |  17 +-
>  drivers/remoteproc/stm32_rproc.c         | 168 +++++++--------
>  include/linux/remoteproc.h               |  21 +-
>  6 files changed, 362 insertions(+), 138 deletions(-)
>
Mathieu Poirier March 1, 2021, 6:58 p.m. UTC | #2
On Fri, Feb 26, 2021 at 05:40:49PM +0100, Arnaud POULIQUEN wrote:
> Hi Mathieu,
> 
> On 2/24/21 12:34 AM, Mathieu Poirier wrote:
> > Following the work done here [1], this set provides support for the
> > remoteproc core to release resources associated with a remote processor
> > without having to switch it off. That way a platform driver can be removed
> > or the application processor power cycled while the remote processor is
> > still operating.
> > 
> > Modifications for this revision are detailed in the changelog of each patch
> > but the main difference is that going from RPROC_RUNNING -> RPROC_DETACHED
> > is no longer supported to avoid dealing tricky resource table issues.
> 
> This seems reasonable to me. If necessary, this could be part of a separate series.
> 
> From test point of view, it is working pretty well on my side.

Thanks for taking a look a this.
Mathieu

> 
> Thanks,
> Arnaud
> 
> > 
> > Applies cleanly on rproc-next (e8b4e9a21af7).  I will rebase on 5.12-rc1 when it
> > comes out next week.
> > 
> > Thanks,
> > Mathieu
> > 
> > Arnaud POULIQUEN (1):
> >   remoteproc: stm32: Move memory parsing to rproc_ops
> > 
> > Mathieu Poirier (15):
> >   remoteproc: Remove useless check in rproc_del()
> >   remoteproc: Rename function rproc_actuate()
> >   remoteproc: Add new RPROC_ATTACHED state
> >   remoteproc: Properly represent the attached state
> >   remoteproc: Add new get_loaded_rsc_table() to rproc_ops
> >   remoteproc: stm32: Move resource table setup to rproc_ops
> >   remoteproc: Add new detach() remoteproc operation
> >   remoteproc: Introduce function __rproc_detach()
> >   remoteproc: Introduce function rproc_detach()
> >   remoteproc: Properly deal with the resource table when attached
> >   remoteproc: Properly deal with a kernel panic when attached
> >   remoteproc: Properly deal with a start request when attached
> >   remoteproc: Properly deal with a stop request when attached
> >   remoteproc: Properly deal with a detach request when attached
> >   remoteproc: Refactor rproc delete and cdev release path
> > 
> >  drivers/remoteproc/remoteproc_cdev.c     |  21 +-
> >  drivers/remoteproc/remoteproc_core.c     | 263 ++++++++++++++++++++---
> >  drivers/remoteproc/remoteproc_internal.h |  10 +
> >  drivers/remoteproc/remoteproc_sysfs.c    |  17 +-
> >  drivers/remoteproc/stm32_rproc.c         | 168 +++++++--------
> >  include/linux/remoteproc.h               |  21 +-
> >  6 files changed, 362 insertions(+), 138 deletions(-)
> >