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

Re: [PATCH v2 08/45] kernel: Add combined power-off+restart handler call chain API



28.10.2021 12:59, Rafael J. Wysocki пишет:
>> +#define RESTART_PRIO_RESERVED          0
>> +#define RESTART_PRIO_DEFAULT           128
>> +#define RESTART_PRIO_HIGH              192
>>
>>  enum reboot_mode {
>>         REBOOT_UNDEFINED = -1,
>> @@ -49,6 +55,167 @@ int register_restart_handler(struct notifier_block *);
>>  int unregister_restart_handler(struct notifier_block *);
>>  void do_kernel_restart(char *cmd);
>>
>> +/*
>> + * Unified poweroff + restart API.
>> + */
>> +
>> +#define POWEROFF_PRIO_RESERVED         0
>> +#define POWEROFF_PRIO_PLATFORM         1
>> +#define POWEROFF_PRIO_DEFAULT          128
>> +#define POWEROFF_PRIO_HIGH             192
>> +#define POWEROFF_PRIO_FIRMWARE         224
> Also I'm wondering why these particular numbers were chosen, here and above?

These values are chosen based on priorities that drivers already use. I looked 
thorough them all and ended with this scheme that fulfills the needs of the 
current API users.

I'll add these comments in v3:

/*
 * Standard restart priority levels. Intended to be set in the
 * sys_off_handler.restart_priority field.
 *
 * Use `RESTART_PRIO_XXX +- prio` style for additional levels.
 *
 * RESTART_PRIO_RESERVED:       Falls back to RESTART_PRIO_DEFAULT.
 *                              Drivers may leave priority initialized
 *                              to zero, to auto-set it to the default level.
 *
 * RESTART_PRIO_DEFAULT:        Use this for generic handler.
 *
 * RESTART_PRIO_HIGH:           Use this if you have multiple handlers and
 *                              this handler has higher priority than the
 *                              default handler.
 */

/*
 * Standard power-off priority levels. Intended to be set in the
 * sys_off_handler.power_off_priority field.
 *
 * Use `POWEROFF_PRIO_XXX +- prio` style for additional levels.
 *
 * POWEROFF_PRIO_RESERVED:      Falls back to POWEROFF_PRIO_DEFAULT.
 *                              Drivers may leave priority initialized
 *                              to zero, to auto-set it to the default level.
 *
 * POWEROFF_PRIO_PLATFORM:      Intended to be used by platform-level handler.
 *                              Has lowest priority since device drivers are
 *                              expected to take over platform handler which
 *                              doesn't allow further callback chaining.
 *
 * POWEROFF_PRIO_DEFAULT:       Use this for generic handler.
 *
 * POWEROFF_PRIO_HIGH:          Use this if you have multiple handlers and
 *                              this handler has higher priority than the
 *                              default handler.
 *
 * POWEROFF_PRIO_FIRMWARE:      Use this if handler uses firmware call.
 *                              Has highest priority since firmware is expected
 *                              to know best how to power-off hardware properly.
 */



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.