HomeFreeBSD

Use Linux semantics for the thread affinity syscalls.

Description

Use Linux semantics for the thread affinity syscalls.

Linux has more tolerant checks of the user supplied cpuset_t's.

Minimum cpuset_t size that the Linux kernel permits in case of
getaffinity() is the maximum CPU id, present in the system / NBBY,
the maximum size is not limited.
For setaffinity(), Linux does not limit the size of the user-provided
cpuset_t, internally using only the meaningful part of the set, where
the upper bound is the maximum CPU id, present in the system, no larger
than the size of the kernel cpuset_t.
Unlike FreeBSD, Linux ignores high bits if set in the setaffinity(),
so clear it in the sched_setaffinity() and Linuxulator itself.

Reviewed by: Pau Amma (man pages)
In collaboration with: jhb
Differential revision: https://reviews.freebsd.org/D34849
MFC after: 2 weeks

Details

Provenance
dchaginAuthored on May 11 2022, 7:36 AM
Reviewer
jhb
Differential Revision
D34849: Use Linux semantics for the thread affinity syscalls.
Parents
rG50dd2ceaea44: update command to one that will actually give results
Branches
Unknown
Tags
Unknown

Event Timeline