Hello,
i am interested in finding out, whether DPC from driver USBXHCI.SYS are handled on a single core at the time, or on multiple cores. I am new to WPT, i am not sure where i can see this. I read, that this interrupt affinity policy -"IrqPolicyAllProcessorsInMachine" cause driver to be handled on single core at the time, which has lowest priority aka core with least interrupts being processed on it at the time. But on Microsoft docs i read, that this policy will assign interrupts to all cores in machine. So i don't know what is true and what not. I read it is not good idea to assign interrupts to all cpu cores, as it can cause cache miss. But i have good results using this policy so far.
So how is it ? Thanks!
EDIT: i think i found it, please correct me if i am wrong. I opened performance analyzer and than Computation\"DPC/ISR Duration by Module, Function *" selected my driver USBXHCI.sys. Clicked cog wheel on top of the graph, selected CPU and from the drop down menu - max. Than i checked any point on the graph and there is everywhere under Selection\Max of CPU either 0 or 1. I found some page concerning View Editor, but there is not enough documentation, i was unable to find exactly if this is related to CPU setting. But i read it is sorted by 0 based index, that would mean 1 means 2 cores. 1 is showing when i switch out of start to end selection and select a single interrupt, at least i think it is single interrupt, that is when i point cursor anywhere on the graph. And it says 0 and sometimes 1. Also it doesn't make sense when interrupt occur, that 0 cores would be handling it. Except if interrupt was in queue waiting for other interrupts to finish. I have no idea.
I could just assign single CPU core for USBXHCI.sys to handle interrupts, but i read this policy selects automatically core with least load. Correct me if i am wrong please. Again i am talking about this policy:IrqPolicyAllProcessorsInMachine.