Commit 75ad5182 authored by Zhao Mengmeng's avatar Zhao Mengmeng Committed by Tejun Heo
Browse files

selftests/sched_ext: Fix peek_dsq.bpf.c compile error for clang 17

When compiling sched_ext selftests using clang 17.0.6, it raised
compiler crash and build error:

Error at line 68: Unsupport signed division for DAG: 0x55b2f9a60240:
i64 = sdiv 0x55b2f9a609b0, Constant:i64<100>, peek_dsq.bpf.c:68:25 @[
peek_dsq.bpf.c:95:4 @[ peek_dsq.bpf.c:169:8 @[ peek
_dsq.bpf.c:140:6 ] ] ]Please convert to unsigned div/mod

After digging, it's not a compiler error, clang supported Signed division
only when using -mcpu=v4, while we use -mcpu=v3 currently, the better way
is to use unsigned div, see [1] for details.

[1] https://github.com/llvm/llvm-project/issues/70433



Signed-off-by: default avatarZhao Mengmeng <zhaomengmeng@kylinos.cn>
Reviewed-by: default avatarAndrea Righi <arighi@nvidia.com>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent 01a867c2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -58,14 +58,14 @@ static void record_peek_result(long pid)
{
	u32 slot_key;
	long *slot_pid_ptr;
	int ix;
	u32 ix;

	if (pid <= 0)
		return;

	/* Find an empty slot or one with the same PID */
	bpf_for(ix, 0, 10) {
		slot_key = (pid + ix) % MAX_SAMPLES;
		slot_key = ((u64)pid + ix) % MAX_SAMPLES;
		slot_pid_ptr = bpf_map_lookup_elem(&peek_results, &slot_key);
		if (!slot_pid_ptr)
			continue;