* scx_p2dq: Add fork-time load balancing across LLCs * scx_lavd: Account for time stolen from tasks from steal/irq_time * scx_p2dq: Add energy-aware scheduling with thermal and frequency awareness * scx_cosmos: Add perfmon based scheduling * scx_mitosis: make independent of cpu cg controller presence * scxtop: Add support for parsing wprof perfetto traces * scx_p2dq: add Intel uncore frequency, turbo, and EPP controls * scx_lavd: Improve core compaction to use effective capacity * scx_mitosis: Reject partial multi-CPU pinning by default * scx_layered: add partial core allocation mode * scx_lavd: Increase greedy factor in deadline calculation * scx_lavd: Inherit scheduling context from parent on fork * scx_lavd: Optimize task migration for execve - Exclude 32-bit x86 builds - Include scx_beerland scheduler in package OBS-URL: https://build.opensuse.org/package/show/Base:System/scx?expand=0&rev=43
752 lines
37 KiB
Plaintext
752 lines
37 KiB
Plaintext
-------------------------------------------------------------------
|
|
Tue Feb 10 20:01:41 UTC 2026 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Update to version 1.0.20:
|
|
* scx_p2dq: Add fork-time load balancing across LLCs
|
|
* scx_lavd: Account for time stolen from tasks from steal/irq_time
|
|
* scx_p2dq: Add energy-aware scheduling with thermal and frequency awareness
|
|
* scx_cosmos: Add perfmon based scheduling
|
|
* scx_mitosis: make independent of cpu cg controller presence
|
|
* scxtop: Add support for parsing wprof perfetto traces
|
|
* scx_p2dq: add Intel uncore frequency, turbo, and EPP controls
|
|
* scx_lavd: Improve core compaction to use effective capacity
|
|
* scx_mitosis: Reject partial multi-CPU pinning by default
|
|
* scx_layered: add partial core allocation mode
|
|
* scx_lavd: Increase greedy factor in deadline calculation
|
|
* scx_lavd: Inherit scheduling context from parent on fork
|
|
* scx_lavd: Optimize task migration for execve
|
|
- Exclude 32-bit x86 builds
|
|
- Include scx_beerland scheduler in package
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Dec 6 09:57:43 UTC 2025 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Update to version 1.0.19:
|
|
* scx_lavd: Add cpu.max Support for the SCX Scheduler
|
|
* scx_p2dq: Add conservative wakeup preemption for latency-critical tasks
|
|
* scx_p2dq: Update default slice intervals
|
|
* scx_layered: Add a new NUMANode Matcher
|
|
* scx_p2dq: Add PELT tracking
|
|
* scx_lavd: Turn on --pinned-slice-us option by default
|
|
* scx_lavd: Don't try to migrate a task from non-migratable DSQs
|
|
* scx_bpfland: Use nr_cpu_ids as the actual CPU limit
|
|
* scxtop: Add topology-aware multi-ringbuffer support
|
|
* scxtop: Add limit parameter to detect_outliers MCP tool
|
|
* scx_p2dq: Add DHQ support
|
|
* scx_lavd: Disable ops.cgroup_set_bandwidth() when no kernel support
|
|
* scxtop: Add perfetto trace analysis framework with systing support
|
|
* scx_lavd: perform task stealing in circular distance order
|
|
- Add scx.env which was dropped by upstream
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Nov 18 09:40:32 UTC 2025 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Update to version 1.0.18:
|
|
* scxtop: Add comprehensive perfetto trace analysis MCP server
|
|
* scxtop: Add softirq analyzer with selective BPF program attachment
|
|
* scxtop: Add comprehensive MCP event analyzer infrastructure
|
|
* scx_bpfland: Classify sticky tasks based on their average runtime
|
|
* scx_bpfland: Scale vruntime credit based on queue depth
|
|
* scxtop: Fix P99 Runtime chart width in BPF detailed view
|
|
* scxtop: Add BPF program profiling with perf sampling
|
|
* scx_bpfland: Add --preferred-idle-scan option to prioritize faster CPUs
|
|
* scx_lavd: Add --pinned-slice-us option for improved pinned task
|
|
responsiveness
|
|
* scx_lavd: Add configurable migration threshold with avg utilization
|
|
* scx_layered: add memory bandwidth-based layer sizing
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Oct 21 14:13:30 UTC 2025 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Update to version 1.0.17:
|
|
* scx_cosmos: Introduce --avoid-smt
|
|
* scx_lavd: Add virtual LLC support
|
|
* scx_p2dq: Add overload scheduling
|
|
* scx_p2dq: Add LLC sharding
|
|
* scxcash: Add task hint backend
|
|
* scx_p2dq: Fix keep running
|
|
* scx_rustland: rename min_vruntime to vruntime_now
|
|
* scx_bpfland: Print command line options
|
|
* scx_layered: add TTL for layer membership
|
|
- Add scx.service which was dropped by upstream in favor of scx_loader
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Sep 17 11:28:49 UTC 2025 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Migrate from meson to cargo build system
|
|
* upstream is deprecating meson in favor of cargo and make:
|
|
https://github.com/sched-ext/scx/discussions/2731
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Sep 11 14:08:34 UTC 2025 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Update to version 1.0.16:
|
|
* scxtop: Support TUI as non root user
|
|
* scx_layered: Add regex template matching
|
|
* scxtop: Add LineGauge support
|
|
* scxcash: new tool cache usage analyzer
|
|
- remove 0001-scxtop-use-PT_REGS_IP-macro.patch:
|
|
* merged upstream
|
|
* https://github.com/sched-ext/scx/pull/2602
|
|
- remove 0001-vmlinux.h-refresh-with-the-updated-script.patch:
|
|
* merged upstream
|
|
* https://github.com/sched-ext/scx/pull/2586
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Aug 28 10:01:52 UTC 2025 - Enrico Belleri <kilgore.trout@idesmi.eu>
|
|
|
|
- Invoke meson macro
|
|
- Disable LTO:
|
|
* fixes compilation with meson macro
|
|
- Reduce min libbpf version to 1.4
|
|
- Reduce min llvm version to 1.7
|
|
- Reduce min meson version to 1.2.0
|
|
- Requires rust+cargo >= 1.82
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Aug 28 09:46:32 UTC 2025 - Guillaume GARDET <guillaume.gardet@opensuse.org>
|
|
|
|
- Add _constraints file to avoid OOM errors
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Aug 27 10:10:11 UTC 2025 - Shung-Hsi Yu <shung-hsi.yu@suse.com>
|
|
|
|
- bump dependency slab to version 0.4.11 (bsc#1248021 CVE-2025-55159)
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Aug 14 10:08:55 UTC 2025 - fredrik.lonnegren@suse.com
|
|
|
|
- add 0001-scxtop-use-PT_REGS_IP-macro.patch:
|
|
* Upstream fix for building on aarch64
|
|
* https://github.com/sched-ext/scx/pull/2602
|
|
- add 0001-vmlinux.h-refresh-with-the-updated-script.patch:
|
|
* Upstream fix for building on aarch64
|
|
* https://github.com/sched-ext/scx/pull/2586
|
|
- Update to version 1.0.15:
|
|
* scxtop: Add power info
|
|
* scxtop: Add network TUI view
|
|
* scxtop: Add perf top mode
|
|
* scx_lavd: Continue to use a CPU that has tasks on its per-CPU DSQ.
|
|
* scx_lavd: Add per-cpu dsq support
|
|
* scxtop: Add memory stats
|
|
* scxctl: Add restart command
|
|
* scxctl: some Rust formatting changes to satisfy the CI
|
|
* scxtop: add scrolling + state to process view
|
|
* scxtop: add process filtering
|
|
* scx_lavd: Add 'slice_used' for '--monitor-sched-samples'
|
|
* scxtop: make process columns extensible
|
|
* load_balance: Refactor create_domain_hierarchy
|
|
* scx_layered: Add debugging for layer matching
|
|
* scx_p2dq: Make extern symbols weak for old kernel support
|
|
* scx_p2dq: Add idle CPU priority tracking
|
|
* scx_p2dq: Add kprobe for sched_set_itmt_core_prio
|
|
* scx_p2dq: Add CPU priority
|
|
* scxtop: add pause capability
|
|
* scxtop: add fields to process view
|
|
* scx_tickless: Add support for preferred cores
|
|
* scx_p2dq: Allow configuring queued wakeup
|
|
* scheds: Introduce scx_cosmos
|
|
* scx_loader: set scx_flash as default scheduler
|
|
* scxtop: use new freq data in app
|
|
* scxtop: add cpu_frequency tracking
|
|
* scx_p2dq: Set CPU on promise during enqueue
|
|
* /etc/default/scx: set scx_flash as default scheduler
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Jul 09 07:53:27 UTC 2025 - fredrik.lonnegren@suse.com
|
|
|
|
- Update to version 1.0.14:
|
|
* scx_lavd: More aggressively compete against already enqueued tasks.
|
|
* scx_flash: Refine round-robin mode
|
|
* scx_p2dq: Use max slice for idle deadline scheduling
|
|
* scx_flash: Introduce --no-builtin-idle, --slice-lag-scaling,
|
|
--cpu-busy-thresh, --sticky-cpu, --rr-sched, --cpu-runqueue,
|
|
--direct-dispatch
|
|
* layered: add gpu task affinitizer stats
|
|
* scx_p2dq: Allow load balancing interactive tasks by default in dispatch
|
|
* scx_lavd: Be conservative about migrating to a waker's CPU.
|
|
* scxtop: fix cpu stats tracker instantiation
|
|
* scx_lavd: Add an option, "--no-use-em".
|
|
* scx_lavd: Add PCO table related data structure in BPF.
|
|
* scx_flash: Introduce tickless mode
|
|
* scxtop: make generic kprobe handler sample
|
|
* scx_flash: Disable voluntary context switch rate tracking by default
|
|
* scx_flash: Allow to exclusively enable per-CPUs or per-node DSQs
|
|
* scx_flash: Handle migration-disabled tasks in direct dispatch
|
|
* layered/chaos: make --version and startup message uniform
|
|
* scxtop: fixing tracer running after trace
|
|
* scxtop: adding sched_migrate_task tracepoint.
|
|
* scx_p2dq: Add deadline scheduling
|
|
* scx_p2dq: Update dispatch DSQ selection to use DSQ iterators
|
|
* scx_flash: Introduce
|
|
* layered: add -V/--version option
|
|
* scx_flash: Introduce "turbo" mode
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Jun 12 20:29:11 UTC 2025 - fredrik.lonnegren@suse.com
|
|
|
|
- Add llvm build dependency for llvm-strip
|
|
- Update to version 1.0.13:
|
|
* scx_p2dq: Special case dual socket wakeups
|
|
* scx_chaos: Add stats interface for chaos injection metrics
|
|
* scx_layered: Replenish slice for protected layers
|
|
* scx_flash: Prevent potential ops.enqueue() stall
|
|
* scx_flash: Introduce --run-lag
|
|
* scx_flash: Always update task domain before proactive wakeup
|
|
* scx_chaos: initialize nr_cpu_ids variable during arena initialization
|
|
* scx_layered: Collect layer LLC DSQ enqueues statistics
|
|
* scx_p2dq: Add tracing on select_cpu
|
|
* scx_mitosis: Use local time for log timestamps
|
|
* scx_p2dq: Add affinitized per CPU DSQs
|
|
* scx_p2dq: Fix vtime handling for nice tasks
|
|
* scx_flash: Never charge more than slice_max
|
|
* scx_flash: Allow cross-LLC sync wakeups only for related pipeline tasks
|
|
* scx_flash: Introduce --native-priority
|
|
* scx_flash: Port --local-pcpu option from scx_bpfland
|
|
* scx_flash: Reintroduce voluntary context switch-based prioritization
|
|
* scx_flash: Always scale task's execution time by its normalized weight
|
|
* scx_flash: Do not allow negative slice_lag
|
|
* scx_lavd/stats: Align #PREEMPT column width with header
|
|
* scx_lavd: improve terminal readability
|
|
* scx_lavd: simplify conditional return in can_direct_dispatch()
|
|
* scx_utils: set gpu topology cpu affinity based on the same NUMA node.
|
|
* scx_bpfland: Support balance_power and balance_performance modes
|
|
* scxtop: fix bug bouncing between help/event
|
|
* scxtop: enabling filtering perf events via input
|
|
* layered: add cgrp contains matcher
|
|
* scx_bpfland: Introduce --throttle-us
|
|
* scxtop: adding search module with fuzzy search
|
|
* scx_layered: limit layer growth to within its cpumask
|
|
* scx_layered: associate each layer with a cpumask
|
|
* scx_chaos: Add degradation chaos trait
|
|
* scxtop: aggregate GLOBAL and LOCAL dsq's
|
|
* scx_rustland_core: Disable THP for user-space scheduler
|
|
* chaos: implement pid targeting
|
|
* scx_rustland: Introduce --percpu-local
|
|
* scx_layered: add layer spec generation out of template
|
|
* p2dq/chaos: add trait for skeletons that can have their arenas setup
|
|
* scx_lavd: Add --preempt-shift option.
|
|
* scx_layered: Remove loop workaround in pick_idle_cpu_from()
|
|
* scx_p2dq: Optimize the keep running path
|
|
* scx_lavd: Count runtime only once in lat_cri calculation.
|
|
* scx_p2dq: Add fifo scheduling for interactive tasks
|
|
* scx_rustland: Slightly penalize newly created tasks
|
|
* scx_lavd: Simplify CPU preference order setup
|
|
* scx_lavd: Change the min slice to 500us.
|
|
* scx_layered: Allow exclusive tasks to share siblings as the last resort
|
|
* scx_chaos: Add CPU frequency chaos
|
|
* scx_layered: Make pick_idle_cpu_from() consider exclusivity
|
|
* scx_loader: Add rustland scheduler
|
|
* scx_lavd: Make the load balancing core compaction- and capacity-aware.
|
|
|
|
-------------------------------------------------------------------
|
|
Sat May 10 17:57:09 UTC 2025 - fredrik.lonnegren@suse.com
|
|
|
|
- Update to version 1.0.12:
|
|
* scx_p2dq: Keep non-interactive tasks sticky
|
|
* scx_tickless: Avoid distributing tasks on scheduling CPUs
|
|
* scx_p2dq: Try to keep affinitized tasks sticky
|
|
* scx_p2dq: Fix accounting for long running tasks
|
|
* layered: fix verifier error when cleaning up matchers
|
|
* layered: add stats to skip preempt and read kallsyms to get addresses
|
|
* layered: update policies used for determining preemption eligibility
|
|
* layered: dont preempt if policy is not sched_ext
|
|
* scx_lavd: Check if conflicting options are used.
|
|
* scx_lavd: Remove less useful options affecting CPU preference order.
|
|
* scx_lavd: Do not deprioritize a new task.
|
|
* scx_layered: Create pinned task local storage map
|
|
* scx_p2dq: Make interactive sticky work again
|
|
* scx_lavd: Collect and show the preemption stats.
|
|
* scx_lavd: Add --no-wake-sync, --no-preemption options
|
|
* scx_layered: add placement config option
|
|
* scx_layered: add layer matching based on average runtime
|
|
* scx_p2dq: Update slice accounting
|
|
* scx_layered: do not prevent protected CPUs from executing tasks in the fallback queue
|
|
* scx_rustland: Virtual deadline with partial execution runtime
|
|
* scxtop: attach dsq bpf programs on kernels < 6.13
|
|
* scx_lavd: Get the right CPU context from ops.stopping()
|
|
* scx_lavd: Improve handling of synchronous wake-up.
|
|
* lavd: get cpu context of scx_bpf_task_cpu in running
|
|
* scxtop: Add mangoapp TUI view
|
|
* scx_lavd: Use smt_level and cache_size for CPU preference order.
|
|
* scx_bpfland: Introduce --no-wake-sync
|
|
* rustscheds: add common SCX_TIMEOUT_MS env var to set stall watchdog limit
|
|
* scx_layered: Implement layer option skip_remote_node
|
|
* scx_p2dq: Add configuration for dispatch load balancing
|
|
* scx_layered: Fix queue delay output underflow in debug dump
|
|
* scxtop: better naming for kernel worker threads
|
|
* scx_p2dq: Fix affinitized task handling
|
|
* scx_lavd: Print scaled CPU utilization with --monitor-sched-samples.
|
|
* scx_lavd: Calculate scaled and invariant CPU utilization.
|
|
* scxtop: add process and thread descriptors
|
|
* scx_lavd: Use 1024 instead 1000 for fixed point arithmetic.
|
|
* scx_layered: gate nvidia_poll kprobe behind flag
|
|
* scx_bpfland: Normalize task weight
|
|
* scxtop: attach sched_waking program
|
|
* scx_p2dq: Update kthread selection on task context
|
|
* scx_lavd: Relax the atomic visibility of sys_stat.
|
|
* scx_lavd: Further prioritize kworkers.
|
|
* scx_lavd: Calculate the base time slice once every state is updated.
|
|
* scx_p2dq: Adjust max vtime calculation
|
|
* scx_lavd: Prioritize recently woken-up tasks.
|
|
* scx_lavd: Clean up runtime-related variable names.
|
|
* scx_lavd: Add --cpu-pref-order.
|
|
* scx_rusty: add private copy of allocator code that uses cast_kern()
|
|
* chaos: store p2dq vtime and restore it before enqueue
|
|
* chaos: guarantee dispatch of tasks on quiet cpus
|
|
* scxtop: scx_utils: Correctly handle signed values in CPU topology files
|
|
* scx_p2dq: Deprecate greedy idle selection
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Apr 03 07:49:22 UTC 2025 - fredrik.lonnegren@suse.com
|
|
|
|
- Update to version 1.0.11:
|
|
* scxtop: Disable bpf conditional attachment
|
|
* Add scxctl into tools
|
|
* scx_bpfland: Fix idle detection when SMT is disabled
|
|
* scx_layered: add node spread growth algo
|
|
* scx_p2dq: Add config for minimum queue size for pick2
|
|
* scx_p2dq: Add config for min runs for pick2
|
|
* scx_p2dq: Add stats for pick2 on dispatch/select paths
|
|
* scx_p2dq: Allow disabling pick2 load balancing on dispatch
|
|
* scx_p2dq: Add option to only load balance max DSQ tasks
|
|
* scx_flash: simplify scheduling policy
|
|
* scx_p2dq: Add helper to scale vtime by task weight
|
|
* scxtop: Fix DSQ initialization
|
|
* scx_layered: add protected layer flag
|
|
* scx_p2dq: Add min_nr_queued_pick2 check on pick_two_llc_ctx
|
|
* scx_bpfland: handle per-CPU tasks preempted by a higher scheduling class
|
|
* scx_lavd: Respect the core preference and some more.
|
|
* scx_layered: add cpus_pct cfg param
|
|
* scx_flash: mitigate stalls from higher priority scheduling classes
|
|
* scx_p2dq: Add idle resume QoS config
|
|
* scx_layered: Add idle qos config
|
|
* scxtop: adding hw_pressure event trace.
|
|
* scx_layered: add node spread reverse, swap it with node spread
|
|
* scx_layered: make nodespread account for smt
|
|
* scx_p2dq: Fix vtime handling in enqueue path
|
|
* scxtop: Add checks when updating DSQ latency
|
|
* scx_layered: More optimal core allocation
|
|
* scxtop: Add fork event tracing
|
|
* scx_p2dq: Cleanup pick_two_cpu selection
|
|
* scx_p2dq: Update default scheduler config
|
|
* scxtop: trace on_sched_exec event.
|
|
* scx_layered: add exclude match rule
|
|
* scx_lavd: Make the idle CPU selection compute domain aware.
|
|
* scx_lavd: Enable SCX_OPS_ALLOW_QUEUED_WAKEUP and misc.
|
|
* scx_p2dq: Fix vtime accounting
|
|
* scxtop: Add key bindings to toggle hw pressure
|
|
* scxtop: Add exit event tracing
|
|
* scx_bpfland: Enable SCX_OPS_ALLOW_QUEUED_WAKEUP
|
|
* scx_bpfland: Introduce --idle-resume-us
|
|
* scx_p2dq: Add support for SCX_OPS_ALLOW_QUEUED_WAKEUP
|
|
* scxtop: fix clock_sync_failure errors
|
|
* scxtop: adding cpu hotplug event on exit trace event.
|
|
* scx_layered: add NodeSpreadRandom growth algo
|
|
* scx_layered: Fix accounting, reporting and CPU allocation fluctuations
|
|
* scx_lavd: Better control and handling of per-CPU tasks.
|
|
* scx_bpfland: Improve NUMA node locality
|
|
* scx_p2dq: Fix stalls caused by improper handling of affinitized tasks
|
|
* scx_bpfland: Introduce an option to disable SMT awareness
|
|
* scx_lavd: Fix incorrect task affinity testing and more.
|
|
* scx_bpfland: Fix direct dispatch migration
|
|
* scx_p2dq: Fix affinitized task handling
|
|
* scx_lavd: Revise task affinity testing.
|
|
* scx_p2dq: Fix handling for two LLCs
|
|
* scx_p2dq: Update default load balancing config
|
|
* scx_layered: remove extra call to test_and_clear_cpu in pick_idle_from
|
|
* scx_chaos: init with basic functionality
|
|
* scx_p2dq: Improve locality for affinitized tasks
|
|
* scx_p2dq: Avoid aggressive return on cpu selection
|
|
* scx_bpfland: NUMA load balancer
|
|
|
|
-------------------------------------------------------------------
|
|
Fri Mar 07 10:17:37 UTC 2025 - fredrik.lonnegren@suse.com
|
|
|
|
- remove fix-aarch64.patch: fixed upstream
|
|
- Update to version 1.0.10:
|
|
* scxtop: adding one perf event type L1-dcache-load-misses.
|
|
* scx_p2dq: Add scx_p2dq scheduler
|
|
* scxtop: track sched_waking events
|
|
* scx_p2dq: Fix vtime handling and cleanup
|
|
* scx_layered: making unexpected gpu error smoother.
|
|
* scx_layered: Remove CPU shuffling when idle CPU is not found in layered_select_cpu()
|
|
* scx_layered: enable creating scx appimage
|
|
* scx_wd40: Introduce wd40 scheduler
|
|
* scxtop: make q exit help if in help instead of quitting
|
|
* scxtop: track number of dropped events and render it
|
|
* scx_p2dq: Add perf boost to interactive tasks
|
|
* scx_layered: Update enqueue path to use direct dispatch into foreign local DSQs
|
|
* scxtop: Add softirq events
|
|
* scx_layered: Fix pick_idle_cpu() sometimes returning a disallowed CPU
|
|
* scx_lavd: Avoid scx_bpf_kick_cpu(SCX_KICK_PREEMPT) for self-preemption
|
|
* scx_p2dq: Update load balancing
|
|
* scx_wd40: add cpumask library
|
|
* scx_layered: Enable queued wakeup optimization
|
|
* scx_loader: Add p2dq scheduler
|
|
* scx_lavd: Fix the performance regression in recent changes.
|
|
* scxtop: propose to give the ability to focus on one process.
|
|
* scx: Don't panic on missing enums in C schedulers
|
|
* scx_p2dq: Fix verifier issue on big/little topology
|
|
* scx_p2dq: Add autoslice tuning
|
|
* scxtop: add experimental_long_tail_tracing
|
|
* scx_p2dq: Update pick2 migration logic
|
|
* scx_bpfland: disable auto local dispatch for migration-disabled tasks
|
|
* scxtop: Add IPI events
|
|
* scxtop: __bpf_ringbuf_reserve() failure set to ENOMEM instead.
|
|
* scx_layered: add debug logging for gpu support and fix UsingGpu matcher
|
|
* scx_p2dq: Add initial wake sync support
|
|
* scxtop: Make tokio runtime options configurable
|
|
* scx_layered: change sysinfo version to 0.30
|
|
* scx_utils: use clsuter_id to detect if big.LITTLE CPUs
|
|
* scx_bpfland: avoid creating redundant cache domains
|
|
* scx_layered: fix gpu matcher bugs
|
|
* scxtop: Add localization on number formatting
|
|
* scx_bpfland: reduce task migrations
|
|
* sched_ext: Add NUMA-aware idle CPU helpers
|
|
* scx_bpfland: Always re-enqueue tasks that are running on a busy SMT core
|
|
* scxtop: Add config file
|
|
* scx_utils: gpu topology adding nearest available devices.
|
|
* scx_bpfland: Skip idle CPU selection when system is fully busy
|
|
* scx_bpfland; use scx_bpf_now() consistently
|
|
* scx_bpfland: fix non-SMT CPU busy state detection
|
|
* scx_lavd: Use tracepoints for futex for reliable tracing
|
|
* scx_lavd: Fix BPF verifier errors in old kernels.
|
|
* scx_p2dq: Handle invalid load sum calculations
|
|
* scxtop: Add keymap configuration
|
|
* scxtop: add logging to file with panics
|
|
* scxtop: clamp gauge ratio
|
|
* scxtop: use smartstr with SSO for comms
|
|
* scxtop: Add separate subcommand for TUI and shell completion
|
|
* scx_layered: fix gpu matcher
|
|
* scxtop: Set correct max on LLC sparkline view
|
|
* scxtop: Add EventDispatchManager for handling events
|
|
* scx_bpfland: NUMA-aware scheduling
|
|
* scxtop: Fix max sparkline value across NUMA nodes
|
|
* scx_layered: add stats tracking when antistall is ran
|
|
* layered: update documentation for recently added options
|
|
* scx_utils: using TopologyLevel::Internal nearest gpu discovery mode.
|
|
* scxtop: adding gpu_mem_total tracepoint.
|
|
* scxtop: adding cpu hotplug (enter) event tracepoint.
|
|
* scxtop: Conditionally attach GPU probes
|
|
* scx_flash: drop user lock priority boosting
|
|
* scx_bpfland: fix cache domain detection
|
|
* scxtop: Filter sched_switch events less aggressively
|
|
* scxtop: Allow attaching hardware specific perf events
|
|
* scxtop: stop traces with bpf timer
|
|
* scxtop: always send bpf event to terminate trace
|
|
* scx_layered: expand kprobes used for gpu support
|
|
* scxtop: Add trace command
|
|
* scx_utils, scx_lavd: Enable futex holder boosting conditionally.
|
|
* scx_bpfland: Fix is_wake_sync()
|
|
* scx_utils: Fix kernels without CONFIG_DEBUG_FS
|
|
* scxtop: making few kernel probes conditional.
|
|
* scheds: Introduce scx_tickless
|
|
* scx_layered: Improve kthread handling
|
|
* scx_layered: Implement IsKthread match
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Feb 11 08:54:08 UTC 2025 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- add fix-aarch64.patch: Add patches for building for aarch64
|
|
* https://github.com/sched-ext/scx/issues/1320
|
|
|
|
-------------------------------------------------------------------
|
|
Wed Feb 05 08:41:57 UTC 2025 - fredrik.lonnegren@suse.com
|
|
|
|
- Update to version 1.0.9:
|
|
* versions: Synchronize crate versions to the latest used
|
|
* scx_lavd: Use BPF CO-RE for SCX_ENQ_CPU_SELECTED
|
|
* scx_layered: make gpu poll interval configurable
|
|
* scx_prev: a simple scheduler tested on OLTP workloads
|
|
* scx_lavd: Don't try preemption for greedy tasks
|
|
* scxtop: Add trace options
|
|
* scx_central: alert for 'silly' values for the chosen cpu from command line.
|
|
* scx_lavd: Preemption when ops.select_cpu() was skipped
|
|
* scxtop: Add support for generating perfetto traces
|
|
* scx_bpfland: enable task preemption
|
|
* scx_layered: add gpu matcher
|
|
* rust schedulers: for sibling cpu using static dispatch instead.
|
|
* scx_bpfland: reduce heap allocation with energy profile/primary domain.
|
|
* scx_bpfland: Mark --local-kthreads/-k as experimental
|
|
* scx_loader: Update performance profiles for scx_bpfland
|
|
* scxtop: Fix layout for sparklines
|
|
* scxtop: Add scx_stats support
|
|
* scx_lavd: Conder the hardware resource sharing level in CPU ordering
|
|
* scxtop: Fill render area by setting max events
|
|
* scxtop: Add event to default list after selection
|
|
* scx_layered: fixes for MATCH_SCXCMD_JOIN
|
|
* scxtop: Fix scroll on page up
|
|
* scxtop: update help display with last changes (perf event scrolling).
|
|
* scx_bpfland: Introduce --cpufreq to enable CPU frequency scaling
|
|
* scx_bpfland: Introduce --local-pcpu to prioritize per-CPU tasks
|
|
* scx_bpfland: Get rid of the interactive task classification via nvcsw
|
|
* scx_bpfland: Allow tasks to overflow primary domain more aggressively
|
|
* scx_bpfland: Virtual deadline with partial execution vruntime
|
|
* scx_bpfland: Do not scale slice lag with the task weight
|
|
* scx_bpfland: Set max performance level with balance_performance
|
|
* scx_lavd: Direct dispatch at ops.enqueue()
|
|
* scx_lavd: Do not reserve an idle cpu at ops.enqueue()
|
|
* scx_loader: Avoid race condition with start_scheduler
|
|
* scx_lavd: Use time_delta() for clock difference calculation
|
|
* scxtop: Add ability to select perf events
|
|
* scxtop: proposing to add bus-cycles event.
|
|
* scx_layered: add 'join layer' command
|
|
* scx_central: fix cpu affinity corrupted allocation (glibc).
|
|
* scx_rusty: fix custom PartialOrd implementation build warning.
|
|
* scx_layered: Fix dump_layer_cpumask()
|
|
* scx_rustland_core: fix static mutable reference usage warning (BUF).
|
|
* scxtop: Collect uncore frequency
|
|
* scx_rusty: use lb_domain naming for load balancing domains
|
|
* scxtop: Fix node barchart
|
|
* scx_bpfland: avoid starvation of per-CPU tasks
|
|
* scxtop: Fix attach on newer kernels
|
|
* scxtop: Add CPU frequency to default sparkline view
|
|
* scxtop: Add barchart to node view
|
|
* scx_bpfland: re-enqueue tasks when a CPU is taken by a higher sched class
|
|
* scx_bpfland: give queued tasks a chance to run on the same CPU
|
|
* scx_bpfland: do not dispatch per-CPU kthreads directly by default
|
|
* scx_bpfland: proactively wake idle CPUs after task enqueue
|
|
* scx_layered: Add pid namespace layer matching
|
|
* scx_bpfland: do not allow per-CPU kthread to preempt other tasks
|
|
* scxtop: Add scheduler view to llc/node views
|
|
* scx_lavd: Add a fast path for a migration-disabled task in pick_idle_cpu()
|
|
* scxtop: Add scxtop tui
|
|
* scx_flash: prevent scheduling bubbles on kernels >= 6.12
|
|
* scx_rusty: prevent scheduling bubbles on kernels >= 6.12
|
|
* scx_bpfland: use nvcsw metrics only for cpufreq scaling
|
|
* scx_bpfland: evaluate deadline based on vruntime and task's sum_vruntime
|
|
* scx_bpfland: consider sum_runtime instead of avg_runtime
|
|
* scx_bpfland: never actively wake-up idle CPUs
|
|
* scx_flash: Option for userspace lock boosting
|
|
* scx_bpfland: support !CONFIG_SMP kernels
|
|
* scx_rusty: use arena allocations instead of maps for tasks
|
|
* scx_rusty: use map to manage task masks
|
|
* scx_layered: Fix multplication overflows
|
|
* scx_layered: Improve open layer prot[_preempt] accounting
|
|
* scx_layered: Don't apply preempt protection between two open layers
|
|
* scx_layered: Disable owner protection for preempt layers
|
|
* scx_rusty: remove per-task temp mask and replace with per-CPU singleton
|
|
* scx_layered: Implement layer property disallow_preempt_after_us
|
|
* scx_lavd: Prioritize a migration-disabled task
|
|
* scx_lavd: Ensure to check all compute domains when task stealing
|
|
* scx_lavd: Kick an idle cpu as early as possible on ops.select_cpu()
|
|
* scx_lavd: Change the default time slice to 5 msec
|
|
* scx_lavd: Add a fast path to pick_idle_cpu() when overloaded
|
|
* scx_lavd: Turn on frequency scaling in performance mode
|
|
* scx_lavd: Properly reinitialize cpumask for autopilot mode
|
|
* scx_rustland_core: Select any idle CPU when task affinity changes
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Dec 17 09:35:57 UTC 2024 - fredrik.lonnegren@suse.com
|
|
|
|
- Update to version 1.0.8:
|
|
* scx_layered: Put all tasks with custom affinities into the hi fallback DSQs
|
|
* scx_bpfland: do not rely on scx_utils::autopower
|
|
* scx_layered: Make low fallback DSQs useful and other changes
|
|
* scx_layered: handle nr_to_free calculation
|
|
* scx_layered: Implement empty LLC draining
|
|
* scx_layered: queued_runtime tracking bug fix and disable xllc_mig_min_us
|
|
* scx_bpfland: server workload improvements
|
|
* scx_loader: add mode for server-oriented workloads
|
|
* scx_layered: Improve layer core growth algos
|
|
* scx_layered: Make layered work in pid namespaces
|
|
* scx_loader: fix recursion of type convertion
|
|
* scx_layered: Add pid namespace layer matching
|
|
|
|
-------------------------------------------------------------------
|
|
Sat Dec 07 13:29:51 UTC 2024 - fredrik.lonnegren@suse.com
|
|
|
|
- Update to version 1.0.7:
|
|
* scx_layered: Add fallback DSQ cost accounting
|
|
* scx_layered: Fix verifier issue when tracing
|
|
* scx_lavd: update cur_logical_clk atomically
|
|
* scx_loader: tune scx_bpfland default options
|
|
* scx_layered: Fix verifier issue on older kernels
|
|
* scx_layered: Use layer idle_smt option
|
|
* scx_layered: Add fallback costs to dump
|
|
* scx_layered: Work around older kernels choking on function calls
|
|
* scx_layered: add timer antistall
|
|
* scx_layered: Fix error in dispatch consumption
|
|
* scx_layered: Add helper for layer slice duration
|
|
* scx_layered: Fix cost accounting for fallback dsqs
|
|
* scx_layered: Consume from local LLCs for dispatch
|
|
* scheds: introduce scx_flash
|
|
* scx_layered: Perf improvements and a bug fix
|
|
* scx_layered: Don't limit antistall execution to layered_cpumask
|
|
* scx_layered: Fix verifier issues on older kernels
|
|
* scx_layered: Cleanups around topology handling
|
|
* scx_lavd: Factor the task's runtime more aggressively in a deadline
|
|
calculation
|
|
* scx_layered: Work around verification failure in antistall_set()
|
|
* scx_loader: add scx_flash as supported scheduler
|
|
* scx_layered: Add netdev IRQ balancing
|
|
* scx_layered: Use PROG_RUN for cpumask updates
|
|
* scx_lavd: Optimize the layout of struct task_ctx
|
|
* scx_layered: Remove high fallback dsq budget check
|
|
* scx_lavd: Do not exclude exiting tasks
|
|
* scx_rustland_core: proactively wake up CPUs when selected by user space
|
|
* scx_layered: Reimplement CPU allocation and some other fixes
|
|
* scx_rusty: Fix verifier errors on older kernels
|
|
* scx_layered: select_cpu() fixes and updates
|
|
* scx_lavd: Boost time slice more generously
|
|
* scx_lavd: Optimize performance criticality calculation
|
|
* scx_lavd: Optimize the cpuc_ctx layout for cache friendliness
|
|
* scx_lavd: Optimize preemption
|
|
* scx_bpfland: restart on energy profile change
|
|
* scx_lavd: add tunables for adjusting time slices
|
|
* scx_layered: Track owned/open execution times and per-LLC-layer stats
|
|
* scx_loader: restart scheduler upon fail
|
|
* scx_lavd: Limit the slice extension of a lock holder
|
|
* scx_layered: Implement in-layer execution protection to replace cost based
|
|
fairness
|
|
* scx_bpfland: dump cache_id_map in ascending order
|
|
* scx_layered: Fix idle selection on big/little
|
|
* scx_layered: Prioritize sched userspace and fix owned execution protection
|
|
* scx_layered: State tracking updates and layer sizing related fixes
|
|
* scx_lavd: Load balancing across compute domains
|
|
* scx_layered: Deprecate idle_smt layer config
|
|
* scx_lavd: Fetch active profile from power-profiles-daemon dbus interface
|
|
when using autopower
|
|
* scx_layered: Make vtime_now per-LLC
|
|
* scx_layered: Implement layer config xllc_mig_min_us
|
|
* scx_utils: Extend topology to support Snapdragon X Elite
|
|
* scx_rusty: Refactor access operation of nodemask
|
|
* scx_stats,scx_lavd: describe non-nested stats meta
|
|
* scx_lavd: Reset per-CPU preemption information when a CPU is released
|
|
* scx_layered: Fix vtime and llc_id handling bugs
|
|
* scx_layered: Fix a silly bug in select_cpu() and implement per-layer fifo
|
|
mode
|
|
|
|
-------------------------------------------------------------------
|
|
Mon Nov 18 15:49:21 UTC 2024 - fredrik.lonnegren@suse.com
|
|
|
|
- Update to version 1.0.6:
|
|
* scx_lavd: support CPU hotplug correctly
|
|
* scx_rusty: fix single dom short-circuit
|
|
* scx_layered: Add per layer time slices to stats
|
|
* scx_layered: Refactor topology algorithms to a separate module
|
|
* scx_layered: Add per layer weights
|
|
* scx_bpfland: rework lowlatency mode
|
|
* scx_layered: Add big cpumask
|
|
* scx_layered: Use idle smt mask for idle selection
|
|
* scx_layered: Improve perf on non topo aware paths
|
|
* scx_rusty: Fix BPF crash during CPU hotplug
|
|
* scx_layered: Update idle topology selection order
|
|
* scx_layered: lighten/reduce nested loops in layered dispatch
|
|
* scx_layered: Add stress-ng example layer
|
|
* scx_layered: Make stress-ng non exclusive in example
|
|
* scx_bpfland: prevent per-CPU DSQ stall with per-CPU kthreads
|
|
* scx_layered: enable configuring layer iteration when no topo
|
|
* [rusty] Fix load stats when host is under-utilized
|
|
* scx_layered: Update CI to show stats
|
|
* layered: split dispatch into no_topo version
|
|
* scx_layered: Rename load_adj statistic
|
|
* layered: attempt to work steal from own llc before others
|
|
* scx_layered: Fix verifier errors
|
|
* scx_layered: Cleanup debug messages
|
|
* scx_bpfland: fix cpumask initialization error
|
|
* scx_layered: Change default DSQ iter algo
|
|
* scx_layered: Cleanup topology preempt path
|
|
* scx_layered: Implement reverse weight DSQ algorithm
|
|
* scx_layered: make default value for disable_topology dynamic
|
|
* scx_lavd: mitigate the lock holder preemption problem
|
|
* scx_rustland_core: use handle_mm_fault kprobe
|
|
* scx_bpfland: drop per-cpu DSQs
|
|
* scx_lavd: do not inspect scx_lavd process itself
|
|
* scx_layered: Remove layer iteration
|
|
* scx_mitosis: handle enqueue() on !wakeup
|
|
* scx_mitosis: Handle pinned tasks
|
|
* scx_layered: add RandomTopo layer growth algorithm
|
|
* scx_layered: make disable_topology arg require equals
|
|
* scx_bpfland: rework lowlatency mode
|
|
* scx_layered: Fix crash on aarch64 due to unavailable cache id file
|
|
* scx_lavd: add missing reset_lock_futex_boost()
|
|
* scx_rustland: Adjust task's vruntime budget based on latency weight
|
|
* scx_layered: fix exit_task ctx lookup err
|
|
* scx_lavd: fix/work around a verifier error
|
|
* scx_lavd: various optimizations for more consistent performance
|
|
* scx_loader: introduce configuration
|
|
* scx_layered: Add monitor
|
|
* scx_layered: Fix declarations in timer
|
|
* scx_lavd: fix uninitialized memory access at comp_preemption_info()
|
|
* scx_layered: support verifying on older kernels and fix logic
|
|
* scx_layered: Add cost accounting
|
|
* scx_lavd: optimize preemption
|
|
* scx_layered: Refactor dispatch
|
|
* scx_lavd: tuning and optimizing latency criticality calculation
|
|
* scx_layered: Add layer name to bpf
|
|
* scx_layered: Add layer CPU cost to dump
|
|
* scx_lavd: Correct the type of taskc within lavd_dispatch()
|
|
* scx_lavd: optimize ops.dispatch() and DSQ placement
|
|
* scx_layered: Fix dump output format
|
|
* scx_layered: Add additional drain to fallback DSQs
|
|
* scx_layered: Fix trace format
|
|
* scx_layered: point costc to global struct when initializing budgets
|
|
* scx_lavd: entirely drop kernel lock tracing
|
|
* scx_rusty: Restore push domain tasks when no task found
|
|
* scx_lavd: fix a performance regression bug
|
|
(perf bench -f simple sched messaging)
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Oct 29 18:02:44 UTC 2024 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Move scx-<version>.tar.zst to buildtime service.
|
|
|
|
-------------------------------------------------------------------
|
|
Tue Oct 22 08:48:50 UTC 2024 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Add devel package that includes the common headers from the upstream
|
|
repository.
|
|
|
|
-------------------------------------------------------------------
|
|
Thu Oct 3 19:00:46 UTC 2024 - Fredrik Lönnegren <fredrik.lonnegren@suse.com>
|
|
|
|
- Update to v1.0.5:
|
|
* scx_rustland_core: introduce topology awareness
|
|
* scx_layered: clean up Layer::new layer_growth_algo
|
|
* scx_lavd: improve greedy ratio calculation and more
|
|
* scx_rustland_core: move includes back to the lib section
|
|
* scx_bpfland: use sum_exec_runtime to evaluate task's used time slice
|
|
* scx_layered: Fix typo in stats
|
|
* scx_layered: Pass layer spec for core growth algo
|
|
* scx_rusty: init domains when calculating averages
|
|
* scx_layered: Add random layer growth algo by
|
|
* scx_layered: Add topology aware core growth selection
|
|
* scx_layered: Add stats for XNUMA/XLLC migrations
|
|
* scx_lavd: add a short circuit for the case of no turbo core
|
|
* scx_lavd: boost the latency-criticality of kernel threads
|
|
* scx_bpfland: refine idle CPU selection logic
|
|
* scx_layered: add round robin growth strategy
|
|
* scxstats_to_openmetrics: fix format string
|
|
* scx_rustland_core: improve idle CPU selection API and logic
|
|
* scx_rustland_core: prevent CI failures
|
|
* scx_rustland_core: Access the returned value of saturating_sub()
|
|
* scx_layered: Refactor match_layer() and implement helper function to access
|
|
cpumask within bpf_cpumask
|
|
* scx_bpfland: Remove the usage of cast_mask in bpfland_enqueue
|
|
* scx_lavd: consider waker's CPU when ops.select_cpu()
|
|
* scx_layered: Add a hi fallback dsq per llc
|
|
* scx_layered: Add Big/Little core growth algos
|
|
* scx_layered: Add topology aware preemption
|
|
* scx_lavd: find a victim cpu for preemption within task's compute domain
|
|
* scx_layered: Add waker stats per layer
|
|
* scx_layered: Cleanup dump format
|
|
* scx_lavd: propagate waker's latency criticality to its wakee
|
|
* scx_layered: Restrict preemption to layer cpumask
|
|
* scx_layered: Make layered idle CPU selection topology aware
|
|
* scx_rustland_core: fix mm stall
|
|
* scx_loader: Add initial automatic scheduler switching via --monitor-no-dbus
|
|
* scx_layered: Add layer growth algo to layer bpf config
|
|
* Sync from kernel and re-enable scx_flatcg and scx_pair
|
|
* scx_layered: Fix idle core selection
|
|
* scx_loader: Add systemd service and on-DBUS launch
|
|
* scx_lavd: more accurately determine the performance criticality threshold
|
|
* scx_lavd: fix two potential bugs
|
|
* scx_layered: Fix cache initialization
|
|
* Revert "scx_rustland_core: prevent deadlock with per-CPU DSQs and CPU
|
|
* scx_bpfland small fixes and improvements
|
|
* scx_stats: Implement macro #stat_doc to autogen doc from stat desc
|
|
* scx_lavd: Fix typo
|
|
|