From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ruslan Nikolaev Subject: Perfctr-Xen framework for performance analysis Date: Thu, 19 May 2011 13:18:02 -0700 (PDT) Message-ID: <148995.30477.qm@web113611.mail.gq1.yahoo.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org Regarding Perfctr-Xen (see announcement below), some have requested author's version of the published paper. It is available on my website: http://people.cs.vt.edu/~rnikola/?page_id=159 Please, let me know what you think. Also, I want to iterate my point regarding Perfctr-Xen vs XenoProf: XenoProf is useful but has a number of limitations such as system-wide monitoring only. Perfctr-Xen addresses those issues (as described in the paper), and enables profiling functionality similar to XenoProf/Oprofile via higher level software such as HPCToolkit which were shown to work. Perhaps, someone can add support for OProfile, so that it can work via Perfctr-Xen, however, as of now, no such support is available. Similarly, Xenoprof has no support for HPCToolkit, PAPI, etc. because it was designed for OProfile. For this reason, Perfctr-Xen and Xenoprof provide quite orthogonal solutions to the performance monitoring problem. The original Perfctr-Xen announcement: I want to make an announcement about new performance monitoring framework. Perfctr-Xen framework that enables per-thread performance analysis in Xen. Current version is capable of properly virtualizing counters in both paravirtualized and HVM modes. It is based on perfctr (which is a library and kernel module for non-virtualized guests), ported to Xen, and extended to work properly in virtualized environment. Both accumulative and interrupt modes counting (profiling) are supported. The advantage of Perfctr-Xen is that it does not require specific HVM extensions which are needed for vpmu driver, can work in paravirtualized mode, and it also quite universal: works with many common tools such as PAPI, HPCToolkit, TAU PerfExplorer. It supports proper per-domain and per-thread virtualization. It is light-weight, supports wide range of CPUs, does not require save-and-restore for accumulative mode of counting (it uses counter offsetting), avoids expensive hypercalls and counter re-programming in certain circumstances (when threads are counting the same type of events). In addition, some techniques are employed to account for the overhead caused by the framework itself. This makes measurements quite accurate. Perfctr-Xen consists of series of patches that need to be applied to Xen, Linux, perfctr. They are available at: http://people.cs.vt.edu/~rnikola/ The code is available under LGPL. It would be great to discuss if and how it can be integrated into Xen Thanks, Ruslan Nikolaev