From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757217AbdJKHsf (ORCPT ); Wed, 11 Oct 2017 03:48:35 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:24478 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757174AbdJKHse (ORCPT ); Wed, 11 Oct 2017 03:48:34 -0400 Subject: Re: [PATCH 1/1] sched/cputime: do not decrease steal time after live migration on xen To: Rik van Riel , Peter Zijlstra , Stanislaw Gruszka References: <1507626848-24148-1-git-send-email-dongli.zhang@oracle.com> <20171010105925.mla7tpdh6stlxie3@gmail.com> <20171010124201.GD8263@redhat.com> <20171010124816.ujbjwqow4axpzgk2@hirez.programming.kicks-ass.net> <1507644062.21121.179.camel@redhat.com> Cc: Ingo Molnar , Wanpeng Li , Xiaolong Ye , Frederic Weisbecker , linux-kernel@vger.kernel.org, xen-devel@lists.xen.org, mingo@redhat.com, dario.faggioli@citrix.com, bevan@bi-co.net, xen.list@daevel.fr, joao.m.martins@oracle.com From: Dongli Zhang Message-ID: <6217d9be-8c33-3c8d-31d6-3daa59318ed8@oracle.com> Date: Wed, 11 Oct 2017 15:47:44 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.3.0 MIME-Version: 1.0 In-Reply-To: <1507644062.21121.179.camel@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Rik, On 10/10/2017 10:01 PM, Rik van Riel wrote: > On Tue, 2017-10-10 at 14:48 +0200, Peter Zijlstra wrote: >> On Tue, Oct 10, 2017 at 02:42:01PM +0200, Stanislaw Gruszka wrote: >>>>> + u64 steal, steal_time; >>>>> + s64 steal_delta; >>>>> + >>>>> + steal_time = >>>>> paravirt_steal_clock(smp_processor_id()); >>>>> + steal = steal_delta = steal_time - this_rq()- >>>>>> prev_steal_time; >>>>> + >>>>> + if (unlikely(steal_delta < 0)) { >>>>> + this_rq()->prev_steal_time = >>>>> steal_time; >>> >>> I don't think setting prev_steal_time to smaller value is right >>> thing to do. >>> >>> Beside, I don't think we need to check for overflow condition for >>> cputime variables (it will happen after 279 years :-). So instead >>> of introducing signed steal_delta variable I would just add >>> below check, which should be sufficient to fix the problem: >>> >>> if (unlikely(steal <= this_rq()->prev_steal_time)) >>> return 0; >> >> How about you just fix up paravirt_steal_time() on migration and not >> muck with the users ? > > Not just migration, either. CPU hotplug is another time to fix up > the steal time. I think this issue might be hit when we add and online vcpu after a very very long time since boot (or the last time vcpu is offline). Please correct me if I am wrong. Thank you very much! Dongli Zhang >