diff --git a/linux/dummy.h b/linux/dummy.h
index 1fc2d0b..9394904 100644
--- a/linux/dummy.h
+++ b/linux/dummy.h
@@ -39,8 +39,6 @@
 #define	sys_lookup_dcookie	printargs
 #define	sys_name_to_handle_at	printargs
 #define	sys_open_by_handle_at	printargs
-#define	sys_sched_getattr	printargs
-#define	sys_sched_setattr	printargs
 #define	sys_sysfs		printargs
 #define	sys_vm86		printargs
 #define	sys_vm86old		printargs
diff --git a/sched.c b/sched.c
index eda241f..e473046 100644
--- a/sched.c
+++ b/sched.c
@@ -3,6 +3,7 @@
 #include <sched.h>
 
 #include "xlat/schedulers.h"
+#include "xlat/sched_flags.h"
 
 SYS_FUNC(sched_getscheduler)
 {
@@ -62,3 +63,56 @@
 	}
 	return 0;
 }
+
+static void
+print_sched_attr(struct tcb *tcp, const long addr, unsigned int size)
+{
+	struct {
+		uint32_t size;
+		uint32_t sched_policy;
+		uint64_t sched_flags;
+		uint32_t sched_nice;
+		uint32_t sched_priority;
+		uint64_t sched_runtime;
+		uint64_t sched_deadline;
+		uint64_t sched_period;
+	} attr = {};
+
+	if (size > sizeof(attr))
+		size = sizeof(attr);
+	if (umoven_or_printaddr(tcp, addr, size, &attr))
+		return;
+
+	tprintf("{size=%u, sched_policy=", attr.size);
+	printxval(schedulers, attr.sched_policy, "SCHED_???");
+	tprints(", sched_flags=");
+	printflags(sched_flags, attr.sched_flags, "SCHED_FLAG_???");
+	tprintf(", sched_nice=%d", attr.sched_nice);
+	tprintf(", sched_priority=%u", attr.sched_priority);
+	tprintf(", sched_runtime=%" PRIu64, attr.sched_runtime);
+	tprintf(", sched_deadline=%" PRIu64, attr.sched_deadline);
+	tprintf(", sched_period=%" PRIu64 "}", attr.sched_period);
+}
+
+SYS_FUNC(sched_setattr)
+{
+	tprintf("%d, ", (int) tcp->u_arg[0]);
+	print_sched_attr(tcp, tcp->u_arg[1], 0x100);
+	tprintf(", %u", (unsigned int) tcp->u_arg[2]);
+
+	return RVAL_DECODED;
+}
+
+SYS_FUNC(sched_getattr)
+{
+	if (entering(tcp)) {
+		tprintf("%d, ", (int) tcp->u_arg[0]);
+	} else {
+		print_sched_attr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+		tprintf(", %u, %u",
+			(unsigned int) tcp->u_arg[2],
+			(unsigned int) tcp->u_arg[3]);
+	}
+
+	return 0;
+}
diff --git a/tests/.gitignore b/tests/.gitignore
index 6354c7a..51d8dd2 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -20,6 +20,7 @@
 netlink_unix_diag
 pc
 pipe
+sched_xetattr
 scm_rights
 seccomp
 select
diff --git a/tests/Makefile.am b/tests/Makefile.am
index e56643c..2eb3133 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -31,6 +31,7 @@
 	netlink_unix_diag \
 	pc \
 	pipe \
+	sched_xetattr \
 	scm_rights \
 	seccomp \
 	select \
@@ -79,6 +80,7 @@
 	ipc_msg.test \
 	ipc_shm.test \
 	ipc_sem.test \
+	sched_xetattr.test \
 	scm_rights-fd.test \
 	seccomp.test \
 	select.test \
diff --git a/tests/sched_xetattr.c b/tests/sched_xetattr.c
new file mode 100644
index 0000000..9a30eff
--- /dev/null
+++ b/tests/sched_xetattr.c
@@ -0,0 +1,65 @@
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdio.h>
+#include <inttypes.h>
+#include <unistd.h>
+#include <sys/syscall.h>
+
+#if defined __NR_sched_getattr && defined __NR_sched_setattr
+
+int
+main(void)
+{
+	static union {
+		struct {
+			uint32_t size;
+			uint32_t sched_policy;
+			uint64_t sched_flags;
+			uint32_t sched_nice;
+			uint32_t sched_priority;
+			uint64_t sched_runtime;
+			uint64_t sched_deadline;
+			uint64_t sched_period;
+		} attr;
+		char buf[256];
+	} sched;
+
+	if (syscall(__NR_sched_getattr, 0, &sched, sizeof(sched), 0))
+		return 77;
+
+	printf("sched_getattr\\(0, \\{size=%u, sched_policy=SCHED_[A-Z]+, sched_flags=%s, sched_nice=%u, sched_priority=%u, sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 "\\}, 256, 0\\) += 0\n",
+		sched.attr.size,
+		sched.attr.sched_flags ? "SCHED_FLAG_RESET_ON_FORK" : "0",
+		sched.attr.sched_nice,
+		sched.attr.sched_priority,
+		sched.attr.sched_runtime,
+		sched.attr.sched_deadline,
+		sched.attr.sched_period);
+
+	sched.attr.sched_flags |= 1;
+	if (syscall(__NR_sched_setattr, 0, &sched, 0))
+		return 77;
+
+	printf("sched_setattr\\(0, \\{size=%u, sched_policy=SCHED_[A-Z]+, sched_flags=%s, sched_nice=%u, sched_priority=%u, sched_runtime=%" PRIu64 ", sched_deadline=%" PRIu64 ", sched_period=%" PRIu64 "\\}, 0\\) += 0\n",
+		sched.attr.size,
+		"SCHED_FLAG_RESET_ON_FORK",
+		sched.attr.sched_nice,
+		sched.attr.sched_priority,
+		sched.attr.sched_runtime,
+		sched.attr.sched_deadline,
+		sched.attr.sched_period);
+
+	return 0;
+}
+
+#else
+
+int
+main(void)
+{
+	return 77;
+}
+
+#endif
diff --git a/tests/sched_xetattr.test b/tests/sched_xetattr.test
new file mode 100755
index 0000000..fe7efec
--- /dev/null
+++ b/tests/sched_xetattr.test
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+# Check sched_getattr and sched_setattr syscalls decoding.
+
+. "${srcdir=.}/init.sh"
+
+run_prog > /dev/null
+OUT="$LOG.out"
+run_strace -e sched_getattr,sched_setattr $args > "$OUT"
+match_grep "$LOG" "$OUT"
+rm -f "$OUT"
+
+exit 0
diff --git a/xlat/sched_flags.in b/xlat/sched_flags.in
new file mode 100644
index 0000000..824d91d
--- /dev/null
+++ b/xlat/sched_flags.in
@@ -0,0 +1 @@
+SCHED_FLAG_RESET_ON_FORK 1
