This warning show up with kernels that enable preemptible
BUG: using smp_processor_id() in preemptible [
00000000] code: ...
Change it to disable preemption around smp_processor_id().
Change is apart of:
Linux-commit:
67bc8c33ec14f8290c6883a7d6237e213709561a
Change-Id: I41f7a1d3aa22240d3669f94ae92a192d219cca52
Signed-off-by: James Simmons <jsimmons@infradead.org>
Reviewed-on: https://review.whamcloud.com/38810
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Shaun Tancheff <shaun.tancheff@hpe.com>
Reviewed-by: Yang Sheng <ys@whamcloud.com>
Reviewed-by: Jian Yu <yujian@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
return rc;
}
-#define CPT_WEIGHT_MIN 4
+#define CPT_WEIGHT_MIN 4u
-static int cfs_cpt_num_estimate(void)
+static unsigned int cfs_cpt_num_estimate(void)
{
- int nthr = cpumask_weight(topology_sibling_cpumask(smp_processor_id()));
- int ncpu = num_online_cpus();
- int ncpt = 1;
+ unsigned int nthr;
+ unsigned int ncpu = num_online_cpus();
+ unsigned int ncpt = 1;
+
+ preempt_disable();
+ nthr = cpumask_weight(topology_sibling_cpumask(smp_processor_id()));
+ preempt_enable();
if (ncpu > CPT_WEIGHT_MIN)
for (ncpt = 2; ncpu > 2 * nthr * ncpt; ncpt++)
/* config many CPU partitions on 32-bit system could consume
* too much memory
*/
- ncpt = min(2, ncpt);
+ ncpt = min(2U, ncpt);
#endif
while (ncpu % ncpt)
ncpt--; /* worst case is 1 */