From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752148AbbDZQJS (ORCPT ); Sun, 26 Apr 2015 12:09:18 -0400 Received: from mail-vn0-f43.google.com ([209.85.216.43]:46525 "EHLO mail-vn0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750775AbbDZQJO (ORCPT ); Sun, 26 Apr 2015 12:09:14 -0400 Date: Sun, 26 Apr 2015 12:09:09 -0400 From: Tejun Heo To: Aleksa Sarai Cc: Peter Zijlstra , lizefan@huawei.com, mingo@redhat.com, richard@nod.at, =?iso-8859-1?Q?Fr=E9d=E9ric?= Weisbecker , linux-kernel@vger.kernel.org, cgroups@vger.kernel.org Subject: Re: [PATCH v10 1/4] cgroups: use bitmask to filter for_each_subsys Message-ID: <20150426160909.GC1499@htj.duckdns.org> References: <1429446154-10660-1-git-send-email-cyphar@cyphar.com> <1429446154-10660-2-git-send-email-cyphar@cyphar.com> <20150422152551.GA10738@htj.duckdns.org> <20150422154212.GE3007@worktop.Skamania.guest> <20150422160258.GE10738@htj.duckdns.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, On Mon, Apr 27, 2015 at 02:05:47AM +1000, Aleksa Sarai wrote: > In addition, there are a bunch of cgroup_* functions that use unsigned > ints for bitops (cgroup_calc_child_subsys_mask, rebind_subsystems, > cgroup_print_ss_mask). Is there a better solution to this problem, or > should I just switch back to my naive solution? Hmmmm... You can either convert all masks to ulong (which is fine) or do something like the following. #define for_each_subsys_which(ss_mask, ss, ssid) \ unsigned long __tmp_mask = (ss_mask); \ for_each_set_bit(ssid, &__tmp_mask, CGROUP_SUBSYS_COUNT)\ if ((ss) = group_subsys[ssid] && false) \ ; \ else Thanks. -- tejun From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tejun Heo Subject: Re: [PATCH v10 1/4] cgroups: use bitmask to filter for_each_subsys Date: Sun, 26 Apr 2015 12:09:09 -0400 Message-ID: <20150426160909.GC1499@htj.duckdns.org> References: <1429446154-10660-1-git-send-email-cyphar@cyphar.com> <1429446154-10660-2-git-send-email-cyphar@cyphar.com> <20150422152551.GA10738@htj.duckdns.org> <20150422154212.GE3007@worktop.Skamania.guest> <20150422160258.GE10738@htj.duckdns.org> Mime-Version: 1.0 Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=SHY0w3ShSq5zgJUhcNvXg4ChAqoyO79UzrINFW2e4QY=; b=xsLQKAdUkK6o+oiLWxFwACkjBWTERuO4AP7vU/Bl/b7Q8Bw4Z2qwHSEU5mrp/lDiLl PkSUmm+omwtw7Cl9UNRg4vbooSroWcmX96fmCCR5RkWzeKZRIeWYn388Ng4+V6xxtAxj Ge8B9B7gGt6efRwG2YW19079IzPsoQN9VOBmHdBsLcOxrsFfIF/zqqNkkV6yIT2JGbHI mr4uFIzhvO+6z5I8F46rII/tjbq8XzLjxVVO+Caa195rp5skViFlV+kjGg+LhSkV6wtf kUik0R+ro5EGNA0BbdIfQsNklu5f5VKiC3Rc1Al7xvW+/Fo4ExjqLvoaAtHFbIbZ4nPq 3sXQ== Content-Disposition: inline In-Reply-To: Sender: cgroups-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org List-ID: Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Aleksa Sarai Cc: Peter Zijlstra , lizefan-hv44wF8Li93QT0dZR+AlfA@public.gmane.org, mingo-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, richard-/L3Ra7n9ekc@public.gmane.org, =?iso-8859-1?Q?Fr=E9d=E9ric?= Weisbecker , linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, cgroups-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Hello, On Mon, Apr 27, 2015 at 02:05:47AM +1000, Aleksa Sarai wrote: > In addition, there are a bunch of cgroup_* functions that use unsigned > ints for bitops (cgroup_calc_child_subsys_mask, rebind_subsystems, > cgroup_print_ss_mask). Is there a better solution to this problem, or > should I just switch back to my naive solution? Hmmmm... You can either convert all masks to ulong (which is fine) or do something like the following. #define for_each_subsys_which(ss_mask, ss, ssid) \ unsigned long __tmp_mask = (ss_mask); \ for_each_set_bit(ssid, &__tmp_mask, CGROUP_SUBSYS_COUNT)\ if ((ss) = group_subsys[ssid] && false) \ ; \ else Thanks. -- tejun