On Wed, 4 Apr 2007, Hans Petter Selasky wrote:

Just a small comment:

@@ -60,10 +60,7 @@
        u_short fd_cmask;               /* mask for file creation */
        u_short fd_refcnt;              /* thread reference count */
        u_short fd_holdcnt;             /* hold count on structure + mutex */
-
-       struct  mtx fd_mtx;             /* protects members of this struct */
-       int     fd_locked;              /* long lock flag */
-       int     fd_wanted;              /* "" */
+       struct  sx fd_sx;               /* protects members of this struct */
        struct  kqlist fd_kqlist;       /* list of kqueues on this filedesc */
        int     fd_holdleaderscount;    /* block fdfree() for shared close() */
        int     fd_holdleaderswakeup;   /* fdfree() needs wakeup */

Maybe it is better if you order the elements by size. Then you don't waste so many extra bytes on platforms where the fields must be aligned.

This seems reasonable; I'll merge the patch as-is first, minimizing the patch size of the change against filedesc.h, and then investigate what you suggest as a followup. Thanks for the comment! Generally speaking, we probably should be doing a structure size/layout review for things like in-memory inodes, vnodes, sockets, file descriptors, files, threads, etc, where small changes in memory overhead can make significant overall changes in memory use and cache efficiency.

Robert N M Watson
Computer Laboratory
University of Cambridge
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to