lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Mon, 28 Sep 2009 09:07:26 +0200
From:	Eric Dumazet <eric.dumazet@...il.com>
To:	Linus Torvalds <torvalds@...ux-foundation.org>
CC:	Linux Kernel Mailing List <linux-kernel@...r.kernel.org>
Subject: Re: Linux 2.6.32-rc1

Linus Torvalds a écrit :
> 
> Go wild, test it out, and let us know about any regressions you find,
> 
>
Hi Linus

Something seems wrong with process time accounting.

Following program should consume 10*8 seconds of cpu on a 8 cpu machine, but
with 2.6.32-rc1 numbers are crazy.

$ gcc -O2 -o process process.c -lpthread
$ ./process
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      0:08 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:05 -
    - -        Rl+    0:05 -
    - -        Rl+    0:09 -
    - -        Rl+    0:05 -
    - -        Rl+    0:05 -
    - -        Rl+    0:05 -
    - -        Rl+    0:05 -
    - -        Rl+    0:01 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      0:16 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:14 -
    - -        Rl+    0:06 -
    - -        Rl+    0:14 -
    - -        Rl+    0:10 -
    - -        Rl+    0:06 -
    - -        Rl+    0:06 -
    - -        Rl+    0:10 -
    - -        Rl+    0:02 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      0:24 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:20 -
    - -        Rl+    0:11 -
    - -        Rl+    0:24 -
    - -        Rl+    0:15 -
    - -        Rl+    0:07 -
    - -        Rl+    0:07 -
    - -        Rl+    0:24 -
    - -        Rl+    0:03 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      0:32 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:29 -
    - -        Rl+    0:12 -
    - -        Rl+    0:29 -
    - -        Rl+    0:21 -
    - -        Rl+    0:08 -
    - -        Rl+    0:08 -
    - -        Rl+    0:29 -
    - -        Rl+    0:04 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      0:40 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:35 -
    - -        Rl+    0:13 -
    - -        Rl+    0:35 -
    - -        Rl+    0:26 -
    - -        Rl+    0:09 -
    - -        Rl+    0:09 -
    - -        Rl+    0:35 -
    - -        Rl+    0:05 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      0:48 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:40 -
    - -        Rl+    0:14 -
    - -        Rl+    0:40 -
    - -        Rl+    0:31 -
    - -        Rl+    0:10 -
    - -        Rl+    0:10 -
    - -        Rl+    0:40 -
    - -        Rl+    0:06 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      0:56 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:45 -
    - -        Rl+    0:15 -
    - -        Rl+    0:45 -
    - -        Rl+    0:37 -
    - -        Rl+    0:11 -
    - -        Rl+    0:11 -
    - -        Rl+    0:45 -
    - -        Rl+    0:07 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      1:05 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:51 -
    - -        Rl+    0:21 -
    - -        Rl+    0:55 -
    - -        Rl+    0:46 -
    - -        Rl+    0:12 -
    - -        Rl+    0:12 -
    - -        Rl+    0:59 -
    - -        Rl+    0:08 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      1:13 ./process
    - -        Sl+    0:00 -
    - -        Rl+    0:56 -
    - -        Rl+    0:22 -
    - -        Rl+    1:00 -
    - -        Rl+    0:52 -
    - -        Rl+    0:13 -
    - -        Rl+    0:13 -
    - -        Rl+    1:04 -
    - -        Rl+    0:09 -
  PID TTY      STAT   TIME COMMAND
 5532 pts/1    -      5:13 ./process
    - -        S+     5:13 -


$ cat process.c
#include <pthread.h>
#include <time.h>
#include <stdio.h>

/*
 * Burn cpu cycles for about 10 seconds
 */
static void *do_unit(void *arg)
{
        time_t t0,t1;

        t0 = time(NULL);
        do {
                t1 = time(NULL);
        } while (t1 - t0 <= 10);
        return NULL;
}




int main(int argc, char *argv[])
{
        pthread_t tids[8];
        int i;
        char cmd[128];

        sprintf(cmd, "ps m -p %d", getpid());
        for (i = 0; i < 8 ; i++)
                pthread_create(&tids[i], NULL, do_unit, NULL);
        for (i = 0; i < 9; i++) {
                sleep(1);
                system(cmd);
        }
        for (i = 0; i < 8 ; i++)
                pthread_join(tids[i], NULL);
        system(cmd);
        return 0;
}
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ