[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [MirageOS-devel] Mirage tracing updates
To help debug a problem with TCP connections hanging [1], I've made some improvements to the tracing system. There are new releases of mirage-trace-viewer and mirage-profile, and updates to the Lwt tracing branch. Here's an example trace showing the new features: http://openmirage.org/html/trace-viewer.html?trace=good If you're using the 0install binary [2] of the trace viewer, you can update with: 0install update mtv The new viewer can still read old traces, but to use some of the new features you should "opam upgrade" to mirage-profile 0.5 and recompile your test program. Main new features - If a thread is marked with the new MProf.Trace.should_resolve call, then mark it as failed if it never resolved and set its end time to the end of the trace to make it more visible. This makes it much easier to find a thread when something was supposed to happen but didn't. - If one thread attempts to read from another, but it never completes, show a yellow arrow at the attempt to show what it's waiting for. By following these arrows you can discover the original stuck thread. - Double-click a thread to highlight it. This makes it easier to keep track of it when moving around. It also highlights any thread which this one merges into, and any threads which merge into this one, recursively. - The metric lines are now more visible, with a black outline. No more squinting :-) - The GTK viewer has a right-click pop-up menu, and the HTML viewer has a corresponding side panel that can be opened by clicking the new hamburger icon in the bottom left. - Display of metric lines can be toggled, either all at once by pressing Space, or individually via the menu/panel. - You can search for threads with a label matching some string (keyboard short-cut: '/'). I've updated the documentation page's example using the new version: http://openmirage.org/wiki/profiling Before, spotting the bug relied on comparing good and bad traces, but I think you could now reasonably find the bug using just the failed trace. I was also able to remove the apology about the unresolved threads being hard to see. Other changes - Some metrics now share their scales. e.g. tcp-to-ip and tcp-ackd-segs share a single scale. By default, the scale name is the metric name with any trailing '#...' part removed. So, 'tx_window#445' and 'tx_window#446' (the transmit window for two separate TCP connections) will share the same scale. - Trace files can now report absolute counter values, not just deltas. Scales now always go down to zero. - There are new callback thread types for Lwt.on_success, on_failure, etc. Previously, events from such callbacks were shown against the thread that registered the callback. This was confusing, and could cause redraw glitches if that thread ended before the callback events occured. - You can restrict the default metrics shown when using the HTML viewer API. - Updated opam file to use new configure option name. Reported by Luke Dunstan. - Adapt to latest io-page (Thomas Gazagnaire). - Install the xen plugin (Thomas Gazagnaire). - Updated Lwt repository link in mirage-profile README. Reported by Mindy Preston. - Failed threads are now drawn in red. - Positioning of metric lines was improved. - The view no longer aborts on unknown thread types (allows upgrading the format more easily). [1] https://github.com/mirage/mirage-tcpip/issues/140 [2] http://talex5.github.io/mirage-trace-viewer/mtv.xml -- Dr Thomas Leonard http://roscidus.com/blog/ GPG: DA98 25AE CAD0 8975 7CDA BD8E 0713 3F96 CA74 D8BA _______________________________________________ MirageOS-devel mailing list MirageOS-devel@xxxxxxxxxxxxxxxxxxxx http://lists.xenproject.org/cgi-bin/mailman/listinfo/mirageos-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |