Projects
home:Eustace:branches:Eulaceura:Factory
irqbalance
_service:obs_scm:backport-Slience-.-rebalancing...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:obs_scm:backport-Slience-.-rebalancing-messages-for-unmigratable-IRQs.patch of Package irqbalance
From ad0ea2c4c09d6aa76e6c3f87587047cbaddf254e Mon Sep 17 00:00:00 2001 From: StefanBruens <stefan.bruens@rwth-aachen.de> Date: Wed, 13 Dec 2023 01:28:59 +0100 Subject: [PATCH] Slience "... rebalancing" messages for unmigratable IRQs It is fairly pointless to try migrating an IRQ which is known to be unmigratable. Instead of using an extra flag, set the `level` to BALANCE_NONE, which shortcuts quite some code, and implicitly also disables the misleading repeated log message: ``` Dez 10 02:52:55 varm irqbalance[828]: Selecting irq 75 for rebalancing Dez 10 02:52:55 varm irqbalance[828]: Cannot change IRQ 75 affinity: Input/output error Dez 10 02:52:55 varm irqbalance[828]: IRQ 75 affinity is now unmanaged ... Dez 10 02:52:55 varm irqbalance[828]: Selecting irq 75 for rebalancing ... Dez 10 02:52:55 varm irqbalance[828]: Selecting irq 75 for rebalancing ``` Reference: https://github.com/Irqbalance/irqbalance/commit/ad0ea2c4c09d6aa76e6c3f87587047cbaddf254e Conflict: The community patch set the info->level flag. However, the backport-feature-introduce-verifyhint-to-detect-hint-variatio.patch patch deletes the judgment of info->moved in the activate_mapping function. As a result, the irqbalance prints logs every 10 seconds. Therefore, the community patch is modified to add the judgment of info->level flag. --- activate.c | 5 +++-- irqlist.c | 2 +- types.h | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/activate.c b/activate.c index 548a401..4830f34 100644 --- a/activate.c +++ b/activate.c @@ -62,7 +62,7 @@ static void activate_mapping(struct irq_info *info, void *data __attribute__((un if (!info->assigned_obj) return; - if (info->flags & IRQ_FLAG_AFFINITY_UNMANAGED) + if (info->level == BALANCE_NONE) return; /* activate only online cpus, otherwise writing to procfs returns EOVERFLOW */ @@ -105,7 +102,8 @@ error: break; default: /* Any other error is considered permanent. */ - info->flags |= IRQ_FLAG_AFFINITY_UNMANAGED; + info->level = BALANCE_NONE; + info->moved = 0; /* migration impossible, mark as done */ log(TO_ALL, LOG_WARNING, "IRQ %i affinity is now unmanaged\n", info->irq); } diff --git a/irqlist.c b/irqlist.c index 4dd4a83..0ba411e 100644 --- a/irqlist.c +++ b/irqlist.c @@ -78,7 +78,7 @@ static void move_candidate_irqs(struct irq_info *info, void *data) struct load_balance_info *lb_info = data; unsigned long delta_load = 0; - /* Don't rebalance irqs that don't want it */ + /* Don't rebalance irqs that don't want or support it */ if (info->level == BALANCE_NONE) return; diff --git a/types.h b/types.h index c63cfea..ea1fae8 100644 --- a/types.h +++ b/types.h @@ -35,7 +35,6 @@ * IRQ Internal tracking flags */ #define IRQ_FLAG_BANNED (1ULL << 0) -#define IRQ_FLAG_AFFINITY_UNMANAGED (1ULL << 1) enum obj_type_e { OBJ_TYPE_CPU, -- 2.28.0.windows.1
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2