Messages in this thread | | | Date | Wed, 30 May 2007 10:08:01 -0700 | From | Zach Brown <> | Subject | Re: Syslets, Threadlets, generic AIO support, v6 |
| |
> due to the added syscall. (Maybe we can just get that reserved > upstream now?)
Maybe, but we'd have to agree on the bare syslet interface that is being supported :).
Personally, I'd like that to be the simplest thing that works for people and I'm not convinced that the current syslet-specific syscalls are that. Certainly not the atom interface, anyway.
+asmlinkage __attribute__((weak)) long +sys_umem_add(unsigned long __user *uptr, unsigned long inc) +{ + unsigned long val, new_val; + + if (get_user(val, uptr)) + return -EFAULT; + /* + * inc == 0 means 'read memory value': + */ + if (!inc) + return val; + + new_val = val + inc; + if (__put_user(new_val, uptr)) + return -EFAULT; + + return new_val; +}
A syscall for *long addition* strikes me as a bit much, I have to admit. Where do we stop? (Where's the compat wrapper? :))
Maybe this would be fine for some wildly aggressive optimization some number of years in the future when we have millions of syslet interface users complaining about the cycle overhead of their syslet engines, but it seems like we can do something much less involved in the first pass without harming the possibility of promising to support this complex optimization in the future.
- z - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |