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:0.180 / U:0.600 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site