Skip to content

Warning in dmesg - irq_chip rp1_irq_chip did not update eff. affinity mask of irq x #7101

@P33M

Description

@P33M

Describe the bug

This somewhat mysterious line irq_chip rp1_irq_chip did not update eff. affinity mask of irq appears on every boot. It's a pr_warn_once which when turned into a plain WARN() prints a stacktrace for every requested IRQ. One example picked at random:

[    9.150053] ------------[ cut here ]------------
[    9.150059] irq_chip rp1_irq_chip did not update eff. affinity mask of irq 158
[    9.150067] WARNING: CPU: 3 PID: 252 at kernel/irq/manage.c:215 irq_do_set_affinity+0x130/0x1a8
[    9.150074] Modules linked in: rp1_mailbox(+) i2c_designware_core nvmem_rmem rp1_adc raspberrypi_gpiomem uio_pdrv_genirq uio sch_fq_codel i2c_dev fuse drm drm_panel_orientation_quirks backlight nfnetlink ip_tables x_tables ipv6
[    9.150091] CPU: 3 UID: 0 PID: 252 Comm: (udev-worker) Tainted: G        W          6.12.54-v8-16k+ #2
[    9.150095] Tainted: [W]=WARN
[    9.150096] Hardware name: Raspberry Pi 5 Model B Rev 1.0 (DT)
[    9.150098] pstate: 604000c9 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    9.150101] pc : irq_do_set_affinity+0x130/0x1a8
[    9.150103] lr : irq_do_set_affinity+0x130/0x1a8
[    9.150105] sp : ffffc000831c3740
[    9.150106] x29: ffffc000831c3740 x28: 0000000000000000 x27: ffff8000805c6580
[    9.150110] x26: ffff80003fbb75c8 x25: 0000000000000000 x24: ffffaf9070374000
[    9.150114] x23: ffffd06fcfdf6160 x22: ffff8000805cb200 x21: ffffd06fcfef6f58
[    9.150117] x20: ffff8000805cb230 x19: ffffd06fcf8435c8 x18: ffffffffffffffff
[    9.150121] x17: 312071726920666f x16: 206b73616d207974 x15: 696e69666661202e
[    9.150124] x14: 6666652065746164 x13: 3835312071726920 x12: 666f206b73616d20
[    9.150127] x11: 7974696e69666661 x10: ffffd06fcfcf04e8 x9 : ffffd06fce51d8f8
[    9.150131] x8 : 00000000ffffefff x7 : ffffd06fcfcf04e8 x6 : 0000000000000000
[    9.150134] x5 : ffff80003fbb7408 x4 : 0000000000000fff x3 : ffffaf9070374000
[    9.150138] x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff8001c09d0800
[    9.150141] Call trace:
[    9.150142]  irq_do_set_affinity+0x130/0x1a8
[    9.150144]  irq_setup_affinity+0xc0/0x168
[    9.150147]  irq_startup+0x104/0x158
[    9.150150]  __setup_irq+0x3b8/0x6d0
[    9.150152]  request_threaded_irq+0xf4/0x1c0
[    9.150155]  devm_request_threaded_irq+0x88/0x110
[    9.150157]  rp1_mbox_probe+0x74/0x130 [rp1_mailbox]
[    9.150161]  platform_probe+0x70/0xf0
[    9.150165]  really_probe+0xc4/0x2a8
[    9.150167]  __driver_probe_device+0x80/0x140
[    9.150169]  driver_probe_device+0x48/0x170
[    9.150171]  __driver_attach+0x9c/0x1b0
[    9.150172]  bus_for_each_dev+0x7c/0xe8
[    9.150176]  driver_attach+0x2c/0x40
[    9.150179]  bus_add_driver+0xec/0x218
[    9.150182]  driver_register+0x68/0x138
[    9.150184]  __platform_driver_register+0x2c/0x40
[    9.150186]  rp1_mbox_driver_init+0x28/0x3ff8 [rp1_mailbox]
[    9.150189]  do_one_initcall+0x4c/0x280
[    9.150192]  do_init_module+0x60/0x230
[    9.150194]  load_module+0x1c90/0x1d80
[    9.150196]  __do_sys_init_module+0x180/0x200
[    9.150198]  __arm64_sys_init_module+0x24/0x38
[    9.150200]  invoke_syscall+0x50/0x120
[    9.150204]  el0_svc_common.constprop.0+0xd0/0xf8
[    9.150207]  do_el0_svc+0x28/0x40
[    9.150210]  el0_svc+0x30/0x100
[    9.150213]  el0t_64_sync_handler+0x13c/0x158
[    9.150216]  el0t_64_sync+0x190/0x198
[    9.150218] ---[ end trace 0000000000000000 ]---

I do note that my previous suggestion of using msi_domain_set_affinity() in #6077 a) isn't widely used among other ITS-like drivers, and b) doesn't call irq_data_update_effective_affinity().

Steps to reproduce the behaviour

dmesg -l warn

Device (s)

Raspberry Pi 5

System

Bookworm | Trixie

Logs

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions