What's the procedure to configure buildworld to get sendmail to build libmilter using poll() instead of select()? There is discussion on the postfix mailing list that some high-load performance issues could be solved by switching this, but the "fix" was to hack the libmilter header file to force the appropriate define to be set, rather than using the sendmail configuration system. This would of course be difficult to preserve across updates and buildworlds... Thanks!
On Jan 2, 2008, at 11:08 AM, Gregory Shapiro wrote:>> What's the procedure to configure buildworld to get sendmail to build >> libmilter using poll() instead of select()? > > Add this to /etc/make.conf: > > SENDMAIL_CFLAGS+=-D_FFR_WORKERS_POOL > > [ ... ] > Note that bug 118824 has already asked for this to be part of the > base. > I will likely make that the case for the HEAD and then give it some > testing time before MFC'ing.Sweet! Thanks a lot for your help.
On Jan 2, 2008, at 11:08 AM, Gregory Shapiro wrote:> SENDMAIL_CFLAGS+=-D_FFR_WORKERS_POOLDo I want this one or just -DSM_CONF_POLL ? I'm running into issues with postfix failing to connect to the milter because it is too busy (specifically the dkim milter) and one theory was to use poll to increase the number of connections that the milter can handle.
Jose-Marcio Martins da Cruz
2008-Jan-02 08:21 UTC
building system's libmilter with poll() support?
Vivek Khera wrote:> What's the procedure to configure buildworld to get sendmail to build > libmilter using poll() instead of select()? > > There is discussion on the postfix mailing list that some high-load > performance issues could be solved by switching this, but the "fix" was > to hack the libmilter header file to force the appropriate define to be > set, rather than using the sendmail configuration system. This would of > course be difficult to preserve across updates and buildworlds...The canonical way is to define (at devtools/Site/site.config.m4) : dnl To use poll instead of select : APPENDDEF(`conf_libmilter_ENVDEF',`-DSM_CONF_POLL=1') dnl To use a pool of workers instead of one thread per connection APPENDDEF(`conf_libmilter_ENVDEF',`-D_FFR_WORKERS_POOL=1') Note that the second automatically defines the first one. I don't know how to add this to buildworld. Hope this help... -- --------------------------------------------------------------- Jose Marcio MARTINS DA CRUZ http://j-chkmail.ensmp.fr
> What's the procedure to configure buildworld to get sendmail to build > libmilter using poll() instead of select()?Add this to /etc/make.conf: SENDMAIL_CFLAGS+=-D_FFR_WORKERS_POOL And then rebuild/reinstall libmilter: cd /usr/src/lib/libmilter/ make clean make depend make make install Note that bug 118824 has already asked for this to be part of the base. I will likely make that the case for the HEAD and then give it some testing time before MFC'ing.