【问题标题】:Linux suspend/resume operations' userspace notificationLinux 暂停/恢复操作的用户空间通知
【发布时间】:2016-08-08 16:35:20
【问题描述】:

我正在开发嵌入式 linux 平台。

当我执行 "echo "mem" > /sys/power/state" 时,系统将暂停。

我知道内核和驱动程序可以知道挂起操作即将到来。但是用户空间进程或应用程序是否有可能收到系统将暂停的通知?怎么样?

例如,我有一个应用程序将“A”连续写入缓冲区,缓冲区的起始地址由设备驱动程序提供。是否有可能通知该应用程序系统将暂停,以便它可以用“B”替换所有这些缓冲区,以便当驱动程序恢复时,驱动程序看到的所有内容都是“B”?

非常感谢。

【问题讨论】:

    标签: linux linux-kernel power-management netlink userspace


    【解决方案1】:

    一直在寻找相同的东西。但不幸的是,我在暂停/恢复期间没有找到任何用户空间通知。应用程序只是冷藏/冷冻,他们永远不会知道自己已被暂停。

    但是,一种可能的方法是从您可以修改的任何驱动程序的挂起/恢复函数中添加通用网络链接消息发送或 uevent。应用程序在冻结之前可能永远无法获得足够的时间来处理它,并可能导致竞争条件。假设它收到了暂停消息并在处理它之前被冻结。一旦恢复,它将处理挂起消息。

    IMO,最好在驱动程序中处理场景。保留用户空间。

    【讨论】:

    • 非常感谢。我应该早点回复你的xD。我一直在寻找这个很长时间,但没有找到任何东西。最后我得出一个结论,应用程序将被冻结,对暂停一无所知。
    【解决方案2】:

    我不确定它是否对您特别有用,因为提到了“嵌入式”,但是 systemd 可以通过 DBus 通知您:https://www.freedesktop.org/wiki/Software/systemd/inhibit/

    【讨论】:

      猜你喜欢
      • 2012-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多