From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751457AbdIOPrw (ORCPT ); Fri, 15 Sep 2017 11:47:52 -0400 Received: from mail-qt0-f195.google.com ([209.85.216.195]:35019 "EHLO mail-qt0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751152AbdIOPru (ORCPT ); Fri, 15 Sep 2017 11:47:50 -0400 X-Google-Smtp-Source: AOwi7QApuCrFVqnbwEaHryt4gMi8ZzSu5fZkiTZTbYXrXsR4o/CzOA3GcOwnPznDD6KScgIsPTnLRA== Date: Fri, 15 Sep 2017 08:47:44 -0700 From: Tejun Heo To: Waiman Long Cc: Li Zefan , cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] cgroup: Properly init nr_tasks in cgroup_taskset Message-ID: <20170915154743.GF378890@devbig577.frc2.facebook.com> References: <1505421913-29577-1-git-send-email-longman@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1505421913-29577-1-git-send-email-longman@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, Waiman. On Thu, Sep 14, 2017 at 01:45:13PM -0700, Waiman Long wrote: > Commit 610467270fb3 ("cgroup: don't call migration methods if there > are no tasks to migrate") introduces a new field nr_tasks to the > cgroup_taskset structure for keeping track of the number of tasks > contained in the structure. The initial value of this field, however, > is not guaranteed to be 0 as all the cgroup_taskset structures are > allocated from stack. Therefore, we need to explicitly initilized > it in the CGROUP_TASKSET_INIT() macro for the new code to behave > correctly. > > Signed-off-by: Waiman Long > --- > kernel/cgroup/cgroup-internal.h | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/kernel/cgroup/cgroup-internal.h b/kernel/cgroup/cgroup-internal.h > index 5151ff2..6b4c04e 100644 > --- a/kernel/cgroup/cgroup-internal.h > +++ b/kernel/cgroup/cgroup-internal.h > @@ -76,6 +76,7 @@ struct cgroup_mgctx { > .src_csets = LIST_HEAD_INIT(tset.src_csets), \ > .dst_csets = LIST_HEAD_INIT(tset.dst_csets), \ > .csets = &tset.src_csets, \ > + .nr_tasks = 0, \ But it's an initialization macro, which means that the only way these are used is as a part of whole struct initialization and the compiler would always set the unspecified fields to zero. Thanks. -- tejun