小编Pri*_*les的帖子

是否在Ubuntu 16.04中正式支持SCHED_DEADLINE?

目前我正在运行Ubuntu 16.04,Linux内核版本为4.16.我编写了一个虚拟程序,将其调度程序更改为SCHED_DEADLINE.但是当我尝试编译它时,它找不到SCHED_DEADLINE所需的结构和宏的定义.大多数代码段都是从这里获取的(第24页).以下是测试程序:

#define _GNU_SOURCE
#include <pthread.h>
#include <stdlib.h> 
#include <stdio.h> 
#include <string.h> 
#include <sched.h> 


int main(int argc, char* argv[]) {

    struct sched_attr attr;
    attr.size = sizeof(attr);
    attr.sched_policy = SCHED_DEADLINE;
    attr.sched_runtime = 30000000;
    attr.sched_period = 100000000;
    attr.sched_deadline = attr.sched_period;
    if (sched_setattr(gettid(), &attr, 0))
        perror("sched_setattr()");

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这是编译的输出:

sched_deadline.c: In function ‘main’:
sched_deadline.c:11:20: error: storage size of ‘attr’ isn’t known
  struct sched_attr attr;
                    ^
sched_deadline.c:12:21: error: invalid application of ‘sizeof’ to incomplete type ‘struct attr’
  attr.size = sizeof(struct attr); …
Run Code Online (Sandbox Code Playgroud)

c linux linux-kernel sched-deadline ubuntu-16.04

6
推荐指数
1
解决办法
452
查看次数

标签 统计

c ×1

linux ×1

linux-kernel ×1

sched-deadline ×1

ubuntu-16.04 ×1