Messages in this thread | | | Date | Wed, 22 Apr 2015 17:40:51 -0700 | From | Stephen Hemminger <> | Subject | Re: [PATCH v16] sys_membarrier(): system-wide memory barrier (generic, x86) |
| |
On Wed, 22 Apr 2015 20:37:08 -0400 Pranith Kumar <bobby.prani@gmail.com> wrote:
> >> I understand why this syscall makes sense on SMP only, but you are > >> anyways checking num_online_cpus() and returning if it is only one. Is > >> this limitation necessary then? How do !SMP systems handle this > >> syscall? (I am guessing glibc wrapper?) > > > > For !SMP, this system call is not implemented (returns -ENOSYS). > > Userspace libs are expected to query sysconf(_SC_NPROCESSORS_CONF) > > and check whether the system supports multiprocessor at all. If > > only a single processor is supported by the kernel, then userspace > > can skip the calls to sys_membarrier altogether, because they are > > not even needed. > > > > Do you think this kind of information belongs in a man page ? > > > > Should we instead just implement the system call in !SMP, and > > return 0 without any side-effect ? This would be a bit inefficient > > to let userspace call a system call that has no effect whatsoever. > > > > Are there any other SMP-only system calls like this? I am not really > sure what is the right way but documenting it would be good.
The syscall should just return 0. Let the application not worry about how many CPU's are present
| |