On Tue, 18 Jun 2019, Kurt Kanzenbach wrote: > The system calls for sched_get_attr() and sched_set_attr() are already > implemented. Get rid of the code and use the existing libary. > > Signed-off-by: Kurt Kanzenbach <kurt@xxxxxxxxxxxxx> > --- > src/sched_deadline/cyclicdeadline.c | 36 +------------------ > src/sched_deadline/deadline_test.c | 72 ++----------------------------------- > 2 files changed, 3 insertions(+), 105 deletions(-) > > diff --git a/src/sched_deadline/cyclicdeadline.c b/src/sched_deadline/cyclicdeadline.c > index 47892daf747b..754670c4e7d4 100644 > --- a/src/sched_deadline/cyclicdeadline.c > +++ b/src/sched_deadline/cyclicdeadline.c > @@ -22,31 +22,17 @@ > #include <linux/magic.h> > > #include <rt-utils.h> > +#include <rt-sched.h> > > #ifdef __i386__ > -#ifndef __NR_sched_setattr > -#define __NR_sched_setattr 351 > -#endif > -#ifndef __NR_sched_getattr > -#define __NR_sched_getattr 352 > -#endif > #ifndef __NR_getcpu > #define __NR_getcpu 309 > #endif > #else /* x86_64 */ > -#ifndef __NR_sched_setattr > -#define __NR_sched_setattr 314 > -#endif > -#ifndef __NR_sched_getattr > -#define __NR_sched_getattr 315 > -#endif > #ifndef __NR_getcpu > #define __NR_getcpu 309 > #endif > #endif /* i386 or x86_64 */ > -#ifndef SCHED_DEADLINE > -#define SCHED_DEADLINE 6 > -#endif > > #define _STR(x) #x > #define STR(x) _STR(x) > @@ -58,8 +44,6 @@ > #define CPUSET_LOCAL "my_cpuset" > > #define gettid() syscall(__NR_gettid) > -#define sched_setattr(pid, attr, flags) syscall(__NR_sched_setattr, pid, attr, flags) > -#define sched_getattr(pid, attr, size, flags) syscall(__NR_sched_getattr, pid, attr, size, flags) > #define getcpu(cpup, nodep, unused) syscall(__NR_getcpu, cpup, nodep, unused) > > typedef unsigned long long u64; > @@ -115,24 +99,6 @@ struct sched_data { > char buff[BUFSIZ+1]; > }; > > -struct sched_attr { > - u32 size; > - > - u32 sched_policy; > - u64 sched_flags; > - > - /* SCHED_NORMAL, SCHED_BATCH */ > - s32 sched_nice; > - > - /* SCHED_FIFO, SCHED_RR */ > - u32 sched_priority; > - > - /* SCHED_DEADLINE */ > - u64 sched_runtime; > - u64 sched_deadline; > - u64 sched_period; > -}; > - > static int shutdown; > > static pthread_barrier_t barrier; > diff --git a/src/sched_deadline/deadline_test.c b/src/sched_deadline/deadline_test.c > index b01e3f27e00f..c3b9dceb5209 100644 > --- a/src/sched_deadline/deadline_test.c > +++ b/src/sched_deadline/deadline_test.c > @@ -51,6 +51,8 @@ > #include <linux/unistd.h> > #include <linux/magic.h> > > +#include <rt-sched.h> > + > /** > * usage - show the usage of the program and exit. > * @argv: The program passed in args > @@ -82,43 +84,6 @@ static void usage(char **argv) > exit(-1); > } > > -/* > - * sched_setattr() and sched_getattr() are new system calls. We need to > - * hardcode it here. > - */ > -#if defined(__i386__) > - > -#ifndef __NR_sched_setattr > -#define __NR_sched_setattr 351 > -#endif > -#ifndef __NR_sched_getattr > -#define __NR_sched_getattr 352 > -#endif > - > -#elif defined(__x86_64__) > - > -#ifndef __NR_sched_setattr > -#define __NR_sched_setattr 314 > -#endif > -#ifndef __NR_sched_getattr > -#define __NR_sched_getattr 315 > -#endif > - > -#endif /* i386 or x86_64 */ > - > -#if !defined(__NR_sched_setattr) > -# error "Your arch does not support sched_setattr()" > -#endif > - > -#if !defined(__NR_sched_getattr) > -# error "Your arch does not support sched_getattr()" > -#endif > - > -/* If not included in the headers, define sched deadline policy numbe */ > -#ifndef SCHED_DEADLINE > -#define SCHED_DEADLINE 6 > -#endif > - > #define _STR(x) #x > #define STR(x) _STR(x) > > @@ -140,45 +105,12 @@ static void usage(char **argv) > > /* Define the system call interfaces */ > #define gettid() syscall(__NR_gettid) > -#define sched_setattr(pid, attr, flags) syscall(__NR_sched_setattr, pid, attr, flags) > -#define sched_getattr(pid, attr, size, flags) syscall(__NR_sched_getattr, pid, attr, size, flags) > > typedef unsigned long long u64; > typedef unsigned int u32; > typedef int s32; > > /** > - * struct sched_attr - get/set attr system call descriptor. > - * > - * This is the descriptor defined for setting SCHED_DEADLINE tasks. > - * It will someday be in a header file. > - * > - * The fields specific for deadline: > - * > - * @sched_policy: 6 is for deadline > - * @sched_runtime: The runtime in nanoseconds > - * @sched_deadline: The deadline in nanoseconds. > - * @sched_period: The period, if different than deadline (not used here) > - */ > -struct sched_attr { > - u32 size; > - > - u32 sched_policy; > - u64 sched_flags; > - > - /* SCHED_NORMAL, SCHED_BATCH */ > - s32 sched_nice; > - > - /* SCHED_FIFO, SCHED_RR */ > - u32 sched_priority; > - > - /* SCHED_DEADLINE */ > - u64 sched_runtime; > - u64 sched_deadline; > - u64 sched_period; > -}; > - > -/** > * struct sched_data - the descriptor for the threads. > * > * This is the descriptor that will be passed as the thread data. > -- > 2.11.0 > Signed-off-by: John Kacur <jkacur@xxxxxxxxxx>