Reasoning backward (using a kernel without the pinctrl_amd driver to ensure xen only is at stake) :
checking the diff in IOAPIC between bare metal and xen (IRQ7 is on pin07 on APIC )
using kernel argument : apic=debug
bare metal :
[ 0.715330] fedora kernel: ... APIC VERSION: 81050010
...
[ 0.715433] fedora kernel: pin07, disabled, edge , high, V(00), IRR(0), S(0), physical, D(0000), M(0)
xen :
[ 2.249582] fedora kernel: ... APIC VERSION: 00000014
...
[ 2.249730] fedora kernel: pin07, disabled, level, low , V(60), IRR(0), S(0), physical, D(0000), M(0)
So the APIC table is not the same.
As strange as it looks the (IOAPIC 0) pin07 is correctly described by the APIC in xen but yet differently than in baremetal.
But the APIC message comes long after the
[ 1.833145] fedora kernel: xen: registering gsi 7 triggering 0 polarity 1
so I wonder if the APIC pin07 info had any influence.