Annotate mallinfo status for command server-status
[pazpar2-moved-to-github.git] / src / http_command.c
index 503f082..4a05abd 100644 (file)
@@ -49,18 +49,27 @@ void print_meminfo(WRBUF wrbuf)
     struct mallinfo minfo;
     minfo = mallinfo();
     wrbuf_printf(wrbuf, "  <memory>\n"
-                        "   <arena>%d</arena>\n"
-                        "   <uordblks>%d</uordblks>\n"
-                        "   <fordblks>%d</fordblks>\n"
-                        "   <ordblks>%d</ordblks>\n"
-                        "   <keepcost>%d</keepcost>\n"
-                        "   <hblks>%d</hblks>\n"
-                        "   <hblkhd>%d</hblkhd>\n"
-                        "   <virt>%d</virt>\n"
-                        "   <virtuse>%d</virtuse>\n"
-                        "  </memory>\n",
-                 minfo.arena, minfo.uordblks, minfo.fordblks,minfo.ordblks, minfo.keepcost, minfo.hblks, minfo.hblkhd, minfo.arena + minfo.hblkhd, minfo.uordblks + minfo.hblkhd);
-
+                 "    <arena>%d</arena><!--  Non-mmapped space allocated (bytes) -->\n"
+                 "    <ordblks>%d</ordblks><!--  Number of free chunks -->\n"
+                 "    <smblks>%d</smblks><!--  Number of free fastbin blocks -->\n"
+                 "    <hblks>%d</hblks><!--  Number of mmapped regions -->\n"
+                 "    <hblkhd>%d</hblkhd><!--  Space allocated in mmapped regions (bytes) -->\n"
+                 "    <usmblks>%d</usmblks><!--  Maximum total allocated space (bytes) -->\n"
+                 "    <fsmblks>%d</fsmblks><!--  Space in freed fastbin blocks (bytes) -->\n"
+                 "    <uordblks>%d</uordblks><!--  Total allocated space (bytes) -->\n"
+                 "    <fordblks>%d</fordblks><!--  Total free space (bytes) -->\n"
+                 "    <keepcost>%d</keepcost><!-- Top-most, releasable space (bytes) -->\n"
+                 "  </memory>\n",
+                 minfo.arena,
+                 minfo.ordblks,
+                 minfo.smblks,
+                 minfo.hblks,
+                 minfo.hblkhd,
+                 minfo.usmblks,
+                 minfo.fsmblks,
+                 minfo.uordblks,
+                 minfo.fordblks,
+                 minfo.keepcost);
 }
 #else
 #define print_meminfo(x)
@@ -126,7 +135,7 @@ http_sessions_t http_sessions_create(void)
     hs->session_list = 0;
     hs->mutex = 0;
     pazpar2_mutex_create(&hs->mutex, "http_sessions");
-    hs->log_level = yaz_log_module_level("HTTP");
+    hs->log_level = yaz_log_module_level("http");
     return hs;
 }
 
@@ -165,7 +174,7 @@ struct http_session *http_session_create(struct conf_service *service,
     char tmp_str[50];
 
     sprintf(tmp_str, "session#%u", sesid);
-    r->psession = new_session(nmem, service, sesid);
+    r->psession = session_create(nmem, service, sesid);
     r->session_id = sesid;
     r->timestamp = 0;
     r->nmem = nmem;
@@ -694,43 +703,17 @@ static void cmd_session_status(struct http_channel *c)
     release_session(c, s);
 }
 
-#ifdef HAVE_RESULTSETS_COUNT
-int resultsets_count(void);
-#else
-#define resultsets_count()      0
-#endif
-
 static void cmd_server_status(struct http_channel *c)
 {
     int sessions   = sessions_count();
     int clients    = clients_count();
-    int resultsets = resultsets_count();
 
     response_open_ok(c, "server-status");
-    wrbuf_printf(c->wrbuf, "\n  <sessions>%u</sessions>\n", sessions);
-    wrbuf_printf(c->wrbuf, "  <clients>%u</clients>\n",   clients);
-    /* Only works if yaz has been compiled with enabling of this */
-    wrbuf_printf(c->wrbuf, "  <resultsets>%u</resultsets>\n",resultsets);
+
+    wrbuf_printf(c->wrbuf, "\n  <sessions>%d</sessions>\n", sessions);
+    wrbuf_printf(c->wrbuf, "  <clients>%d</clients>\n",   clients);
     print_meminfo(c->wrbuf);
 
-/* TODO add all sessions status                         */
-/*    http_sessions_t http_sessions = c->http_sessions; */
-/*    struct http_session *p;                           */
-/*
-    yaz_mutex_enter(http_sessions->mutex);
-    for (p = http_sessions->session_list; p; p = p->next)
-    {
-        p->activity_counter++;
-        wrbuf_puts(c->wrbuf, "<session-status>\n");
-        wrbuf_printf(c->wrbuf, "<id>%s</id>\n", p->session_id);
-        yaz_mutex_leave(http_sessions->mutex);
-        session_status(c, p);
-        wrbuf_puts(c->wrbuf, "</session-status>\n");
-        yaz_mutex_enter(http_sessions->mutex);
-        p->activity_counter--;
-    }
-    yaz_mutex_leave(http_sessions->mutex);
-*/
     response_close(c, "server-status");
     xmalloc_trav(0);
 }