From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 0/6] KVM support for TSC scaling Date: Tue, 22 Feb 2011 12:11:42 +0200 Message-ID: <4D638BDE.70602@redhat.com> References: <4D57F677.3090004@redhat.com> <20110221172807.GD16508@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , "kvm@vger.kernel.org" , "linux-kernel@vger.kernel.org" , Zachary Amsden To: "Roedel, Joerg" Return-path: In-Reply-To: <20110221172807.GD16508@amd.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 02/21/2011 07:28 PM, Roedel, Joerg wrote: > > - what's the cost of wrmsr(TSC_MULT)? > > Hard to tell by now because I only have numbers for pre-production > hardware. Can you ask your hardware people what the cost will likely be? msrs are often expensive, and here we have two in the lightweight exit path. > > There are really two ways to implement this feature. One is fully > > generic, like you did. The other is to implement it at the host level - > > have a sysfs file and/or kernel parameter for the desired tsc frequency, > > write it once, and forget about it. Trust management to set the host > > tsc frequency to the same value on all hosts in a migration cluster. > > The motivation here is mostly the flexibility. Scale the TSC for the > whole migration cluster only makes sense if all hosts there support the > feature. But the most likely scenario is that existing migration > clusters will be extended by new machines and guests will be migrated > there. And these guests should be able to see the same TSC frequency on > the new host as the had on the old one. The older machines in the > cluster may even have different TSC frequencys. With this flexible > implementation those scenarios are possible. A host-wide setting for the > scaling will make the feature useless in those (common) scenarios. This doesn't really work, since we don't know on what host the TSC calibration loop ran: - start guest on host H1 - migrate it around, now it's on host H2 - guest reboots, reruns calibration loop - migrate it around some more, now it's on host H3 - migrate to host with tsc multiplier Hnew So, what should we set the multiplier to? H1, H2, or H3's tsc rate? -- error compiling committee.c: too many arguments to function