mbox series

[RFC,v2,0/2] Add driver for PAPR watchdog timers

Message ID 20220509174357.5448-1-cheloha@linux.ibm.com (mailing list archive)
Headers show
Series Add driver for PAPR watchdog timers | expand

Message

Scott Cheloha May 9, 2022, 5:43 p.m. UTC
This second RFC incorporates feedback from the previous RFC:

https://lore.kernel.org/linux-watchdog/20220413165104.179144-1-cheloha@linux.ibm.com/

v2 changes of note:

- Add a firmware feature flag for the H_WATCHDOG feature,
  FW_FEATURE_WATCHDOG.

- Register a platform_device for the first watchdog timer during a
  pseries initcall if we have FW_FEATURE_WATCHDOG.  Use id zero, as
  there could be more than one timer in the future.

- Alphabetize Makefile changes.

- Add missing copyright information to pseries-wdt.c.

- Add an 'action' module parameter that configures how the guest is
  terminated on watchdog expiration.

- Use dev_*() for logging critical errors instead of pr_*().

- Handle the H_NOOP case when trying to stop the watchdog.  If the 
  given watchdog is not actually running, H_WATCHDOG returns H_NOOP.
  This is harmless, so we should treat it as a success.

- We don't need pseries_wdt_remove() at all.

- Check watchdog_active() before stopping/starting the timer across
  suspend/resume.

- Consolidate all code from pseries_wdt_module_init() into
  pseries_wdt_probe().  We can then use module_platform_driver().

I have one lingering question:

- The pseries-wdt module is not "automatically" loaded during boot.

  When I do

	# modprobe pseries-wdt

  the driver attaches to the platform bus as expected and the
  /dev/watchdog* devices for the pseries-wdt.0 platform device
  are created.

  I was under the impression that driver/device matching for
  the platform bus was simple string comparison.

  ... what am I doing wrong?  Is this expected behavior?  Do
  I need to do additional configuration to get the module to
  load automatically at boot time?

Comments

Alexey Kardashevskiy May 11, 2022, 5:38 a.m. UTC | #1
You should cc: linuxppc-dev@lists.ozlabs.org this. Thanks,

On 5/10/22 03:43, Scott Cheloha wrote:
> This second RFC incorporates feedback from the previous RFC:
> 
> https://lore.kernel.org/linux-watchdog/20220413165104.179144-1-cheloha@linux.ibm.com/
> 
> v2 changes of note:
> 
> - Add a firmware feature flag for the H_WATCHDOG feature,
>    FW_FEATURE_WATCHDOG.
> 
> - Register a platform_device for the first watchdog timer during a
>    pseries initcall if we have FW_FEATURE_WATCHDOG.  Use id zero, as
>    there could be more than one timer in the future.
> 
> - Alphabetize Makefile changes.
> 
> - Add missing copyright information to pseries-wdt.c.
> 
> - Add an 'action' module parameter that configures how the guest is
>    terminated on watchdog expiration.
> 
> - Use dev_*() for logging critical errors instead of pr_*().
> 
> - Handle the H_NOOP case when trying to stop the watchdog.  If the
>    given watchdog is not actually running, H_WATCHDOG returns H_NOOP.
>    This is harmless, so we should treat it as a success.
> 
> - We don't need pseries_wdt_remove() at all.
> 
> - Check watchdog_active() before stopping/starting the timer across
>    suspend/resume.
> 
> - Consolidate all code from pseries_wdt_module_init() into
>    pseries_wdt_probe().  We can then use module_platform_driver().
> 
> I have one lingering question:
> 
> - The pseries-wdt module is not "automatically" loaded during boot.
> 
>    When I do
> 
> 	# modprobe pseries-wdt
> 
>    the driver attaches to the platform bus as expected and the
>    /dev/watchdog* devices for the pseries-wdt.0 platform device
>    are created.
> 
>    I was under the impression that driver/device matching for
>    the platform bus was simple string comparison.
> 
>    ... what am I doing wrong?  Is this expected behavior?  Do
>    I need to do additional configuration to get the module to
>    load automatically at boot time?
>