[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: use-after-free in xfs_bawrite()



On Sat, Aug 02, 2003 at 01:30:32AM -0700, Andrew Morton wrote:
> 
> XFS has waaaaay too much inlining btw ;)

Really? 

The core code (outside linux/, pagebuf/) only has a single inline.
linux/ has four. 
pagebuf/ has three.
quota/ has four. 
support/* some more similar to the original linux functions.

That looks hardly excessive for a ~120kLOC codebase.

> 
> Seems that dbench is not XFS's favourite benchmark.  How come?  Do I need
> more logbufs?

And bigger on disk log than by default.  There is a patch in the queue to do 
the first, but I think it hasn't reached Linus' tree yet.

[Actually the hard limit 8 logbufs could be raised to more now]

--- linux/fs/xfs/xfs_log.c-o	2003-06-10 14:27:57.000000000 +0200
+++ linux/fs/xfs/xfs_log.c	2003-06-11 11:29:55.000000000 +0200
@@ -1072,9 +1072,15 @@
 		 * This is the normal path.  If m_logbufs == -1, then the
 		 * admin has chosen to use the system defaults for logbuffers.
 		 */
-		if (mp->m_logbufs == -1)
-			log->l_iclog_bufs = XLOG_NUM_ICLOGS;
-		else
+		if (mp->m_logbufs == -1) { 
+			if (xfs_physmem <= btoc(128*1024*1024)) { 
+				log->l_iclog_bufs = 3; 
+			} else if (xfs_physmem <= btoc(400*1024*1024)) { 
+				log->l_iclog_bufs = 5; 
+			} else {
+				log->l_iclog_bufs = 8; /* 256K with 32K bufs */
+			}
+		} else
 			log->l_iclog_bufs = mp->m_logbufs;
 
 #if defined(DEBUG) || defined(XLOG_NOLOG)


-Andi