• Eric Sandeen's avatar
    xfs: increase readdir buffer size · a9cc799e
    Eric Sandeen authored
    While doing some testing of readdir perf a while back,
    I noticed that the buffer size we're using internally is
    smaller than what glibc gives us by default.  Upping this
    size helped a bit, and seems safe.
    
    glibc's __alloc_dir() does:
    
      const size_t default_allocation = (4 * BUFSIZ < sizeof (struct dirent64)
                                         ? sizeof (struct dirent64) : 4 * BUFSIZ);
      const size_t small_allocation = (BUFSIZ < sizeof (struct dirent64)
                                       ? sizeof (struct dirent64) : BUFSIZ);
      size_t allocation = default_allocation;
    #ifdef _STATBUF_ST_BLKSIZE
      if (statp != NULL && default_allocation < statp->st_blksize)
        allocation = statp->st_blksize;
    #endif
    
    and
    
    #define _G_BUFSIZ 8192
    #define _IO_BUFSIZ _G_BUFSIZ
    # define BUFSIZ _IO_BUFSIZ
    
    so the default buffer is 4 * 8192 = 32768
    (except in the unlikely case of blocks > 32k....)
    Signed-off-by: default avatarEric Sandeen <sandeen@sandeen.net>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarAlex Elder <aelder@sgi.com>
    a9cc799e
xfs_file.c 6.84 KB