Le jeu. 1 févr. 2024 à 13:30, Sébastien Chaumat <[email protected]> a
écrit :
> I spotted the following warning for IRQ7 (along with IRQ6 and 10)
>
> [ 0.686073] fedora kernel: __irq_set_trigger: genirq: No set_type
> function for IRQ 7 (IR-IO-APIC)
>
> This comes from kernel/irq/manage.c
>
>
> int __irq_set_trigger(struct irq_desc *desc, unsigned long flags)
> {
> struct irq_chip *chip = desc->irq_data.chip;
> int ret, unmask = 0;
>
> if (!chip || !chip->irq_set_type) {
> /*
> * IRQF_TRIGGER_* but the PIC does not support multiple
> * flow-types?
> */
> pr_debug("No set_type function for IRQ %d (%s)\n",
> irq_desc_get_irq(desc),
> chip ? (chip->name ? : "unknown") : "unknown");
> return 0;
> }
> Could this have a role in the IRQ misconfiguration by xen ?
>
Things are getting even weirder :
xen 4.18.1-pre (vanilla, no patching of pci_xen_initial_domain()), kernel
6.8.0-rc2) :
checking /sys/kernel/irq/7 :
actions: pinctrl_amd
chip_name: xen-pirq
hwirq:
name: ioapic-edge
per_cpu_count: 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
type: edge
wakeup: disabled
now checking xen with xl debug-key i
(XEN) IRQ: 7 vec:51 IO-APIC-level status=030 aff:{13}/{13}
in-flight=0 d0: 7(---)
(XEN) IRQ 7 Vec 81:
(XEN) Apic 0x00, Pin 7: vec=51 delivery=Fixed dest=P status=1
polarity=1 irr=1 trig=L mask=0 dest_id:0000510d
So even after dom0 is set up, the kernel considers IRQ7 is of type edge
while xen has it registered as IO-APIC-level.