Don't burn 2k of stack on every iconv, use the heap when it's a slow call.

Andrew Bartlett abartlet at samba.org
Wed Mar 30 22:33:31 MDT 2011


On Wed, 2011-03-30 at 20:24 -0700, Jeremy Allison wrote:
> On Thu, Mar 31, 2011 at 01:40:30PM +1100, Andrew Bartlett wrote:
> > On Thu, 2011-03-31 at 04:10 +0200, Jeremy Allison wrote:
> > > The branch, master has been updated
> > >        via  21193c8 Don't burn 2k of stack on every iconv, use the heap when it's a slow call.
> > >        via  f9a2f4f Fix bug #7996 - sgid bit lost on folder rename.
> > >        via  cf5ed92 SMBTA: make vfs_smb_traffic_analyzer aware of the sendfile and recvfile functionality and store the results as common read/write results.
> > >       from  b3ffcf8 lib/util/charset smb_panic() on incorrect use of strlen_m_ext
> > > 
> > > http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
> > > 
> > > 
> > > - Log -----------------------------------------------------------------
> > > commit 21193c8eeba6d03f680ad34acbbb4cff14d87809
> > > Author: Jeremy Allison <jra at samba.org>
> > > Date:   Wed Mar 30 18:13:05 2011 -0700
> > > 
> > >     Don't burn 2k of stack on every iconv, use the heap when it's a slow call.
> > >     
> > >     Autobuild-User: Jeremy Allison <jra at samba.org>
> > >     Autobuild-Date: Thu Mar 31 04:09:09 CEST 2011 on sn-devel-104
> > 
> > I'm intrigued.  Why is using 2k of stack a problem?  Isn't it the
> > fastest memory we can get?
> 
> Yes, but it's a *slow* path :-). 

I agree it's the slow path, but we hit it rather often (every umlaut
etc).  

> The fast path is calling the
> "direct" conversions, and as the code was written (depending
> on how clever the compiler is) it would allocate 2k off the
> stack every time the fast path was called (and free again
> of course), even though the fast path doesn't use it at
> all. Once we're going down the slow path I don't care so
> much about speed of having to do the extra allocation.

It just seemed like a really weird micro-optimisation.  You couldn't
just move the stack variable around?

Andrew Bartlett

-- 
Andrew Bartlett                                http://samba.org/~abartlet/
Authentication Developer, Samba Team           http://samba.org
Samba Developer, Cisco Inc.



More information about the samba-technical mailing list