From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Fri, 21 Jun 2002 00:16:18 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Fri, 21 Jun 2002 00:16:17 -0400 Received: from nat-pool-rdu.redhat.com ([66.187.233.200]:1667 "EHLO devserv.devel.redhat.com") by vger.kernel.org with ESMTP id ; Fri, 21 Jun 2002 00:16:17 -0400 Date: Fri, 21 Jun 2002 00:16:18 -0400 From: Pete Zaitcev Message-Id: <200206210416.g5L4GIx16142@devserv.devel.redhat.com> To: James Bottomley cc: linux-kernel@vger.kernel.org Subject: Re: Optimisation for smp_num_cpus loop in hotplug In-Reply-To: References: Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org > for (i = 0; i < NR_CPUS; i++) { > if (!cpu_online(i)) > continue; > > Since the cpu online map is probably going to be quite sparse, > could I suggest this alternative, which doesn't have to loop 32 times: > +#define for_each_cpu(cpu, mask) \ > + for(mask = cpu_online_map; \ > + cpu = __ffs(mask), mask != 0; \ > + mask &= ~(1< + This is neat, but I'd like to see it work with O(1) as well. Mingo's code uses some long bitmaps. -- Pete