From: KOSAKI Motohiro Date: 2014-09-20T14:28:29+09:00 Subject: [ruby-core:65151] Re: [ruby-trunk - Feature #10267] [Open] Number of processors On Sat, Sep 20, 2014 at 1:03 PM, Eric Wong 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.