[PATCH v3] sched_ext: fix application of sizeof to pointer

guanjing posted 1 patch 5 days, 7 hours ago
tools/sched_ext/scx_central.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[PATCH v3] sched_ext: fix application of sizeof to pointer
Posted by guanjing 5 days, 7 hours ago
sizeof when applied to a pointer typed expression gives the size of
the pointer.

The proper fix in this particular case is to code sizeof(*cpuset)
instead of sizeof(cpuset).

This issue was detected with the help of Coccinelle.

Fixes: 22a920209ab6 ("sched_ext: Implement tickless support")
Signed-off-by: guanjing <guanjing@cmss.chinamobile.com>
---
 tools/sched_ext/scx_central.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/sched_ext/scx_central.c b/tools/sched_ext/scx_central.c
index 21deea320bd7..e938156ed0a0 100644
--- a/tools/sched_ext/scx_central.c
+++ b/tools/sched_ext/scx_central.c
@@ -97,7 +97,7 @@ int main(int argc, char **argv)
 	SCX_BUG_ON(!cpuset, "Failed to allocate cpuset");
 	CPU_ZERO(cpuset);
 	CPU_SET(skel->rodata->central_cpu, cpuset);
-	SCX_BUG_ON(sched_setaffinity(0, sizeof(cpuset), cpuset),
+	SCX_BUG_ON(sched_setaffinity(0, sizeof(*cpuset), cpuset),
 		   "Failed to affinitize to central CPU %d (max %d)",
 		   skel->rodata->central_cpu, skel->rodata->nr_cpu_ids - 1);
 	CPU_FREE(cpuset);
-- 
2.33.0
Re: [PATCH v3] sched_ext: fix application of sizeof to pointer
Posted by Andrea Righi 1 day, 20 hours ago
On Sun, Nov 17, 2024 at 10:51:29AM +0800, guanjing wrote:
> sizeof when applied to a pointer typed expression gives the size of
> the pointer.
> 
> The proper fix in this particular case is to code sizeof(*cpuset)
> instead of sizeof(cpuset).
> 
> This issue was detected with the help of Coccinelle.
> 
> Fixes: 22a920209ab6 ("sched_ext: Implement tickless support")
> Signed-off-by: guanjing <guanjing@cmss.chinamobile.com>

Thanks for catching this, it looks good to me.

Could you send a PR for https://github.com/sched-ext/scx? We usually
sync the C schedulers from this repository into the kernel.

If you want you can add my:

Acked-by: Andrea Righi <arighi@nvidia.com>

Thanks,
-Andrea

> ---
>  tools/sched_ext/scx_central.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/sched_ext/scx_central.c b/tools/sched_ext/scx_central.c
> index 21deea320bd7..e938156ed0a0 100644
> --- a/tools/sched_ext/scx_central.c
> +++ b/tools/sched_ext/scx_central.c
> @@ -97,7 +97,7 @@ int main(int argc, char **argv)
>  	SCX_BUG_ON(!cpuset, "Failed to allocate cpuset");
>  	CPU_ZERO(cpuset);
>  	CPU_SET(skel->rodata->central_cpu, cpuset);
> -	SCX_BUG_ON(sched_setaffinity(0, sizeof(cpuset), cpuset),
> +	SCX_BUG_ON(sched_setaffinity(0, sizeof(*cpuset), cpuset),
>  		   "Failed to affinitize to central CPU %d (max %d)",
>  		   skel->rodata->central_cpu, skel->rodata->nr_cpu_ids - 1);
>  	CPU_FREE(cpuset);
> -- 
> 2.33.0
> 
> 
>