Re: [PATCH] sched_getattr.2: update to include changed size semantics

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Nov 28, 2019 at 11:01:40PM +1100, Aleksa Sarai wrote:
> Due to a userspace breakage, commit 1251201c0d34 ("sched/core: Fix
> uclamp ABI bug, clean up and robustify sched_read_attr() ABI logic and
> code") changed the semantics of sched_getattr(2) when the userspace
> struct is smaller than the kernel struct. Now, any trailing non-zero
> data in the kernel structure is ignored when copying to userspace.
> 
> Ref: 1251201c0d34 ("sched/core: Fix uclamp ABI bug, clean up and
>                     robustify sched_read_attr() ABI logic and code")
> Signed-off-by: Aleksa Sarai <cyphar@xxxxxxxxxx>
> ---
>  man2/sched_setattr.2 | 6 ++----
>  1 file changed, 2 insertions(+), 4 deletions(-)
> 
> diff --git a/man2/sched_setattr.2 b/man2/sched_setattr.2
> index 76ffa14eba85..fbb67b8eb98b 100644
> --- a/man2/sched_setattr.2
> +++ b/man2/sched_setattr.2
> @@ -284,10 +284,8 @@ structure,
>  the additional bytes in the user-space structure are not touched.
>  If the caller-provided structure is smaller than the kernel
>  .I sched_attr
> -structure and the kernel needs to return values outside the provided space,
> -.BR sched_getattr ()
> -fails with the error
> -.BR E2BIG .
> +structure, the kernel will silently not return any values which would be stored
> +outside the provided space.
>  As with
>  .BR sched_setattr (),
>  these semantics allow for future extensibility of the interface.
> -- 
> 2.24.0
> 

I was thinking about documenting the difference in behavior of older kernels,
before uclamp support.

However, in practice, for sched_getattr, the kernel never returned E2BIG (the
code uses EFBIG incorrectly, in fact). It does, however, return EINVAL for
sizes smaller than SCHED_ATTR_SIZE_VER0.

The EINVAL return is already well documented in the manpage.

However, E2BIG is still mentioned below as a possible return value for
sched_getattr. Can you remove that too?

Thanks.
Cascardo.



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux