[lkml]   [2005]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[RCU problem] was VFS: file-max limit 50044 reached
    Dipankar Sarma a écrit :
    > On Mon, Oct 17, 2005 at 11:10:04AM +0200, Eric Dumazet wrote:
    >>Fixing the 'file count' wont fix the real problem : Batch freeing is good
    >>but should be limited so that not more than *billions* of file struct are
    >>queued for deletion.
    > Agreed. It is not designed to work that way, so there must be
    > a bug somewhere and I am trying to track it down. It could very well
    > be that at maxbatch=10 we are just queueing at a rate far too high
    > compared to processing.

    I can freeze my test machine with a program that 'only' use dentries, no files.

    No message, no panic, but machine becomes totally unresponsive after few seconds.

    Just greping for call_rcu in kernel sources gave me another call_rcu() use
    from syscalls. And yes 2.6.13 has the same problem.

    Here is the killer on by HT Xeon machine (2GB ram)


    #include <unistd.h>
    #include <sys/types.h>
    #include <fcntl.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <errno.h>
    #include <sys/stat.h>

    int main(void)
    int i, rc;
    struct stat st;
    char name[1024];

    memset(name, 'a', sizeof(name));

    for (i = 0; i < 1000000000;i++) {
    sprintf(name + 220, "%d", i);
    rc = stat(name, &st);
    if (rc == -1 && errno != ENOENT) {
    return 0;
     \ /
      Last update: 2005-10-17 14:15    [W:0.025 / U:302.156 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site