[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH v6 5/5] xen: add debugtrace entry when entry count is wrapping
 
- To: Jan Beulich <jbeulich@xxxxxxxx>
 
- From: Juergen Gross <jgross@xxxxxxxx>
 
- Date: Mon, 9 Sep 2019 10:22:34 +0200
 
- Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx>, Wei Liu <wl@xxxxxxx>, Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>, George Dunlap <George.Dunlap@xxxxxxxxxxxxx>, Andrew Cooper <andrew.cooper3@xxxxxxxxxx>, Ian Jackson <ian.jackson@xxxxxxxxxxxxx>, Tim Deegan <tim@xxxxxxx>, Julien Grall <julien.grall@xxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxxx
 
- Delivery-date: Mon, 09 Sep 2019 08:22:40 +0000
 
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
 
 
 
On 09.09.19 10:19, Jan Beulich wrote:
 
On 09.09.2019 09:35, Juergen Gross wrote:
 
@@ -173,10 +177,23 @@ void debugtrace_printk(const char *fmt, ...)
      nr = vsnprintf(buf, sizeof(buf), fmt, args);
      va_end(args);
  
+    if ( count == DEBUGTRACE_COUNT_WRAP )
+    {
+        count = 0;
+        wrap_cnt++;
+    }
+
      if ( debugtrace_send_to_console )
      {
-        unsigned int n = scnprintf(cntbuf, sizeof(cntbuf), "%u ", ++count);
+        unsigned int n;
+
+        if ( count == 0 )
+        {
+            n = scnprintf(cntbuf, sizeof(cntbuf), "wrap: %lu\n", wrap_cnt);
+            console_serial_puts(cntbuf, n);
+        }
  
+        n = scnprintf(cntbuf, sizeof(cntbuf), "%u ", ++count);
          console_serial_puts(cntbuf, n);
          console_serial_puts(buf, nr);
      }
 
Just one minor remark: In this case you issue a "wrap" message at
start of day, ...
 
@@ -184,8 +201,16 @@ void debugtrace_printk(const char *fmt, ...)
      {
          unsigned int cpu = debugtrace_per_cpu ? smp_processor_id() : 0;
  
-        if ( debugtrace_buf_empty || strcmp(buf, last_buf) )
+        if ( debugtrace_buf_empty || wrap_cnt != data->wrap_cnt ||
+             strcmp(buf, last_buf) )
          {
+            if ( wrap_cnt != data->wrap_cnt )
+            {
+                snprintf(cntbuf, sizeof(cntbuf), "wrap: %lu->%lu\n",
+                         data->wrap_cnt, wrap_cnt);
+                debugtrace_add_to_buf(cntbuf);
+                data->wrap_cnt = wrap_cnt;
+            }
              debugtrace_buf_empty = false;
              last_prd = data->prd;
              last_count = ++count;
 
... whereas here one gets issued (as I'd expect it) only after the
first wrapping of "count".
 
 
Yes, I know. The reason I have done it this way was the possibility to
support debugtrace via console even in case of a zero-sized buffer in
future. I can point that out in the commit message.
Juergen
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel 
 
    
     |