Thread (27 messages) flat view 27 messages, 7 authors, 2016-01-28

Re: [RFC PATCH v2 1/3] getcpu_cache system call: cache CPU number of running thread

From: Thomas Gleixner <hidden>
Date: 2016-01-27 17:23:16
Also in: lkml

On Wed, 27 Jan 2016, Mathieu Desnoyers wrote:
+/*
+ * sys_getcpu_cache - setup getcpu cache for caller thread
+ */
+SYSCALL_DEFINE2(getcpu_cache, int32_t __user **, cpu_cachep, int, flags)
+{
+	int32_t __user *cpu_cache;
+
+	if (unlikely(flags))
+		return -EINVAL;
+	/* Check if cpu_cache is already registered. */
+	if (current->cpu_cache) {
+		if (put_user(current->cpu_cache, cpu_cachep))
+			return -EFAULT;
+		return 0;
+	}
This is really odd. How is the caller supposed to differentiate between:

  1) Get the installed cpucache pointer

  2) Set the cpucache pointer

We really want clearly seperated functionality here.

   getcpu_cache(ptr, GET_CACHEP);
   
and   

   getcpu_cache(ptr, SET_CACHEP);

    Returns -EBUSY if current->cpu_cache is already set, except we allow
    replacing the pointer.  

Thanks,

	tglx
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help