Changeset: dc80b20bf170 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/dc80b20bf170
Modified Files:
        gdk/gdk_utils.c
Branch: Jun2023
Log Message:

Refinement of fix for bug #7400.
Ignore setting of memory.low, I don't think it's relevant.
memory.swap.max is just swap space, so add it to memory.high to get the
vm limit.
Note, all of this may not be the right thing to do since we're ignoring
the fact that we use file-backed mmaps.


diffs (55 lines):

diff --git a/gdk/gdk_utils.c b/gdk/gdk_utils.c
--- a/gdk/gdk_utils.c
+++ b/gdk/gdk_utils.c
@@ -689,32 +689,35 @@ MT_init(void)
                                        /* assume "max" if not a number */
                                        fclose(f);
                                }
-                               /* soft low limit */
-                               strcpy(q, "memory.low");
-                               f = fopen(pth, "r");
-                               if (f != NULL) {
-                                       if (fscanf(f, "%" SCNu64, &mem) == 1
-                                           && mem > 0
-                                           && mem < (uint64_t) _MT_pagesize * 
_MT_npages) {
-                                               _MT_npages = (size_t) (mem / 
_MT_pagesize);
-                                       }
-                                       success = true;
-                                       /* assume "max" if not a number */
-                                       fclose(f);
-                               }
-                               /* limit of memory+swap usage
-                                * we use this as maximum virtual memory size */
+                               /* limit of swap usage, hard limit
+                                * we use this, together with
+                                * memory.high, as maximum virtual
+                                * memory size */
                                strcpy(q, "memory.swap.max");
                                f = fopen(pth, "r");
                                if (f != NULL) {
                                        if (fscanf(f, "%" SCNu64, &mem) == 1
                                            && mem > 0
-                                           && mem < (uint64_t) GDK_vm_maxsize) 
{
+                                           && (mem += _MT_npages * 
_MT_pagesize) < (uint64_t) GDK_vm_maxsize) {
                                                GDK_vm_maxsize = (size_t) mem;
                                        }
                                        success = true;
                                        fclose(f);
                                }
+#if 0 /* not sure about using this one */
+                               /* limit of swap usage, soft limit */
+                               strcpy(q, "memory.swap.high");
+                               f = fopen(pth, "r");
+                               if (f != NULL) {
+                                       if (fscanf(f, "%" SCNu64, &mem) == 1
+                                           && mem > 0
+                                           && (mem += _MT_npages * 
_MT_pagesize) < (uint64_t) GDK_vm_maxsize) {
+                                               GDK_vm_maxsize = (size_t) mem;
+                                       }
+                                       success = true;
+                                       fclose(f);
+                               }
+#endif
                        } else {
                                /* cgroup v1 entry */
                                p = strchr(buf, ':');
_______________________________________________
checkin-list mailing list -- checkin-list@monetdb.org
To unsubscribe send an email to checkin-list-le...@monetdb.org

Reply via email to