From: Vikas Shivappa <vikas.shivappa@linux.intel.com>
To: linux-kernel@vger.kernel.org
Cc: x86@kernel.org, hpa@zytor.com, tglx@linutronix.de,
mingo@kernel.org, tj@kernel.org, peterz@infradead.org,
matt.fleming@intel.com, will.auld@intel.com,
glenn.p.williamson@intel.com, kanaka.d.juvva@intel.com,
priya.v.autee@intel.com, vikas.shivappa@linux.intel.com
Subject: [PATCH 01/10] cpumask: Introduce cpumask_any_online_but
Date: Tue, 23 Jun 2015 15:56:14 -0700 [thread overview]
Message-ID: <1435100183-21720-2-git-send-email-vikas.shivappa@linux.intel.com> (raw)
In-Reply-To: <1435100183-21720-1-git-send-email-vikas.shivappa@linux.intel.com>
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..ea63b65 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)
+{
+ static cpumask_t tmp;
+
+ cpumask_and(&tmp, cpu_online_mask, mask);
+ cpumask_clear_cpu(cpu, &tmp);
+ return cpumask_any(&tmp);
+}
+
+/**
* cpumask_parse_user - extract a cpumask from a user string
* @buf: the buffer to extract from
* @len: the length of the buffer
--
1.9.1
next prev parent reply other threads:[~2015-06-23 22:59 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-23 22:56 [PATCH V10 00/10] New cpumask API and Intel Cache Allocation support Vikas Shivappa
2015-06-23 22:56 ` Vikas Shivappa [this message]
2015-06-24 7:59 ` [PATCH 01/10] cpumask: Introduce cpumask_any_online_but Thomas Gleixner
2015-06-24 21:11 ` Vikas Shivappa
2015-06-23 22:56 ` [PATCH 02/10] x86/intel_cqm: Modify hot cpu notification handling Vikas Shivappa
2015-06-24 8:14 ` Thomas Gleixner
2015-06-24 21:13 ` Vikas Shivappa
2015-06-23 22:56 ` [PATCH 03/10] x86/intel_rapl: Modify hot cpu notification handling for RAPL Vikas Shivappa
2015-06-23 22:56 ` [PATCH 04/10] x86/intel_rdt: Cache Allocation documentation and cgroup usage guide Vikas Shivappa
2015-06-23 22:56 ` [PATCH 05/10] x86/intel_rdt: Add support for Cache Allocation detection Vikas Shivappa
2015-06-23 22:56 ` [PATCH 06/10] x86/intel_rdt: Add new cgroup and Class of service management Vikas Shivappa
2015-06-23 22:56 ` [PATCH 07/10] x86/intel_rdt: Add support for cache bit mask management Vikas Shivappa
2015-06-23 22:56 ` [PATCH 08/10] x86/intel_rdt: Implement scheduling support for Intel RDT Vikas Shivappa
2015-06-23 22:56 ` [PATCH 09/10] x86/intel_rdt: Hot cpu support for Cache Allocation Vikas Shivappa
2015-06-24 8:21 ` Thomas Gleixner
2015-06-24 21:15 ` Vikas Shivappa
2015-06-23 22:56 ` [PATCH 10/10] x86/intel_rdt: Intel haswell Cache Allocation enumeration Vikas Shivappa
-- strict thread matches above, loose matches on Subject: below --
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
2015-06-15 16:48 ` Vikas Shivappa
2015-06-16 8:20 ` Thomas Gleixner
2015-06-16 19:00 ` 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=1435100183-21720-2-git-send-email-vikas.shivappa@linux.intel.com \
--to=vikas.shivappa@linux.intel.com \
--cc=glenn.p.williamson@intel.com \
--cc=hpa@zytor.com \
--cc=kanaka.d.juvva@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=matt.fleming@intel.com \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=priya.v.autee@intel.com \
--cc=tglx@linutronix.de \
--cc=tj@kernel.org \
--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.