disabling sleep when shutting down
Colin Percival
cperciva at freebsd.org
Wed Sep 23 08:29:02 UTC 2015
On 09/22/15 12:13, Jung-uk Kim wrote:
>> I didn't want to pollute init with arch-dependent hacks. Anyway,
>> the attached patch should do what you want (not tested).
>
> Or a simpler hack with sysctl(3) instead of ioctl(2).
Right, this is more like what I was thinking. (I can write patches myself
btw -- I was asking for help with figuring out the right solution, not with
the coding itself!)
A couple things I'm not sure about though:
> + /* Temporarily block any suspend requests. */
> + len = sizeof(blocked);
> + block = 1;
> + if (sysctlbyname("debug.acpi.sleep_blocked", &blocked, &len,
> + &block, sizeof(block)) == -1)
> + blocked = 0;
Wouldn't it make sense to wrap this in "if (Reboot)"? That way it would block
suspend for poweroff / halt / reboot, but not for dropping to single-user
mode.
> +#if defined(__amd64__) || defined(__i386__)
> + /* Unblock suspend requests. */
> + if (!blocked)
> + sysctlbyname("debug.acpi.sleep_blocked", NULL, NULL,
> + &blocked, sizeof(blocked));
> +#endif
> +
And if we restrict the blocking to only happen if (Reboot), is there any point
unblocking suspend when we're about to call reboot(2)?
--
Colin Percival
Security Officer Emeritus, FreeBSD | The power to serve
Founder, Tarsnap | www.tarsnap.com | Online backups for the truly paranoid
More information about the freebsd-acpi
mailing list