lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202507252250.gOKHNKiq-lkp@intel.com>
Date: Fri, 25 Jul 2025 22:30:12 +0800
From: kernel test robot <lkp@...el.com>
To: Prakash Sangappa <prakash.sangappa@...cle.com>,
	linux-kernel@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev, peterz@...radead.org,
	rostedt@...dmis.org, mathieu.desnoyers@...icios.com,
	tglx@...utronix.de, bigeasy@...utronix.de, kprateek.nayak@....com,
	vineethr@...ux.ibm.com, prakash.sangappa@...cle.com
Subject: Re: [PATCH V7 07/11] sched: Add API to indicate not to delay
 scheduling

Hi Prakash,

kernel test robot noticed the following build errors:

[auto build test ERROR on tip/x86/core]
[also build test ERROR on linus/master v6.16-rc7]
[cannot apply to tip/sched/core tip/core/entry next-20250725]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Prakash-Sangappa/sched-Scheduler-time-slice-extension/20250725-002052
base:   tip/x86/core
patch link:    https://lore.kernel.org/r/20250724161625.2360309-8-prakash.sangappa%40oracle.com
patch subject: [PATCH V7 07/11] sched: Add API to indicate not to delay scheduling
config: riscv-randconfig-001-20250725 (https://download.01.org/0day-ci/archive/20250725/202507252250.gOKHNKiq-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 10.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250725/202507252250.gOKHNKiq-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202507252250.gOKHNKiq-lkp@intel.com/

All errors (new ones prefixed by >>):

   kernel/sys.c: In function '__do_sys_prctl':
>> kernel/sys.c:2830:32: error: 'rt_sched_class' undeclared (first use in this function); did you mean 'sched_class'?
    2830 |   if (current->sched_class != &rt_sched_class)
         |                                ^~~~~~~~~~~~~~
         |                                sched_class
   kernel/sys.c:2830:32: note: each undeclared identifier is reported only once for each function it appears in


vim +2830 kernel/sys.c

  2473	
  2474	SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
  2475			unsigned long, arg4, unsigned long, arg5)
  2476	{
  2477		struct task_struct *me = current;
  2478		unsigned char comm[sizeof(me->comm)];
  2479		long error;
  2480	
  2481		error = security_task_prctl(option, arg2, arg3, arg4, arg5);
  2482		if (error != -ENOSYS)
  2483			return error;
  2484	
  2485		error = 0;
  2486		switch (option) {
  2487		case PR_SET_PDEATHSIG:
  2488			if (!valid_signal(arg2)) {
  2489				error = -EINVAL;
  2490				break;
  2491			}
  2492			me->pdeath_signal = arg2;
  2493			break;
  2494		case PR_GET_PDEATHSIG:
  2495			error = put_user(me->pdeath_signal, (int __user *)arg2);
  2496			break;
  2497		case PR_GET_DUMPABLE:
  2498			error = get_dumpable(me->mm);
  2499			break;
  2500		case PR_SET_DUMPABLE:
  2501			if (arg2 != SUID_DUMP_DISABLE && arg2 != SUID_DUMP_USER) {
  2502				error = -EINVAL;
  2503				break;
  2504			}
  2505			set_dumpable(me->mm, arg2);
  2506			break;
  2507	
  2508		case PR_SET_UNALIGN:
  2509			error = SET_UNALIGN_CTL(me, arg2);
  2510			break;
  2511		case PR_GET_UNALIGN:
  2512			error = GET_UNALIGN_CTL(me, arg2);
  2513			break;
  2514		case PR_SET_FPEMU:
  2515			error = SET_FPEMU_CTL(me, arg2);
  2516			break;
  2517		case PR_GET_FPEMU:
  2518			error = GET_FPEMU_CTL(me, arg2);
  2519			break;
  2520		case PR_SET_FPEXC:
  2521			error = SET_FPEXC_CTL(me, arg2);
  2522			break;
  2523		case PR_GET_FPEXC:
  2524			error = GET_FPEXC_CTL(me, arg2);
  2525			break;
  2526		case PR_GET_TIMING:
  2527			error = PR_TIMING_STATISTICAL;
  2528			break;
  2529		case PR_SET_TIMING:
  2530			if (arg2 != PR_TIMING_STATISTICAL)
  2531				error = -EINVAL;
  2532			break;
  2533		case PR_SET_NAME:
  2534			comm[sizeof(me->comm) - 1] = 0;
  2535			if (strncpy_from_user(comm, (char __user *)arg2,
  2536					      sizeof(me->comm) - 1) < 0)
  2537				return -EFAULT;
  2538			set_task_comm(me, comm);
  2539			proc_comm_connector(me);
  2540			break;
  2541		case PR_GET_NAME:
  2542			get_task_comm(comm, me);
  2543			if (copy_to_user((char __user *)arg2, comm, sizeof(comm)))
  2544				return -EFAULT;
  2545			break;
  2546		case PR_GET_ENDIAN:
  2547			error = GET_ENDIAN(me, arg2);
  2548			break;
  2549		case PR_SET_ENDIAN:
  2550			error = SET_ENDIAN(me, arg2);
  2551			break;
  2552		case PR_GET_SECCOMP:
  2553			error = prctl_get_seccomp();
  2554			break;
  2555		case PR_SET_SECCOMP:
  2556			error = prctl_set_seccomp(arg2, (char __user *)arg3);
  2557			break;
  2558		case PR_GET_TSC:
  2559			error = GET_TSC_CTL(arg2);
  2560			break;
  2561		case PR_SET_TSC:
  2562			error = SET_TSC_CTL(arg2);
  2563			break;
  2564		case PR_TASK_PERF_EVENTS_DISABLE:
  2565			error = perf_event_task_disable();
  2566			break;
  2567		case PR_TASK_PERF_EVENTS_ENABLE:
  2568			error = perf_event_task_enable();
  2569			break;
  2570		case PR_GET_TIMERSLACK:
  2571			if (current->timer_slack_ns > ULONG_MAX)
  2572				error = ULONG_MAX;
  2573			else
  2574				error = current->timer_slack_ns;
  2575			break;
  2576		case PR_SET_TIMERSLACK:
  2577			if (rt_or_dl_task_policy(current))
  2578				break;
  2579			if (arg2 <= 0)
  2580				current->timer_slack_ns =
  2581						current->default_timer_slack_ns;
  2582			else
  2583				current->timer_slack_ns = arg2;
  2584			break;
  2585		case PR_MCE_KILL:
  2586			if (arg4 | arg5)
  2587				return -EINVAL;
  2588			switch (arg2) {
  2589			case PR_MCE_KILL_CLEAR:
  2590				if (arg3 != 0)
  2591					return -EINVAL;
  2592				current->flags &= ~PF_MCE_PROCESS;
  2593				break;
  2594			case PR_MCE_KILL_SET:
  2595				current->flags |= PF_MCE_PROCESS;
  2596				if (arg3 == PR_MCE_KILL_EARLY)
  2597					current->flags |= PF_MCE_EARLY;
  2598				else if (arg3 == PR_MCE_KILL_LATE)
  2599					current->flags &= ~PF_MCE_EARLY;
  2600				else if (arg3 == PR_MCE_KILL_DEFAULT)
  2601					current->flags &=
  2602							~(PF_MCE_EARLY|PF_MCE_PROCESS);
  2603				else
  2604					return -EINVAL;
  2605				break;
  2606			default:
  2607				return -EINVAL;
  2608			}
  2609			break;
  2610		case PR_MCE_KILL_GET:
  2611			if (arg2 | arg3 | arg4 | arg5)
  2612				return -EINVAL;
  2613			if (current->flags & PF_MCE_PROCESS)
  2614				error = (current->flags & PF_MCE_EARLY) ?
  2615					PR_MCE_KILL_EARLY : PR_MCE_KILL_LATE;
  2616			else
  2617				error = PR_MCE_KILL_DEFAULT;
  2618			break;
  2619		case PR_SET_MM:
  2620			error = prctl_set_mm(arg2, arg3, arg4, arg5);
  2621			break;
  2622		case PR_GET_TID_ADDRESS:
  2623			error = prctl_get_tid_address(me, (int __user * __user *)arg2);
  2624			break;
  2625		case PR_SET_CHILD_SUBREAPER:
  2626			me->signal->is_child_subreaper = !!arg2;
  2627			if (!arg2)
  2628				break;
  2629	
  2630			walk_process_tree(me, propagate_has_child_subreaper, NULL);
  2631			break;
  2632		case PR_GET_CHILD_SUBREAPER:
  2633			error = put_user(me->signal->is_child_subreaper,
  2634					 (int __user *)arg2);
  2635			break;
  2636		case PR_SET_NO_NEW_PRIVS:
  2637			if (arg2 != 1 || arg3 || arg4 || arg5)
  2638				return -EINVAL;
  2639	
  2640			task_set_no_new_privs(current);
  2641			break;
  2642		case PR_GET_NO_NEW_PRIVS:
  2643			if (arg2 || arg3 || arg4 || arg5)
  2644				return -EINVAL;
  2645			return task_no_new_privs(current) ? 1 : 0;
  2646		case PR_GET_THP_DISABLE:
  2647			if (arg2 || arg3 || arg4 || arg5)
  2648				return -EINVAL;
  2649			error = !!test_bit(MMF_DISABLE_THP, &me->mm->flags);
  2650			break;
  2651		case PR_SET_THP_DISABLE:
  2652			if (arg3 || arg4 || arg5)
  2653				return -EINVAL;
  2654			if (mmap_write_lock_killable(me->mm))
  2655				return -EINTR;
  2656			if (arg2)
  2657				set_bit(MMF_DISABLE_THP, &me->mm->flags);
  2658			else
  2659				clear_bit(MMF_DISABLE_THP, &me->mm->flags);
  2660			mmap_write_unlock(me->mm);
  2661			break;
  2662		case PR_MPX_ENABLE_MANAGEMENT:
  2663		case PR_MPX_DISABLE_MANAGEMENT:
  2664			/* No longer implemented: */
  2665			return -EINVAL;
  2666		case PR_SET_FP_MODE:
  2667			error = SET_FP_MODE(me, arg2);
  2668			break;
  2669		case PR_GET_FP_MODE:
  2670			error = GET_FP_MODE(me);
  2671			break;
  2672		case PR_SVE_SET_VL:
  2673			error = SVE_SET_VL(arg2);
  2674			break;
  2675		case PR_SVE_GET_VL:
  2676			error = SVE_GET_VL();
  2677			break;
  2678		case PR_SME_SET_VL:
  2679			error = SME_SET_VL(arg2);
  2680			break;
  2681		case PR_SME_GET_VL:
  2682			error = SME_GET_VL();
  2683			break;
  2684		case PR_GET_SPECULATION_CTRL:
  2685			if (arg3 || arg4 || arg5)
  2686				return -EINVAL;
  2687			error = arch_prctl_spec_ctrl_get(me, arg2);
  2688			break;
  2689		case PR_SET_SPECULATION_CTRL:
  2690			if (arg4 || arg5)
  2691				return -EINVAL;
  2692			error = arch_prctl_spec_ctrl_set(me, arg2, arg3);
  2693			break;
  2694		case PR_PAC_RESET_KEYS:
  2695			if (arg3 || arg4 || arg5)
  2696				return -EINVAL;
  2697			error = PAC_RESET_KEYS(me, arg2);
  2698			break;
  2699		case PR_PAC_SET_ENABLED_KEYS:
  2700			if (arg4 || arg5)
  2701				return -EINVAL;
  2702			error = PAC_SET_ENABLED_KEYS(me, arg2, arg3);
  2703			break;
  2704		case PR_PAC_GET_ENABLED_KEYS:
  2705			if (arg2 || arg3 || arg4 || arg5)
  2706				return -EINVAL;
  2707			error = PAC_GET_ENABLED_KEYS(me);
  2708			break;
  2709		case PR_SET_TAGGED_ADDR_CTRL:
  2710			if (arg3 || arg4 || arg5)
  2711				return -EINVAL;
  2712			error = SET_TAGGED_ADDR_CTRL(arg2);
  2713			break;
  2714		case PR_GET_TAGGED_ADDR_CTRL:
  2715			if (arg2 || arg3 || arg4 || arg5)
  2716				return -EINVAL;
  2717			error = GET_TAGGED_ADDR_CTRL();
  2718			break;
  2719		case PR_SET_IO_FLUSHER:
  2720			if (!capable(CAP_SYS_RESOURCE))
  2721				return -EPERM;
  2722	
  2723			if (arg3 || arg4 || arg5)
  2724				return -EINVAL;
  2725	
  2726			if (arg2 == 1)
  2727				current->flags |= PR_IO_FLUSHER;
  2728			else if (!arg2)
  2729				current->flags &= ~PR_IO_FLUSHER;
  2730			else
  2731				return -EINVAL;
  2732			break;
  2733		case PR_GET_IO_FLUSHER:
  2734			if (!capable(CAP_SYS_RESOURCE))
  2735				return -EPERM;
  2736	
  2737			if (arg2 || arg3 || arg4 || arg5)
  2738				return -EINVAL;
  2739	
  2740			error = (current->flags & PR_IO_FLUSHER) == PR_IO_FLUSHER;
  2741			break;
  2742		case PR_SET_SYSCALL_USER_DISPATCH:
  2743			error = set_syscall_user_dispatch(arg2, arg3, arg4,
  2744							  (char __user *) arg5);
  2745			break;
  2746	#ifdef CONFIG_SCHED_CORE
  2747		case PR_SCHED_CORE:
  2748			error = sched_core_share_pid(arg2, arg3, arg4, arg5);
  2749			break;
  2750	#endif
  2751		case PR_SET_MDWE:
  2752			error = prctl_set_mdwe(arg2, arg3, arg4, arg5);
  2753			break;
  2754		case PR_GET_MDWE:
  2755			error = prctl_get_mdwe(arg2, arg3, arg4, arg5);
  2756			break;
  2757		case PR_PPC_GET_DEXCR:
  2758			if (arg3 || arg4 || arg5)
  2759				return -EINVAL;
  2760			error = PPC_GET_DEXCR_ASPECT(me, arg2);
  2761			break;
  2762		case PR_PPC_SET_DEXCR:
  2763			if (arg4 || arg5)
  2764				return -EINVAL;
  2765			error = PPC_SET_DEXCR_ASPECT(me, arg2, arg3);
  2766			break;
  2767		case PR_SET_VMA:
  2768			error = prctl_set_vma(arg2, arg3, arg4, arg5);
  2769			break;
  2770		case PR_GET_AUXV:
  2771			if (arg4 || arg5)
  2772				return -EINVAL;
  2773			error = prctl_get_auxv((void __user *)arg2, arg3);
  2774			break;
  2775	#ifdef CONFIG_KSM
  2776		case PR_SET_MEMORY_MERGE:
  2777			if (arg3 || arg4 || arg5)
  2778				return -EINVAL;
  2779			if (mmap_write_lock_killable(me->mm))
  2780				return -EINTR;
  2781	
  2782			if (arg2)
  2783				error = ksm_enable_merge_any(me->mm);
  2784			else
  2785				error = ksm_disable_merge_any(me->mm);
  2786			mmap_write_unlock(me->mm);
  2787			break;
  2788		case PR_GET_MEMORY_MERGE:
  2789			if (arg2 || arg3 || arg4 || arg5)
  2790				return -EINVAL;
  2791	
  2792			error = !!test_bit(MMF_VM_MERGE_ANY, &me->mm->flags);
  2793			break;
  2794	#endif
  2795		case PR_RISCV_V_SET_CONTROL:
  2796			error = RISCV_V_SET_CONTROL(arg2);
  2797			break;
  2798		case PR_RISCV_V_GET_CONTROL:
  2799			error = RISCV_V_GET_CONTROL();
  2800			break;
  2801		case PR_RISCV_SET_ICACHE_FLUSH_CTX:
  2802			error = RISCV_SET_ICACHE_FLUSH_CTX(arg2, arg3);
  2803			break;
  2804		case PR_GET_SHADOW_STACK_STATUS:
  2805			if (arg3 || arg4 || arg5)
  2806				return -EINVAL;
  2807			error = arch_get_shadow_stack_status(me, (unsigned long __user *) arg2);
  2808			break;
  2809		case PR_SET_SHADOW_STACK_STATUS:
  2810			if (arg3 || arg4 || arg5)
  2811				return -EINVAL;
  2812			error = arch_set_shadow_stack_status(me, arg2);
  2813			break;
  2814		case PR_LOCK_SHADOW_STACK_STATUS:
  2815			if (arg3 || arg4 || arg5)
  2816				return -EINVAL;
  2817			error = arch_lock_shadow_stack_status(me, arg2);
  2818			break;
  2819		case PR_TIMER_CREATE_RESTORE_IDS:
  2820			if (arg3 || arg4 || arg5)
  2821				return -EINVAL;
  2822			error = posixtimer_create_prctl(arg2);
  2823			break;
  2824		case PR_FUTEX_HASH:
  2825			error = futex_hash_prctl(arg2, arg3, arg4);
  2826			break;
  2827		case PR_SET_SCHED_NODELAY:
  2828			if (arg3 || arg4 || arg5)
  2829				return -EINVAL;
> 2830			if (current->sched_class != &rt_sched_class)
  2831				return -EINVAL;
  2832			if (arg2)
  2833				current->sched_nodelay = 1;
  2834			else
  2835				current->sched_nodelay = 0;
  2836			break;
  2837		case PR_GET_SCHED_NODELAY:
  2838			if (arg2 || arg3 || arg4 || arg5)
  2839				return -EINVAL;
  2840			if (current->sched_class != &rt_sched_class)
  2841				return -EINVAL;
  2842			error = (current->sched_nodelay == 1);
  2843			break;
  2844	
  2845		default:
  2846			trace_task_prctl_unknown(option, arg2, arg3, arg4, arg5);
  2847			error = -EINVAL;
  2848			break;
  2849		}
  2850		return error;
  2851	}
  2852	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ