On Fri, Oct 04, 2024 at 11:50:28PM +0530, Maverickk 78 wrote: > The platform I am working on is rtl simulation of pcie switch(Gen6) > with a backdoor mechanism to trigger the HotPlug event. > > Tried following patches independently to have both hotplug and dpc > driver register and handle respective events. > > https://patchwork.ozlabs.org/project/linux-pci/patch/20231223212235.34293-2-mattc@xxxxxxxxxxxxxxx/ > https://patchwork.kernel.org/project/linux-pci/patch/20240108194642.30460-1-mattc@xxxxxxxxxxxxxxx/#25680870 > > Tried following > > - Trigger hot removal and add, the event is triggered and respective > msi in /proc/interrupt increments and kernel logs the event(dmesg) > - Trigger hot removal and add, the event is triggered and respective > msi in /proc/interrupt increments and kernel logs the event(dmesg) > - Trigger DPC using "DPC software trigger" in DPC control register > > The kernel hangs, the console is non-responsive. > > Can dpc and pciehp co-exist and handle the events? Yes, they're intended to coexist. Your platform firmware doesn't advertise support for it, though: [ 1.736168] acpi PNP0A08:00: _OSC: platform does not support [PCIeHotplug LTR DPC] I don't think there's a kernel parameter to force DPC usage if the platform doesn't advertise it. There should be a message like "DPC: enabled with IRQ X" if the dpc driver is active. Even if the dpc driver isn't active, I don't think the kernel should hang if you trigger DPC. Since this is a QEMU guest, you should be able to use a debugger to figure out why it's hung. Bjorn