On Mon, 30 Nov 2015, Qais Yousef wrote: > On 11/30/2015 11:20 AM, Thomas Gleixner wrote: > > On Wed, 25 Nov 2015, Qais Yousef wrote: > > > cpumask is limited to NR_CPUS. Introduce ipi_mask which allows us to > > > address > > > cpu range that is higher than NR_CPUS which is required for drivers to > > > send > > > IPIs for coprocessor that are outside Linux CPU range. > > I have second thoughts on this. > > > > cpumask is indeed limited to NR_CPUS or in case of CPUMASK_ON_STACK > > limited to nr_cpu_ids. > > > > But, that's not an issue for that coprocessor case. Let's assume you > > have 16 Linux CPUs and 4 coprocessors. So you set the number of > > possible cpus (NR_CPUS) to 20. That makes the cpumask sizeof 20. > > > > The boot-process sets the number of available cpus to 16. So the > > Linux side will never try to access anything beyond cpu15. > > > > But you can spare that extra mask magic and simply use cpumask. Sorry > > that I did not think about that earlier. > > > > > Yes it would be much better to reuse it but wouldn't the runtime checks > against nr_cpu_ids create problems especially when CPUMASK_ON_STACK is > defined? nr_cpu_ids == find_last_bit(cpumask_bits(cpu_possible_mask),NR_CPUS) + 1; Thanks, tglx