lkml.org 
[lkml]   [2004]   [May]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: Linux 2.6.7-rc2
    From
    Date
    Linus Torvalds <torvalds@osdl.org> writes:

    > Andrew Morton:
    > o Add `make checkstack' target

    The checkstack target itself works fine, but when I used it I found
    that nfs_writepage_sync and nfs_readpage_sync still use a lot of stack
    space:

    0xc01aae14 nfs_writepage_sync: 900
    0xc01a9492 nfs_readpage_sync: 872

    Apparently, this recent fix

    http://linux.bkbits.net:8080/linux-2.5/gnupatch@40ad0ce2ZBGzb_taAzCTOJ38IXxu-w

    doesn't really help, at least not with the compilers I have tested, ie
    gcc 3.3.3 from FC2 and the gcc from RH9.

    If I put "#if 0" around the *wdata assignment in nfs_writepage_sync,
    the stack usage goes down to 36, so it looks like gcc is building a
    temporary structure on the stack and then copies the whole thing to
    *wdata.

    Does this construct save stack space for any version of gcc? Maybe the
    code should be changed to do a memset() followed by explicit
    initialization of the non-zero member variables instead.

    #if 0
    *wdata = (struct nfs_write_data) {
    .flags = how,
    .cred = NULL,
    .inode = inode,
    .args = {
    .fh = NFS_FH(inode),
    .lockowner = current->files,
    .pages = &page,
    .stable = NFS_FILE_SYNC,
    .pgbase = offset,
    .count = wsize,
    },
    .res = {
    .fattr = &wdata->fattr,
    .verf = &wdata->verf,
    },
    };
    #endif

    --
    Peter Osterlund - petero2@telia.com
    http://w1.894.telia.com/~u89404340
    -
    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 14:03    [W:3.608 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site