From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42052) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XXEHN-0002hX-HC for qemu-devel@nongnu.org; Thu, 25 Sep 2014 15:00:43 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XXEHG-000723-7e for qemu-devel@nongnu.org; Thu, 25 Sep 2014 15:00:37 -0400 Received: from gproxy6-pub.mail.unifiedlayer.com ([67.222.39.168]:52632) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1XXEHF-0006xi-UA for qemu-devel@nongnu.org; Thu, 25 Sep 2014 15:00:30 -0400 Received: from [63.82.2.226] (port=62780 helo=[192.168.12.217]) by box899.bluehost.com with esmtpsa (TLSv1:DHE-RSA-AES128-SHA:128) (Exim 4.82) (envelope-from ) id 1XXEGz-0004f7-TO for qemu-devel@nongnu.org; Thu, 25 Sep 2014 13:00:13 -0600 Message-ID: <54246640.1080902@convirture.com> Date: Thu, 25 Sep 2014 12:00:16 -0700 From: Jd MIME-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 8bit Subject: [Qemu-devel] Intel Haswell : Cache monitoring technology and libvirt List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Hi We are looking to get processor level cache metrics for each running VM. Does QEMU/KVM (or libvirt) set RMID for tagging processor cache metrics ? How do I find RMID for a particular VM ? (Once RMID is known, I am assuming we will be able to query the processor via MSRs to get values) Any help / pointers will be appreciated. Thanks /Jd Some more context : https://01.org/blogs/skjain/2014/four-new-virtualization-technologies-latest-intel%C2%AE-xeon-are-you-ready-innovate *Cache Monitoring Technology (CMT)* - allows flexible real time monitoring of the last level cache (LLC) occupancy on per core, per thread, per application or per VM basis. Read the raw value from the IA32_QM_CTR register, multiply by a factor given in the CPUID field CPUID.0xF.1:EBX to convert to bytes, and voila! This monitoring can be quite useful in detecting the cache hungry “noisy neighbors,” characterizing the quiet threads, profiling the workloads in multi-tenancy environments, advancing cache-aware scheduling and/or all of the above. Based on the CMT readings, schedulers can take subsequent intelligent actions to move and balance the loads to meet any service level agreement (SLA) in a policy driven manner. Intel® 64 and IA-32 Architectures Software Developer’s Manual (SDM) volume-3 chapter-17.14 provides the CMT programming details. CMT reference code is also available for evaluation under BSD license. For commercial use, please use the CMT cgroup and perf monitoring code being upstreamed for Linux, and both KVM and Xen.