xfs
[Top] [All Lists]

Re: use-after-free in xfs_bawrite()

To: Andrew Morton <akpm@xxxxxxxx>
Subject: Re: use-after-free in xfs_bawrite()
From: Andi Kleen <ak@xxxxxxx>
Date: Sat, 2 Aug 2003 13:54:58 +0200
Cc: linux-xfs@xxxxxxxxxxx
In-reply-to: <20030802013032.7a42a596.akpm@xxxxxxxx>
References: <20030802013032.7a42a596.akpm@xxxxxxxx>
Sender: linux-xfs-bounce@xxxxxxxxxxx
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


<Prev in Thread] Current Thread [Next in Thread>