Bug 1215663 - # CONFIG_SCHED_AUTOGROUP is not set causes Fossilize INFO: Autogroup scheduling is not enabled on this kernel. Will rely entirely on nice().
Summary: # CONFIG_SCHED_AUTOGROUP is not set causes Fossilize INFO: Autogroup scheduli...
Status: NEW
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: Kernel (show other bugs)
Version: Current
Hardware: x86-64 openSUSE Tumbleweed
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: Mel Gorman
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-09-25 10:27 UTC by Vědomil Vildomec
Modified: 2024-05-02 23:54 UTC (History)
6 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---
jslaby: needinfo? (yousaf.kaukab)
mkoutny: needinfo? (vvedomil)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vědomil Vildomec 2023-09-25 10:27:22 UTC
Hi, I tried to play over Steam on OpenSUSE Tumbleweed and the terminal reported the following error:

Fossilize INFO: Autogroup scheduling is not enabled on this kernel. Will rely entirely on nice().

Autogroup scheduling needs to be enabled during kernel compilation. I checked that on https://github.com/SUSE/kernel-source/blob/15b4ad8fb5f18870bb9e4011a2bb53cbaefe8037/config/x86_64/default#L237 

I can see # CONFIG_SCHED_AUTOGROUP is not set, that's the origin of the issue.
So many distros enable that by default and I've never seen this issue with Steam on distros where is set CONFIG_SCHED_AUTOGROUP=y

Examples:
Arch Linux:
https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/blob/main/config?ref_type=heads#L246

CachyOS:
https://github.com/CachyOS/linux-cachyos/blob/1d74c2037cd78f292fb6606708fa86ef14e02bd7/linux-cachyos/config#L251C31-L252C23

Could I ask to change that? Change config, build a kernel with CONFIG_SCHED_AUTOGROUP=y, and make the OpenSUSE kernel and the whole distro more friendly to gaming through Steam.
Comment 2 Jiri Slaby 2023-10-26 09:11:23 UTC
FWIW, SCHED_AUTOGROUP was enabled in -desktop flavors already by:
commit 2d5d397022c311c2babb71b1220619a9f6c54139
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Wed Nov 17 11:10:32 2010 -0500

    - sched: automated per tty task groups.
      - Enabled in -desktop flavors for better interactivity.


until we dropped the flavor in:
commit 1fcdac3f3d277ffea3462af635a3dea6b854a09a
Author: Michal Marek <mmarek@suse.cz>
Date:   Fri Sep 25 22:42:00 2015 +0200

    Merge kernel-desktop back into kernel-default/kernel-pae (fate#319416)



The Kconfig entry says:
config SCHED_AUTOGROUP
        bool "Automatic process group scheduling"
        select CGROUPS
        select CGROUP_SCHED
        select FAIR_GROUP_SCHED
        help
          This option optimizes the scheduler for common desktop workloads by
          automatically creating and populating task groups.  This separation
          of workloads isolates aggressive CPU burners (like build jobs) from
          desktop applications.  Task group autogeneration is currently based
          upon task session.
Comment 3 Archer Allstars 2024-03-30 19:10:20 UTC
Building the kernel with CONFIG_SCHED_AUTOGROUP=y might be a good idea for desktop use. See TuneD desktop profile: https://github.com/redhat-performance/tuned/blob/master/profiles/desktop/tuned.conf

Without this kernel feature, TuneD desktop profile would be useless.
Comment 4 Takashi Iwai 2024-04-01 09:11:02 UTC
Looking at the code, the feature seems to be dynamically controllable via sysctl.  It might make sense to enable the kconfig while setting the default to off and let user enabling it via sysctl (maybe along with some other tunable knobs for desktops)?
Comment 5 Michal Koutný 2024-05-02 23:54:10 UTC
(In reply to Vědomil  Vildomec from comment #0)
> Could I ask to change that? Change config, build a kernel with
> CONFIG_SCHED_AUTOGROUP=y, and make the OpenSUSE kernel and the whole distro
> more friendly to gaming through Steam.

I'd suggest digging deeper for possible causes of the issue.
Can you quantify the friendliness in comparison with basic enablement of CPU controller? [1] Or roughly describe what's the expected behavior?
Would autogroup be needed nowadays at all?

SCHED_AUTOGROUP was poorly justified feature (already in 2010) that can be realized purely in userspace by creating respective groups manually (or implicitly e.g. via PAM as would happen with pam_systemd when CPU controller is enabled).

Don't let me start on combination of autogroups and regular groups (consider containers) in one system. I admit, I'm not a fan of enabling this config today.

[1] E.g. override /usr/lib/systemd/system/user@.service.d/20-defaults-SUSE.conf  with
> cat >/etc/systemd/system/user@.service.d/60-cpu-delegation.conf <<EOD
> [Service]
> Delegate=cpu
> EOD