[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Only include online cpus in cpu_mask_to_apicid_flat
>>> On 31.08.10 at 09:19, "Yang, Sheng" <sheng.yang@xxxxxxxxx> wrote: > The former fix of __bind_irq_vector() can ensure the destination field in > IOAPIC > redirection table is valid by limiting the cpu_mask to the online cpus. But > there > is another issue that some interrupts(timer and serial) would like to be > delivered to all online cpus with LPR delivery mode. But at the time of > bind_irq_vector() called, there were only one cpu(BSP) was online, so the > interrupts would always be delivered to BSP. This method can work but not > the best > one. > > In fact, setup_ioapic_dest() would be called to reprogram the IOAPIC > redirection > table to follow "irq_cfg->cpu_mask", after SMP initialization work was > done. So I think the better choice is to keep the original value in irq_cfg- >>cpu_mask, and just make sure the value we wrote to the IOAPIC redirection > table > is valid. Then modifying cpu_mask_to_apicid_flat() seems like a better idea. Why would you need to modify only this function, but not the other variants? If a CPU in the passed in mask can be offline, then first_cpu() (as used in the other variants) can return an offline CPU, and you don't want to program such into an RTE. > This patch would revert the fix of __bind_irq_vector(), and modify > cpu_mask_to_apicid_flat() to contain only online CPUs. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |