Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1402850

Re: [PATCH v2] sched/cputime: add steal time support to full dynticks CPU time accounting

Path csiph.com!weretis.net!feeder4.news.weretis.net!news.mixmin.net!aioe.org!bofh.it!news.nic.it!robomod
From Mika Penttilä <mika.penttila@nextfour.com>
Newsgroups linux.kernel
Subject Re: [PATCH v2] sched/cputime: add steal time support to full dynticks CPU time accounting
Date Wed, 18 May 2016 12:10:01 +0200
Message-ID <rA6Ap-Fs-7@gated-at.bofh.it> (permalink)
References <rA51E-7Zz-13@gated-at.bofh.it>
Dkim-Signature v=1; a=rsa-sha256; c=relaxed/relaxed; d=NextfourGroupOy.onmicrosoft.com; s=selector1-nextfour-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=lgM69T9fGT3+hSMZ1wzGMoGPfSFNEeJ+gpHPt+JHkyo=; b=AZ+SPIC6eYrTKtMy47GgygAviLRU43cc1s2buMYowpZWW34vuZG1OKooukYTsz/YySDjFSO5NcmvsiaaV1/uP+JXbngNypfaPyWov4cRpoevb/ffD2HVhLheJ/VWUbdyNtrpzeThi/ORClPDm80+OhsuTwOGgIOSn/rmSYFq288=
Authentication-Results redhat.com; dkim=none (message not signed) header.d=none;redhat.com; dmarc=none action=none header.from=nextfour.com;
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1
MIME-Version 1.0
Content-Type text/plain; charset="windows-1252"
Content-Transfer-Encoding 7bit
X-Originating-IP [194.157.170.34]
X-Clientproxiedby AM3PR01CA039.eurprd01.prod.exchangelabs.com (10.141.191.29) To AM4PR07MB1553.eurprd07.prod.outlook.com (10.165.249.9)
X-Ms-Office365-Filtering-Correlation-ID 30725e82-a09c-4515-26fb-08d37f014a20
X-Microsoft-Exchange-Diagnostics 1;AM4PR07MB1553;2:f45vHgaaNqbNhGCmTbhucZbHC+a/PSFMASq6m/OcnnTcESt7g1rFCReLIlU9hqS1LlNFRbNF3jri3RnwiPCxQ7Gcl978iyWOxx8d5WVajLjdu2eKwBsL/I68nbjRMN8BU2eonxOep5MqETTnz/22/6JPDvx39Eyamowg/NmAqWUPy19tstGZrK4jmFnwxOrO;3:XanhGRBjJtMs5qjG29fHFFFc7gMa6PppoZ4caMs76uswAYhuLtX9j+mFWMXekDyzq62h2fDXuc76MF9NyKprjAENoj+A5yvCEFcUUT5UqiQQvW1McM9MQAEygjLjSBwd
X-Microsoft-Antispam UriScan:;BCL:0;PCL:0;RULEID:;SRVR:AM4PR07MB1553;
X-Microsoft-Exchange-Diagnostics 1;AM4PR07MB1553;25:pfcByNJmWx+nQC9VVg2hpfbEw/mLIFiY6mf2dXzz94cxLJvxxo26fPG1++Yh7HWrEjWYq7nafXeZsIH3rQufKHvSXjpwhW9jzg/3TX6+4MQ+6RupmQPEm4NMyULCwqhdBuKSMvVAd4wAR7Z8GBLgi+op5q1eIzLKJMsfoyIMtccWk/CHbERv4Ls6fc6uQl+68fZsUo6WRNjqicQxvIgTrTgcqPtox7CPUN7ayhFJDerw8Jv2/bF+gQsth8W08YyBlkvbEvjPGMyyDuKoBdoT8618MWmVw03IOBgaUE5JdA42LMSELMnKrRX6NgJ5TgNkJvwoU2Ye7Ic50VugNRwOAT8Rw0OWITu9E0CO/aX7/0GRQsrQDB6KYIOYGMRyHNvDo54TJzAi2yJWocGebMMBnKcLkMNr52Jfxbyv4zEJnuBNBkqpWUTWi31/8bnIHoZD7exo27D++xukpiRd2SU+ieuF3lESJpjrHRpIHq8MkGLQSCxMLpaQfRg7XWNyA8AiMs0k2tVV9tRD9eoKRdRZ7+v1i003RcSdPaxsKfRjLgP0up8BkyJEd4uW+RFvlYBHD8Xc+xYdGw8CIT2v4MyXfa0lXI5SSjOdDVgjU+7PW9cMUuRBNmd8UDZsO8JTb2hu2s/4dz194ustqX53UjexdC1dnyg4xkxNNFUa/J8DT3mD7jKhy/1UKP5uVpOPqpVam3sNzhbQPz0oQGfZf4VH9K7GJJHGjSEdw1vrBDg20k7M+ed6mZ+PVonjr7ViyzHZ
X-Microsoft-Antispam-Prvs <AM4PR07MB1553CB126DE5DC374B57DF1F83490@AM4PR07MB1553.eurprd07.prod.outlook.com>
X-Exchange-Antispam-Report-Test UriScan:;
X-Exchange-Antispam-Report-Cfa-Test BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001);SRVR:AM4PR07MB1553;BCL:0;PCL:0;RULEID:;SRVR:AM4PR07MB1553;
X-Microsoft-Exchange-Diagnostics 1;AM4PR07MB1553;4:TGlMpjOQJWRjYwwbYRvnwGsvBJbCETZr71WYO7ADTrSH38Z0FwZYkqL6ltdoIvTT/AdQuvny5qjORT7Pq+8BB90STg3uWisPW41aNmyegPZevuLfMqHzWYMD+bvXkOSZdtpHlx++rzNxY0ZZsuq+ZlMFcEbz1sWnq+k8uEzqS5Hq3a8bu2Km6QV/3b+jpvfR4gVUOghILQ8KuM0+GRnc2FPbHUkCA5bNeep66/d4bF/hIJ3FBXlth6Wg5o3Np5zJBasIE+sAr8yw1SWz9D4rdM5uUS/8Vj7ZbItPKKEKucoPKZTd8jn3sbXUd/dhIciuVD6+ijZF4uuE7UYhRSOXI181qSO2PVyE8OW8urwl+AJ7pZ4aRF0ngCxTs9MwGBhN
X-Forefront-Prvs 0946DC87A1
X-Forefront-Antispam-Report SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(6049001)(24454002)(377454003)(8676002)(5001770100001)(42186005)(19580405001)(80316001)(59896002)(5008740100001)(64126003)(86362001)(189998001)(65956001)(66066001)(65806001)(36756003)(2950100001)(33656002)(77096005)(92566002)(50466002)(2201001)(47776003)(15650500001)(83506001)(50986999)(76176999)(54356999)(87266999)(19580395003)(81166006)(23746002)(586003)(65816999)(3846002)(6116002)(5004730100002)(2906002)(230700001);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR07MB1553;H:[10.10.10.110];FPR:;SPF:None;MLV:sfv;LANG:en;
X-Microsoft-Exchange-Diagnostics 1;AM4PR07MB1553;23:yXvcMN3LoZJrTYltM7rLNTAZYcOpN0uwk5QLS55fs1NTTLmr3Zf5GcF5JNbtgkjAX8JDLB378W1sDdmBU+QZpNQCS+/xEKB2Jp/MQKC4pX/RIpEUhTVZi2zGifjHv7VhV21nBVcZmcb5relmlheMqx0Hz/2TvTMTlBlIHp8bdi1Ll7LPk2mZGVk/Y40fHzGOQ5Z5+M9ZrhRVZiNVmcrQoXKCGSiLXYcBt3DvmJ8VBqCIZf8M+6myQy24JaMez9g//QdPlQOtaj+plOvNAXI9+7/zpl+f1vjyqgkPmWtyTzHZnGO7bzm6HXadYJ8+SpXBKc1VbwJ0LOGkrIZKfzyHZncaYDZ5hvXDUibVDe65SopTNQYgyDbIUixJBMcgfuNzIzVHhtndfkuIlCg8Mf2ZibmgjzZjVc+pcK7ayxi6j+8VrKu5AevDxlI3B68q5gFuh8tWeUxc5yJeCtcUlY5BTlUmGhN6JKGxINOtgwZ0CXx5taY+rnnV8ulRVVX1aG+GT9N91wUsfwqJGEkihMs5pA3Gz4y9vNgvqjQWRVFjJO2OUsoNTFtkaI6uicF33lLupwcq51NijLEtEmpeRWXEB9ExM6W9PiOJbWKpoIL2KAWk2BwfjICqNH60sotoVHqBRkEf8ch8pXBujO+5/Q8wg6+l3KKq+n+eWCwN+g2jYH7e6kKUWdjSorfS+YyX0BMBgy3BqOTWbsTuXzZaftt7g76flrogSlZPzwFnsMJyz2fsx4a9VKj7u/PqG9WNKZOztSg77VGigVUm3EQFPbPEb+q6kbUzL8YFQvVkwI1xhcjB7IsmdaVRS5ZEBBy4B3kHm09e9oVH3MPUndTB3gf8lOZSBpYLHQGg2ERjmCDQFsl9MKEf805RJ02/HkDKgpDLYtXHtqydk1uG7neSL+2HhwvWgCXfcjg8ZtMkN1ogjBsOk1OYa0ckZKJFLnWJ6m1tDGaJ+6ARayoeosKqIkeKyZkUaWGd0S12EZzPpJ01T0Iv5d4XkT5eYj93t60XugLOCe3zhrhw0gOpqq6iYIZEBR9jLsh1IFAv1GvGlHderZdgmRp6jtGC+bhwNEGExAUbddwONa35J/1fORgjQNRDLCmAf2/nPaWz4+5h3T+rHgQ=
X-Microsoft-Exchange-Diagnostics 1;AM4PR07MB1553;5:MYk/s17Biv3XvGTQl8ZQQMyRCMDKu8xShHiTRvOqTy7HHMD1vmRBc7Yk7dUFjTV4lVs3mgr8MrIAKmFiJnTnvoyBBt5SEQ3emTEur4zfRlFdrDMyVd9HLpiIvM0gYrRoaFBNpAZAgjQxDl3dynEYtw==;24:17YbuB7hZdyp3Zg63k0yreuKtctBampkDNv1Wl4K6rxrbFWVRgwqS1qbKcIhbgjdOhVegDbRXLUAcHTDwrLwaMMI26bJGo7D6FVwHX7y+js=;7:n7s4cwei27dfPj48OH17ZzTd7d1+9CtEJzxe4H4MbqztfkmAAP+qk7y3H+BQ1I8q1VXETdpLazdjBDyGVgTrmYkAf9YPH6TvRMdNdnT0o6vdRcz4Trk/Fuf3IZBe999SN31NE7TVAhtg+jiQ4w4zwCu5sPIdJLMpsrm6xLzot6JCOi6l7+mRDg6IBaLys0A/
Spamdiagnosticoutput 1:23
Spamdiagnosticmetadata NSPM
X-Originatororg nextfour.com
X-Ms-Exchange-Crosstenant-Originalarrivaltime 18 May 2016 09:46:29.0624 (UTC)
X-Ms-Exchange-Crosstenant-Fromentityheader Hosted
X-Ms-Exchange-Transport-Crosstenantheadersstamped AM4PR07MB1553
Sender robomod@news.nic.it
List-ID <linux-kernel.vger.kernel.org>
X-Mailing-List linux-kernel@vger.kernel.org
Approved robomod@news.nic.it
Lines 85
Organization linux.* mail to news gateway
X-Original-Cc Wanpeng Li <wanpeng.li@hotmail.com>, Ingo Molnar <mingo@kernel.org>, "Peter Zijlstra (Intel)" <peterz@infradead.org>, Rik van Riel <riel@redhat.com>, Thomas Gleixner <tglx@linutronix.de>, Frederic Weisbecker <fweisbec@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, Radim <rkrcmar@redhat.com>
X-Original-Date Wed, 18 May 2016 12:46:25 +0300
X-Original-Message-ID <573C39F1.1020909@nextfour.com>
X-Original-References <1463560115-12962-1-git-send-email-wanpeng.li@hotmail.com>
X-Original-Sender linux-kernel-owner@vger.kernel.org
Xref csiph.com linux.kernel:1402850

Show key headers only | View raw


On 05/18/2016 11:28 AM, Wanpeng Li wrote:
> From: Wanpeng Li <wanpeng.li@hotmail.com>
> 
> This patch adds steal guest time support to full dynticks CPU 
> time accounting. After 'commit ff9a9b4c4334 ("sched, time: Switch 
> VIRT_CPU_ACCOUNTING_GEN to jiffy granularity")', time is jiffy 
> based sampling even if it's still listened to ring boundaries, so 
> steal_account_process_tick() is reused to account how much 'ticks' 
> are steal time after the last accumulation. 
> 
> Suggested-by: Rik van Riel <riel@redhat.com>
> Cc: Ingo Molnar <mingo@kernel.org>
> Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
> Cc: Rik van Riel <riel@redhat.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Frederic Weisbecker <fweisbec@gmail.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Radim <rkrcmar@redhat.com>
> Signed-off-by: Wanpeng Li <wanpeng.li@hotmail.com>
> ---
> v1 -> v2:
>  * fix divide zero bug, thanks Rik
> 
>  kernel/sched/cputime.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
> 
> diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
> index 75f98c5..bfa50a0 100644
> --- a/kernel/sched/cputime.c
> +++ b/kernel/sched/cputime.c
> @@ -257,7 +257,7 @@ void account_idle_time(cputime_t cputime)
>  		cpustat[CPUTIME_IDLE] += (__force u64) cputime;
>  }
>  
> -static __always_inline bool steal_account_process_tick(void)
> +static __always_inline unsigned long steal_account_process_tick(void)
>  {
>  #ifdef CONFIG_PARAVIRT
>  	if (static_key_false(&paravirt_steal_enabled)) {
> @@ -279,7 +279,7 @@ static __always_inline bool steal_account_process_tick(void)
>  		return steal_jiffies;
>  	}
>  #endif
> -	return false;
> +	return 0;
>  }
>  
>  /*
> @@ -691,8 +691,12 @@ static cputime_t get_vtime_delta(struct task_struct *tsk)
>  
>  static void __vtime_account_system(struct task_struct *tsk)
>  {
> +	unsigned long steal_time = steal_account_process_tick();
>  	cputime_t delta_cpu = get_vtime_delta(tsk);
>  
> +	if (steal_time >= delta_cpu)
> +		return;
> +	delta_cpu -= steal_time;
>  	account_system_time(tsk, irq_count(), delta_cpu, cputime_to_scaled(delta_cpu));
>  }
>  
> @@ -723,7 +727,12 @@ void vtime_account_user(struct task_struct *tsk)
>  	write_seqcount_begin(&tsk->vtime_seqcount);
>  	tsk->vtime_snap_whence = VTIME_SYS;
>  	if (vtime_delta(tsk)) {
> +		unsigned long steal_time = steal_account_process_tick();
>  		delta_cpu = get_vtime_delta(tsk);


afaik steal_account_process_tick() returns jiffies and get_vtime_delta() cputime, so can't mix them like this : ?

> +
> +		if (steal_time >= delta_cpu)
> +			return;



> +		delta_cpu -= steal_time;
>  		account_user_time(tsk, delta_cpu, cputime_to_scaled(delta_cpu));
>  	}
>  	write_seqcount_end(&tsk->vtime_seqcount);
> 


--Mika

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v2] sched/cputime: add steal time support to full dynticks CPU time accounting Wanpeng Li <kernellwp@gmail.com> - 2016-05-18 10:30 +0200
  Re: [PATCH v2] sched/cputime: add steal time support to full dynticks  CPU time accounting Mika Penttilä <mika.penttila@nextfour.com> - 2016-05-18 12:10 +0200
    Re: [PATCH v2] sched/cputime: add steal time support to full dynticks  CPU time accounting Wanpeng Li <kernellwp@gmail.com> - 2016-05-18 12:10 +0200

csiph-web