From: Peter Zijlstra <peterz@infradead.org>
To: Vikas Shivappa <vikas.shivappa@linux.intel.com>
Cc: linux-kernel@vger.kernel.org, vikas.shivappa@intel.com,
x86@kernel.org, hpa@zytor.com, tglx@linutronix.de,
mingo@kernel.org, matt.fleming@intel.com, will.auld@intel.com,
linux-rdt@eclists.intel.com
Subject: Re: [PATCH 01/10] cpumask: Introduce cpumask_any_online_but
Date: Mon, 15 Jun 2015 14:36:14 +0200 [thread overview]
Message-ID: <20150615123614.GA3644@twins.programming.kicks-ass.net> (raw)
In-Reply-To: <1434133037-25189-2-git-send-email-vikas.shivappa@linux.intel.com>
On Fri, Jun 12, 2015 at 11:17:08AM -0700, Vikas Shivappa wrote:
> There is currently no cpumask helper function to pick a "random" cpu
> from a mask which is also online.
>
> cpumask_any_online_but() does that which is similar to cpumask_any_but()
> but also returns a cpu that is online.
>
> Signed-off-by: Vikas Shivappa <vikas.shivappa@linux.intel.com>
> ---
> include/linux/cpumask.h | 18 ++++++++++++++++++
> 1 file changed, 18 insertions(+)
>
> diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
> index 27e285b..f2d7e8a 100644
> --- a/include/linux/cpumask.h
> +++ b/include/linux/cpumask.h
> @@ -548,6 +548,24 @@ static inline void cpumask_copy(struct cpumask *dstp,
> #define cpumask_of(cpu) (get_cpu_mask(cpu))
>
> /**
> + * cpumask_any_online_but - return a "random" and online cpu in a cpumask,
> + * but not this one
> + * @mask: the input mask to search
> + * @cpu: the cpu to ignore
> + *
> + * Returns >= nr_cpu_ids if no cpus set.
> +*/
> +static inline unsigned int cpumask_any_online_but(const struct cpumask *mask,
> + unsigned int cpu)
> +{
> + cpumask_t tmp;
No, you cannot put a cpumask_t on stack like that. Those things can be
massive.
> +
> + cpumask_and(&tmp, cpu_online_mask, mask);
> + cpumask_clear_cpu(cpu, &tmp);
> + return cpumask_any(&tmp);
> +}
You had a good example in cpumask_any_but() copy that.
next prev parent reply other threads:[~2015-06-15 12:36 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-12 18:17 [PATCH V9 00/10] New cpumask API and Intel Cache Allocation support Vikas Shivappa
2015-06-12 18:17 ` [PATCH 01/10] cpumask: Introduce cpumask_any_online_but Vikas Shivappa
2015-06-15 12:36 ` Peter Zijlstra [this message]
2015-06-15 16:48 ` Vikas Shivappa
2015-06-16 8:20 ` Thomas Gleixner
2015-06-16 19:00 ` Vikas Shivappa
2015-06-12 18:17 ` [PATCH 02/10] x86/intel_cqm: Modify hot cpu notification handling Vikas Shivappa
2015-06-15 12:38 ` Peter Zijlstra
2015-06-15 16:52 ` Vikas Shivappa
2015-06-12 18:17 ` [PATCH 03/10] x86/intel_rapl: Modify hot cpu notification handling for RAPL Vikas Shivappa
2015-06-12 18:17 ` [PATCH 04/10] x86/intel_rdt: Cache Allocation documentation and cgroup usage guide Vikas Shivappa
2015-06-12 18:17 ` [PATCH 05/10] x86/intel_rdt: Add support for Cache Allocation detection Vikas Shivappa
2015-06-15 12:48 ` Peter Zijlstra
2015-06-15 17:04 ` Vikas Shivappa
2015-06-12 18:17 ` [PATCH 06/10] x86/intel_rdt: Add new cgroup and Class of service management Vikas Shivappa
2015-06-12 18:17 ` [PATCH 07/10] x86/intel_rdt: Add support for cache bit mask management Vikas Shivappa
2015-06-12 18:17 ` [PATCH 08/10] x86/intel_rdt: Implement scheduling support for Intel RDT Vikas Shivappa
2015-06-12 18:17 ` [PATCH 09/10] x86/intel_rdt: Hot cpu support for Cache Allocation Vikas Shivappa
2015-06-16 8:52 ` Thomas Gleixner
2015-06-16 19:01 ` Vikas Shivappa
2015-06-16 19:25 ` Thomas Gleixner
2015-06-19 20:42 ` Vikas Shivappa
2015-06-12 18:17 ` [PATCH 10/10] x86/intel_rdt: Intel haswell Cache Allocation enumeration Vikas Shivappa
2015-06-15 14:05 ` Peter Zijlstra
2015-06-15 21:44 ` Vikas Shivappa
2015-06-16 8:23 ` Thomas Gleixner
2015-06-16 9:18 ` Peter Zijlstra
2015-06-17 16:23 ` Vikas Shivappa
-- strict thread matches above, loose matches on Subject: below --
2015-06-23 22:56 [PATCH V10 00/10] New cpumask API and Intel Cache Allocation support Vikas Shivappa
2015-06-23 22:56 ` [PATCH 01/10] cpumask: Introduce cpumask_any_online_but Vikas Shivappa
2015-06-24 7:59 ` Thomas Gleixner
2015-06-24 21:11 ` Vikas Shivappa
2015-06-05 0:01 [PATCH V8 00/10] New cpumask API and Intel Cache Allocation support Vikas Shivappa
2015-06-05 0:01 ` [PATCH 01/10] cpumask: Introduce cpumask_any_online_but Vikas Shivappa
2015-06-03 19:09 [PATCH V8 00/10] New cpumask API and Intel Cache Allocation support Vikas Shivappa
2015-06-03 19:09 ` [PATCH 01/10] cpumask: Introduce cpumask_any_online_but Vikas Shivappa
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150615123614.GA3644@twins.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-rdt@eclists.intel.com \
--cc=matt.fleming@intel.com \
--cc=mingo@kernel.org \
--cc=tglx@linutronix.de \
--cc=vikas.shivappa@intel.com \
--cc=vikas.shivappa@linux.intel.com \
--cc=will.auld@intel.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.