lkml.org 
[lkml]   [2002]   [Jul]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRE: Linux 2.4.19ac3rc3 on IBM x330/x340 SMP - "ps" time skew
    Date
    > On Wed, 2002-07-31 at 13:59, David Luyer wrote:
    > > printf("%d\n", sysconf(_SC_NPROCESSORS_CONF));
    > > }
    > > luyer@praxis8:~$ ./cpus
    > > 4
    > > luyer@praxis8:~$ grep 'processor ' /proc/cpuinfo
    > > processor : 0
    > > processor : 1
    >
    > In which case I suggest you file a glibc bug. sysconf looks
    > at the /proc stuff as I understand it

    Great, got it, thanks: sysconf(_SC_NPROCESSORS_CONF) parses
    /proc/cpuinfo
    using a simple parser:

    #ifndef GET_NPROCS_PARSER
    # define GET_NPROCS_PARSER(FP, BUFFER, RESULT)
    \
    do
    \
    {
    \
    (RESULT) = 0;
    \
    /* Read all lines and count the lines starting with the string
    \
    "processor". We don't have to fear extremely long lines since
    \
    the kernel will not generate them. 8192 bytes are really
    \
    enough. */
    \
    while (fgets_unlocked (BUFFER, sizeof (BUFFER), FP) != NULL)
    \
    if (strncmp (BUFFER, "processor", 9) == 0)
    \
    ++(RESULT);
    \
    }
    \
    while (0)
    #endif

    It's being tricked by this:

    luyer@praxis8:~$ cat /proc/cpuinfo | grep '^processor'
    processor : 0
    processor id : 0
    processor : 1
    processor id : 0

    The "processor id" line, only present with SMP enabled, is being counted
    as a processor.

    David.

    -
    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/

    \
     
     \ /
      Last update: 2005-03-22 13:22    [W:0.024 / U:89.980 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site