On Wed, 2009-09-09 at 07:22 +0200, Fabio M. Di Nitto wrote:
> I am not objecting for the idea of small-memory-footprint but I do have
> a few questions:
>
> Why are those values hardcoded in the first place?
>
> Wouldn't be a better long term investment to have them configurable?
>
> (Not having investigated what all does values mean)
>
> What happens if one normal corosync build is executed on machine A and a
> small-memory on machine B? Will they be able to work properly together
> or can we expect issues because B might have a performance hit?
>
> +#define MESSAGE_SIZE_MAX 1024*64
>
> What if node A is sending a bigger message to node B? wouldn't that
> break on-wire compatibility for applications?
>
Yes it would, but i'm ok with breaking onwire compat in the case where
the builder explicitly requests something special for their small
footprint design (hence no backward compatibility requirements).
Regards
-steve
> Fabio
>
> On Wed, 2009-09-09 at 13:16 +1200, Angus Salkeld wrote:
> > > Ideally configure.ac would set CONFIG_SMALL_MEMORY_FOOTPRINT as defined.
> > > The C code would check the define, not needing any cflags at all. I am
> > > not a big fan of Cflags for define overrides. Prefer it be in config.h.
> > >
> > > Regards
> > > -steve
> > >
> > Here is a patch along those lines.
> >
> > -Angus
> >
> > Index: include/corosync/corodefs.h
> > ===================================================================
> > --- include/corosync/corodefs.h (revision 2408)
> > +++ include/corosync/corodefs.h (working copy)
> > @@ -60,7 +60,11 @@
> > AMF_V2_SERVICE = 17
> > };
> >
> > -#define PROCESSOR_COUNT_MAX 384
> > +#ifdef HAVE_SMALL_MEMORY_FOOTPRINT
> > +#define PROCESSOR_COUNT_MAX 16
> > +#else
> > +#define PROCESSOR_COUNT_MAX 384
> > +#endif /* HAVE_SMALL_MEMORY_FOOTPRINT */
> >
> > #define TOTEMIP_ADDRLEN (sizeof(struct in6_addr))
> >
> > Index: include/corosync/totem/totem.h
> > ===================================================================
> > --- include/corosync/totem/totem.h (revision 2408)
> > +++ include/corosync/totem/totem.h (working copy)
> > @@ -36,15 +36,16 @@
> > #define TOTEM_H_DEFINED
> > #include "totemip.h"
> >
> > -#ifndef MESSAGE_SIZE_MAX
> > +#ifdef HAVE_SMALL_MEMORY_FOOTPRINT
> > +#define PROCESSOR_COUNT_MAX 16
> > +#define MESSAGE_SIZE_MAX 1024*64
> > +#define MESSAGE_QUEUE_MAX 512
> > +#else
> > +#define PROCESSOR_COUNT_MAX 384
> > #define MESSAGE_SIZE_MAX 1024*1024 /* (1MB) */
> > -#endif /* MESSAGE_SIZE_MAX */
> > +#define MESSAGE_QUEUE_MAX MESSAGE_SIZE_MAX / totem_config->net_mtu
> > +#endif /* HAVE_SMALL_MEMORY_FOOTPRINT */
> >
> > -#ifndef MESSAGE_QUEUE_MAX
> > -#define MESSAGE_QUEUE_MAX MESSAGE_SIZE_MAX / totem_config->net_mtu
> > -#endif /* MESSAGE_QUEUE_MAX */
> > -
> > -#define PROCESSOR_COUNT_MAX 384
> > #define FRAME_SIZE_MAX 10000
> > #define TRANSMITS_ALLOWED 16
> > #define SEND_THREADS_MAX 16
> > Index: include/corosync/engine/coroapi.h
> > ===================================================================
> > --- include/corosync/engine/coroapi.h (revision 2408)
> > +++ include/corosync/engine/coroapi.h (working copy)
> > @@ -65,17 +65,18 @@
> >
> > #define TOTEMIP_ADDRLEN (sizeof(struct in6_addr))
> >
> > -#define PROCESSOR_COUNT_MAX 384
> > #define INTERFACE_MAX 2
> >
> > -#ifndef MESSAGE_SIZE_MAX
> > +#ifdef HAVE_SMALL_MEMORY_FOOTPRINT
> > +#define PROCESSOR_COUNT_MAX 16
> > +#define MESSAGE_SIZE_MAX 1024*64
> > +#define MESSAGE_QUEUE_MAX 512
> > +#else
> > +#define PROCESSOR_COUNT_MAX 384
> > #define MESSAGE_SIZE_MAX 1024*1024 /* (1MB) */
> > -#endif /* MESSAGE_SIZE_MAX */
> > +#define MESSAGE_QUEUE_MAX MESSAGE_SIZE_MAX / totem_config->net_mtu
> > +#endif /* HAVE_SMALL_MEMORY_FOOTPRINT */
> >
> > -#ifndef MESSAGE_QUEUE_MAX
> > -#define MESSAGE_QUEUE_MAX MESSAGE_SIZE_MAX / totem_config->net_mtu
> > -#endif /* MESSAGE_QUEUE_MAX */
> > -
> > #define TOTEM_AGREED 0
> > #define TOTEM_SAFE 1
> >
> > Index: configure.ac
> > ===================================================================
> > --- configure.ac (revision 2408)
> > +++ configure.ac (working copy)
> > @@ -192,6 +192,10 @@
> > [ --enable-coverage : coverage analysis of the codebase. ],
> > [ default="no" ])
> >
> > +AC_ARG_ENABLE([small-memory-footprint],
> > + [ --enable-small-memory-footprint : Use small message queues and
> > small messages sizes. ],
> > + [ default="no" ])
> > +
> > AC_ARG_ENABLE([nss],
> > [ --enable-nss : Network Security Services encryption. ],,
> > [ enable_nss="yes" ])
> > @@ -353,6 +357,12 @@
> > COVERAGE_LDFLAGS=""
> > fi
> >
> > +
> > +if test "x${enable_small_memory_footprint}" = xyes ; then
> > + AC_DEFINE_UNQUOTED([HAVE_SMALL_MEMORY_FOOTPRINT], 1, [have
> > small_memory_footprint])
> > + PACKAGE_FEATURES="$PACKAGE_FEATURES small-memory-footprint"
> > +fi
> > +
> > if test "x${enable_ansi}" = xyes && \
> > cc_supports_flag -std=iso9899:199409 ; then
> > AC_MSG_NOTICE([Enabling ANSI Compatibility])
> > Index: lib/util.h
> > ===================================================================
> > --- lib/util.h (revision 2408)
> > +++ lib/util.h (working copy)
> > @@ -53,8 +53,14 @@
> > } \
> > }
> >
> > +#ifdef HAVE_SMALL_MEMORY_FOOTPRINT
> > +#define IPC_REQUEST_SIZE 1024*64
> > +#define IPC_RESPONSE_SIZE 1024*64
> > +#define IPC_DISPATCH_SIZE 1024*64
> > +#else
> > #define IPC_REQUEST_SIZE 8192*128
> > #define IPC_RESPONSE_SIZE 8192*128
> > #define IPC_DISPATCH_SIZE 8192*128
> > +#endif /* HAVE_SMALL_MEMORY_FOOTPRINT */
> >
> > #endif /* AIS_UTIL_H_DEFINED */
> > _______________________________________________
> > Openais mailing list
> > [email protected]
> > https://lists.linux-foundation.org/mailman/listinfo/openais
>
> _______________________________________________
> Openais mailing list
> [email protected]
> https://lists.linux-foundation.org/mailman/listinfo/openais
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais