Ver código fonte

add sched_{get,set}attr syscall numbers and SCHED_DEADLINE macro

linux 3.14 introduced sched_getattr and sched_setattr syscalls in
commit d50dde5a10f305253cbc3855307f608f8a3c5f73

and the related SCHED_DEADLINE scheduling policy in
commit aab03e05e8f7e26f51dee792beddcb5cca9215a5

but struct sched_attr "extended scheduling parameters data structure"
is not yet exported to userspace (necessary for using the syscalls)
so related uapi definitions are not added yet.
Szabolcs Nagy 10 anos atrás
pai
commit
fd9571e20a

+ 4 - 0
arch/arm/bits/syscall.h

@@ -333,6 +333,8 @@
 #define __NR_process_vm_writev	377
 #define __NR_kcmp		378
 #define __NR_finit_module	379
+#define __NR_sched_setattr	380
+#define __NR_sched_getattr	381
 
 
 /* Repeated with SYS_ prefix */
@@ -672,3 +674,5 @@
 #define SYS_process_vm_writev	377
 #define SYS_kcmp		378
 #define SYS_finit_module	379
+#define SYS_sched_setattr	380
+#define SYS_sched_getattr	381

+ 4 - 0
arch/i386/bits/syscall.h

@@ -349,6 +349,8 @@
 #define __NR_process_vm_writev	348
 #define __NR_kcmp		349
 #define __NR_finit_module	350
+#define __NR_sched_setattr	351
+#define __NR_sched_getattr	352
 
 
 /* Repeated with SYS_ prefix */
@@ -704,3 +706,5 @@
 #define SYS_process_vm_writev	348
 #define SYS_kcmp		349
 #define SYS_finit_module	350
+#define SYS_sched_setattr	351
+#define SYS_sched_getattr	352

+ 4 - 0
arch/microblaze/bits/syscall.h

@@ -375,6 +375,8 @@
 #define __NR_process_vm_writev 378
 #define __NR_kcmp 379
 #define __NR_finit_module 380
+#define __NR_sched_setattr 381
+#define __NR_sched_getattr 382
 
 /* Repeated with SYS_ prefix */
 
@@ -756,3 +758,5 @@
 #define SYS_process_vm_writev 378
 #define SYS_kcmp 379
 #define SYS_finit_module 380
+#define SYS_sched_setattr 381
+#define SYS_sched_getattr 382

+ 4 - 0
arch/mips/bits/syscall.h

@@ -346,6 +346,8 @@
 #define __NR_process_vm_writev       4346
 #define __NR_kcmp                    4347
 #define __NR_finit_module            4348
+#define __NR_sched_setattr           4349
+#define __NR_sched_getattr           4350
 
 
 /* Repeated with SYS_ prefix */
@@ -697,3 +699,5 @@
 #define SYS_process_vm_writev       4346
 #define SYS_kcmp                    4347
 #define SYS_finit_module            4348
+#define SYS_sched_setattr           4349
+#define SYS_sched_getattr           4350

+ 4 - 0
arch/powerpc/bits/syscall.h

@@ -368,6 +368,8 @@
 #define __NR_process_vm_writev     352
 #define __NR_finit_module          353
 #define __NR_kcmp                  354
+#define __NR_sched_setattr         355
+#define __NR_sched_getattr         356
 
 /*
  * repeated with SYS prefix
@@ -742,3 +744,5 @@
 #define SYS_process_vm_writev     352
 #define SYS_finit_module          353
 #define SYS_kcmp                  354
+#define SYS_sched_setattr         355
+#define SYS_sched_getattr         356

+ 6 - 0
arch/x32/bits/syscall.h

@@ -271,6 +271,9 @@
 #define __NR_getcpu (__X32_SYSCALL_BIT + 309)
 #define __NR_kcmp (__X32_SYSCALL_BIT + 312)
 #define __NR_finit_module (__X32_SYSCALL_BIT + 313)
+#define __NR_sched_setattr (__X32_SYSCALL_BIT + 314)
+#define __NR_sched_getattr (__X32_SYSCALL_BIT + 315)
+
 #define __NR_rt_sigaction (__X32_SYSCALL_BIT + 512)
 #define __NR_rt_sigreturn (__X32_SYSCALL_BIT + 513)
 #define __NR_ioctl (__X32_SYSCALL_BIT + 514)
@@ -591,6 +594,9 @@
 #define SYS_getcpu __NR_getcpu
 #define SYS_kcmp __NR_kcmp
 #define SYS_finit_module __NR_finit_module
+#define SYS_sched_setattr __NR_sched_setattr
+#define SYS_sched_getattr __NR_sched_getattr
+
 #define SYS_rt_sigaction __NR_rt_sigaction
 #define SYS_rt_sigreturn __NR_rt_sigreturn
 #define SYS_ioctl __NR_ioctl

+ 4 - 0
arch/x86_64/bits/syscall.h

@@ -312,6 +312,8 @@
 #define __NR_process_vm_writev			311
 #define __NR_kcmp				312
 #define __NR_finit_module			313
+#define __NR_sched_setattr			314
+#define __NR_sched_getattr			315
 
 #undef __NR_fstatat
 #undef __NR_pread
@@ -641,6 +643,8 @@
 #define SYS_process_vm_writev			311
 #define SYS_kcmp				312
 #define SYS_finit_module			313
+#define SYS_sched_setattr			314
+#define SYS_sched_getattr			315
 
 #undef SYS_fstatat
 #undef SYS_pread

+ 1 - 0
include/sched.h

@@ -38,6 +38,7 @@ int     sched_yield(void);
 #define SCHED_RR 2
 #define SCHED_BATCH 3
 #define SCHED_IDLE 5
+#define SCHED_DEADLINE 6
 #define SCHED_RESET_ON_FORK 0x40000000
 
 #ifdef _GNU_SOURCE