From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1162181AbcFHTFG (ORCPT ); Wed, 8 Jun 2016 15:05:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52096 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161583AbcFHTFF (ORCPT ); Wed, 8 Jun 2016 15:05:05 -0400 Message-ID: <1465412700.4639.10.camel@redhat.com> Subject: Re: [PATCH v5 3/3] sched/cputime: Add steal time support to full dynticks CPU time accounting From: Rik van Riel To: Wanpeng Li , linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Wanpeng Li , Ingo Molnar , "Peter Zijlstra (Intel)" , Thomas Gleixner , Frederic Weisbecker , Paolo Bonzini , Radim =?UTF-8?Q?Kr=C4=8Dm=C3=A1=C5=99?= Date: Wed, 08 Jun 2016 15:05:00 -0400 In-Reply-To: <1465355110-21714-3-git-send-email-wanpeng.li@hotmail.com> References: <1465355110-21714-1-git-send-email-wanpeng.li@hotmail.com> <1465355110-21714-3-git-send-email-wanpeng.li@hotmail.com> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-OhOcRbL2/sBouw5ZJZBz" Mime-Version: 1.0 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Wed, 08 Jun 2016 19:05:02 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-OhOcRbL2/sBouw5ZJZBz Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, 2016-06-08 at 11:05 +0800, Wanpeng Li wrote: >=C2=A0 > @@ -681,12 +681,17 @@ static cputime_t vtime_delta(struct task_struct > *tsk) > =C2=A0static cputime_t get_vtime_delta(struct task_struct *tsk) > =C2=A0{ > =C2=A0 unsigned long now =3D READ_ONCE(jiffies); > - unsigned long delta =3D now - tsk->vtime_snap; > + cputime_t delta_time, steal_time; > =C2=A0 > + steal_time =3D > jiffies_to_cputime(steal_account_process_tick()); > + delta_time =3D jiffies_to_cputime(now - tsk->vtime_snap); > =C2=A0 WARN_ON_ONCE(tsk->vtime_snap_whence =3D=3D VTIME_INACTIVE); > =C2=A0 tsk->vtime_snap =3D now; > =C2=A0 > - return jiffies_to_cputime(delta); > + if (steal_time < delta_time) > + delta_time -=3D steal_time; > + > + return delta_time; > =C2=A0} This isn't right. If steal_time is equal to or larger than delta_time, get_vtime_delta needs to return 0, not delta_time. Otherwise the same time will be counted twice. --=20 All rights reversed --=-OhOcRbL2/sBouw5ZJZBz Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQEcBAABCAAGBQJXWGxcAAoJEM553pKExN6DshUH+gJVLEYlCr4aLcCeZEHuUl2B s8ypEXOSoKN9aOWSSV22PZu7CamSt6zkg/h+rA94TrL6/fkCEkDFZEAd63HQQ9TZ gZAZB2lQOEODKZmF+QJZsOO/ojl79mdN5PGfBEC9qTWtcWJcTJt0k+RdRoH8o4X+ 7M5kKjMpYmDtdhTbpuj2ujxOIj6vHszRzsKX1KJ0rfD8chBnHHbxwggIBqeQvCfy QgSOJL834nerxIDQEoX+ogRWhChgcx1vpOO2ke58GOCBZxeaT1PNHG9DRtKWFGaR xZpur27/8pAyBXUbpIIp2OxhK7/jbelbTM1FajMmFF5nO4rzpmJgXRB9sOHpFsQ= =Kj85 -----END PGP SIGNATURE----- --=-OhOcRbL2/sBouw5ZJZBz--