[lkml]   [2007]   [Apr]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: getting processor numbers
    On Tue, 3 Apr 2007, Ulrich Drepper wrote:

    > More and more code depends on knowing the number of processors in the
    > system to efficiently scale the code. E.g., in OpenMP it is used by
    > default to determine how many threads to create. Creating more threads
    > than there are processors/cores doesn't make sense.
    > glibc for a long time provides functionality to retrieve the number
    > through sysconf() and this is what fortunately most programs use. The
    > problem is that we are currently using /proc/cpuinfo since this is all
    > there was available at that time. Creating /proc/cpuinfo takes the
    > kernel quite a long time, unfortunately (I think Jakub said it is mainly
    > the interrupt information).
    > The alternative today is to use /sys/devices/system/cpu and count the
    > number of cpu* directories in it. This is somewhat faster. But there
    > would be another possibility: simply stat /sys/devices/system/cpu and
    > use st_nlink - 2.
    > This last step unfortunately it made impossible by recent changes:
    > I would like to propose changing that patch, move the sched_*
    > pseudo-files in some other directly and permanently ban putting any new
    > file into /sys/devices/system/cpu.
    > To get some numbers, you can try
    > The numbers I see on x86-64:
    > cpuinfo 10145810 cycles for 100 accesses
    > readdir /sys 3113870 cycles for 100 accesses
    > stat /sys 741070 cycles for 100 accesses

    It sucks when seen from a micro-bench POV, but does it really matter
    overall? The vast majority of software usually calls
    sysconf(_SC_NPROCESSORS_*) with very little frequency (mostly once at
    initialization time) anyway. That's what 50us / call?

    - Davide

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-04-03 21:19    [W:0.022 / U:4.736 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site