|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] [PATCH] Only include online cpus in cpu_mask_to_apicid_f
>>> 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
|
|
|
|
|