memory overhead and embedded Samba

Andrew Tridgell tridge at
Thu Jan 27 00:50:27 GMT 2005


 > There's another resource constraint issue for embedded systems:
 > operating system/application disk space constraints.


Samba4 uses a "all in some" daemon, currently called smbd. This
includes the rpc server, the cifs server, the ldap server and will
soon include the nbt server and the cldap server. For an embedded
setup this will be the only binary that is needed. That will keep disk
usage down a lot.

I think that what we should probably do for Samba4 is add a
--embedded-system configure option. That will do the following:

 - will enable only the "single" process model
 - will not use fork() anywhere
 - will make some of the default internal cache sizes smaller

We might even consider an option to get rid of the byte range locking
routines completely. For a purely embedded setup calling fcntl byte
range locks is pointless as there is only one process, and it can
never lock against itself. This could be a considerable performance
gain, and might even be a gain on larger single CPU systems. The
downside would be that external tools that directly manipulate the
databases would be unsafe, but I don't expect those would be used in
embedded systems anyway.

 > Side note: I find it interesting that Samba 3 uses an "automatic"
 > method to keep prototypes in sync, yet uses manually maintained
 > object dependency lists.

yes, it does. Now that we have split up the includes in Samba4 it
starts to make sense to do automatic build dependency checking (in
particular header dependency checking). We just need someone to go to
the trouble of adding this to the build system.

Cheers, Tridge

More information about the samba-technical mailing list