Thread (22 messages) 22 messages, 4 authors, 2011-02-22

Re: [PATCH 3/4] cpuset: Fix unchecked calls to NODEMASK_ALLOC()

From: Paul Menage <hidden>
Date: 2011-02-17 23:57:20
Also in: lkml

On Thu, Feb 17, 2011 at 2:46 PM, Andrew Morton
[off-list ref] wrote:
On Thu, 17 Feb 2011 09:50:09 +0800
Li Zefan [off-list ref] wrote:
quoted
+/*
+ * In functions that can't propogate errno to users, to avoid declaring a
+ * nodemask_t variable, and avoid using NODEMASK_ALLOC that can return
+ * -ENOMEM, we use this global cpuset_mems.
+ *
+ * It should be used with cgroup_lock held.
I'll do s/should/must/ - that would be a nasty bug.

I'd be more comfortable about the maintainability of this optimisation
if we had

       WARN_ON(!cgroup_is_locked());

at each site.
Agreed - that was my first thought on reading the patch. How about:

static nodemask_t *cpuset_static_nodemask() {
  static nodemask_t nodemask;
  WARN_ON(!cgroup_is_locked());
  return &nodemask;
}

and then just call cpuset_static_nodemask() in the various locations
being patched?

Paul

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help