On Sat, Sep 20, 2014 at 1:03 PM, Eric Wong <normalperson / yhbt.net> wrote:
> akr / fsij.org wrote:
>> matz accepted this feature including the method name,
>> Etc.nprocessors_online.
>
> I think the name is too long.  How about naming it after the GNU
> coreutils nproc(1) command?
>
>         Etc.nproc(:online)

This is an option. But "proc" is not unclear on ruby context. It is sometimes
procedure, and it is sometimes process. I like processor or cpu.


> I think it is important to be able to get all CPUs, not just
> online CPUs, too

> (to workaround old SMP bugs in the kernel):

What bug?


>         Etc.nproc(:all)

I don't think this is useful. I'd like to explain some kernel internal.
Now, Linux has three type of number of cpus.

1) online
2) present
3) possible

"online" mean cpu is equipped into the cpu socket and work. this value
is mutable when you change
cpu online/offline status. (btw, when cpu detect some failure, it may
become offline automatically)

"present" mean cpu is equipped and doesn't work (offline). This value is mutable
when you add or remove physical cpu (high-end machine only) or logical cpu (only
some hypervisor support it)

"possible" mean how much cpus could be supported by your firmware.
I.e. upper limit
of dynamic cpu adding.

"all" is not clear to me.

If you elaborate why you need nproc(:all), I may be able to suggest better name.