> 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

Reply via email to