[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 0/2] linux-user: fixes for sched_ syscalls
From: |
Tonis Tiigi |
Subject: |
[PATCH v2 0/2] linux-user: fixes for sched_ syscalls |
Date: |
Sun, 19 Dec 2021 23:21:03 -0800 |
This patchset improves support for sched_* syscalls under user emulation. The
first commit adds support for sched_g/setattr that was previously not
implemented. There is no equivalent for these syscalls in libc, so I needed to
redefine the struct from kernel. It can't be included directly because of
conflict with libc sched headers.
The second commit fixes sched_g/setscheduler and sched_g/setparam, when QEMU is
built with musl. Musl does not implement these due to conflict between what
these functions should do in syscalls and libc
https://git.musl-libc.org/cgit/musl/commit/?id=1e21e78bf7a5c24c217446d8760be7b7188711c2
. I've changed it to call syscall directly what should always be the expected
behavior for the user.
Via https://github.com/tonistiigi/binfmt/pull/70 with additional tests.
Changes v1->v2:
- Locking guest addresses for sched_attr is now based on size inputs, not local
struct size. Also did the same for setter where I now read only the size field
of the struct first.
- Use offsetof() when checking if optional fields are supported.
- `target_sched_attr` now uses aligned types as requested. I didn't quite
understand why this is needed as I don't see same in kernel headers, but as
this type uses only constant width fields and is already aligned by default it
can't break anything.
- Fixed formatting.
- Defined own `target_sched_param` struct as requested.
Tonis Tiigi (2):
linux-user: add sched_getattr support
linux-user: call set/getscheduler set/getparam directly
linux-user/syscall.c | 112 +++++++++++++++++++++++++++++++++-----
linux-user/syscall_defs.h | 18 ++++++
2 files changed, 117 insertions(+), 13 deletions(-)
--
2.32.0 (Apple Git-132)
- [PATCH v2 0/2] linux-user: fixes for sched_ syscalls,
Tonis Tiigi <=