提交 2bace8b9 编写于 作者: C Christian Thaeter 提交者: Jiri Kosina

trivial: doc: hpfall: reduce risk that hpfall can do harm

Improve the example code to be at least useable, as in not causing
harm (as shown below). Code can still be improved further, but this
adds some basic safeguards.

1. hpfall *MUST* mlockall(MCL_CURRENT|MCL_FUTURE); itself!
Since the Program sits and waits most of the time it becomes very likely
swapped out. If it gets woken up when the laptop drops from the table
while it is swapped out it actually triggers harddrive activity!

2. Daemonize hpfall using 'daemon(0,0)' (quick and dirty).

3. Give hpfall realtime priority.
Should give a chance that it has less latency when woken up.
Signed-off-by: NChristian Thaeter <ct@pipapo.org>
Signed-off-by: NFrans Pop <elendil@planet.nl>
Acked-by: NPavel Machek <pavel@ucw.cz>
Signed-off-by: NJiri Kosina <jkosina@suse.cz>
上级 8103b5cc
无相关合并请求
......@@ -16,6 +16,8 @@
#include <stdint.h>
#include <errno.h>
#include <signal.h>
#include <sys/mman.h>
#include <sched.h>
void write_int(char *path, int i)
{
......@@ -62,6 +64,7 @@ void ignore_me(void)
int main(int argc, char *argv[])
{
int fd, ret;
struct sched_param param;
fd = open("/dev/freefall", O_RDONLY);
if (fd < 0) {
......@@ -69,6 +72,11 @@ int main(int argc, char *argv[])
return EXIT_FAILURE;
}
daemon(0, 0);
param.sched_priority = sched_get_priority_max(SCHED_FIFO);
sched_setscheduler(0, SCHED_FIFO, &param);
mlockall(MCL_CURRENT|MCL_FUTURE);
signal(SIGALRM, ignore_me);
for (;;) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部