All of lore.kernel.org
 help / color / mirror / Atom feed
From: cov@codeaurora.org (Christopher Covington)
To: linux-arm-kernel@lists.infradead.org
Subject: [Xen-devel] [PATCH 1/3] arm_arch_timer: introduce arch_timer_stolen_ticks
Date: Mon, 06 May 2013 10:55:39 -0400	[thread overview]
Message-ID: <5187C46B.5070309@codeaurora.org> (raw)
In-Reply-To: <alpine.DEB.2.02.1305051745390.4756@kaball.uk.xensource.com>

On 05/05/2013 12:47 PM, Stefano Stabellini wrote:
> On Fri, 3 May 2013, Marc Zyngier wrote:
>> On 03/05/13 11:43, Stefano Stabellini wrote:
>>> On Thu, 2 May 2013, Christopher Covington wrote:
>>>>> So the virtual timer should appear to have been running even while time
>>>>> is being stolen and therefore stolen time needs to be accounted via some
>>>>> other means.
>>>>
>>>> Something that's not currently obvious to me is that given that the stolen
>>>> cycle accounting should be done, what makes the architected timer interrupt
>>>> handler the ideal place to do it?
>>>
>>> That is a good question and I would appreciate suggestions to improve
>>> the patch.
>>>
>>> Given that Xen x86 and ia64 does stolen time accounting from the timer
>>> interrupt handler:
>>>
>>> arch/x86/xen/time.c:xen_timer_interrupt
>>> arch/ia64/kernel/time.c:timer_interrupt
>>>
>>> and given that the arch_timer is the only timer used by Xen on ARM and
>>> that it includes a virt_timer that is made on purpose to be used by
>>> virtual machines, I thought that it might be a good place for it.
>>>
>>> I also thought that doing it this way, KVM should be able to reuse the
>>> same hook.
>>
>> Indeed. I just need to understand how time stealing works there ;-).
>>
>> Now, KVM is not necessarily limited to arch_timers, and we've run KVM
>> using a QEMU-provided timer in the past. Can you think of a more generic
>> location for this hook? Possibly something that would satisfy the
>> requirements of other architectures while we're at it?
> 
> Probably the best option would be to reuse
> 
> kernel/sched/cputime.c:steal_account_process_tick
> 
> but that also means introducing CONFIG_PARAVIRT on arm.
> I am up for that, what do you think?

That sounds like a good move to me.

Christopher

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by the Linux Foundation.

WARNING: multiple messages have this Message-ID (diff)
From: Christopher Covington <cov@codeaurora.org>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	"linux@arm.linux.org.uk" <linux@arm.linux.org.uk>,
	Ian Campbell <Ian.Campbell@citrix.com>,
	Arnd Bergmann <arnd@arndb.de>,
	"konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	Will Deacon <Will.Deacon@arm.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"john.stultz@linaro.org" <john.stultz@linaro.org>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>
Subject: Re: [Xen-devel] [PATCH 1/3] arm_arch_timer: introduce arch_timer_stolen_ticks
Date: Mon, 06 May 2013 10:55:39 -0400	[thread overview]
Message-ID: <5187C46B.5070309@codeaurora.org> (raw)
In-Reply-To: <alpine.DEB.2.02.1305051745390.4756@kaball.uk.xensource.com>

On 05/05/2013 12:47 PM, Stefano Stabellini wrote:
> On Fri, 3 May 2013, Marc Zyngier wrote:
>> On 03/05/13 11:43, Stefano Stabellini wrote:
>>> On Thu, 2 May 2013, Christopher Covington wrote:
>>>>> So the virtual timer should appear to have been running even while time
>>>>> is being stolen and therefore stolen time needs to be accounted via some
>>>>> other means.
>>>>
>>>> Something that's not currently obvious to me is that given that the stolen
>>>> cycle accounting should be done, what makes the architected timer interrupt
>>>> handler the ideal place to do it?
>>>
>>> That is a good question and I would appreciate suggestions to improve
>>> the patch.
>>>
>>> Given that Xen x86 and ia64 does stolen time accounting from the timer
>>> interrupt handler:
>>>
>>> arch/x86/xen/time.c:xen_timer_interrupt
>>> arch/ia64/kernel/time.c:timer_interrupt
>>>
>>> and given that the arch_timer is the only timer used by Xen on ARM and
>>> that it includes a virt_timer that is made on purpose to be used by
>>> virtual machines, I thought that it might be a good place for it.
>>>
>>> I also thought that doing it this way, KVM should be able to reuse the
>>> same hook.
>>
>> Indeed. I just need to understand how time stealing works there ;-).
>>
>> Now, KVM is not necessarily limited to arch_timers, and we've run KVM
>> using a QEMU-provided timer in the past. Can you think of a more generic
>> location for this hook? Possibly something that would satisfy the
>> requirements of other architectures while we're at it?
> 
> Probably the best option would be to reuse
> 
> kernel/sched/cputime.c:steal_account_process_tick
> 
> but that also means introducing CONFIG_PARAVIRT on arm.
> I am up for that, what do you think?

That sounds like a good move to me.

Christopher

-- 
Employee of Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by the Linux Foundation.

  reply	other threads:[~2013-05-06 14:55 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-01 19:27 [PATCH 0/3] xen/arm: account for stolen ticks Stefano Stabellini
2013-05-01 19:27 ` Stefano Stabellini
2013-05-01 19:27 ` Stefano Stabellini
2013-05-01 19:27 ` [PATCH 1/3] arm_arch_timer: introduce arch_timer_stolen_ticks Stefano Stabellini
2013-05-01 19:27   ` Stefano Stabellini
2013-05-01 19:27   ` Stefano Stabellini
2013-05-01 20:36   ` Christopher Covington
2013-05-01 20:36     ` Christopher Covington
2013-05-02  8:19     ` [Xen-devel] " Ian Campbell
2013-05-02  8:19       ` Ian Campbell
2013-05-02 21:33       ` Christopher Covington
2013-05-02 21:33         ` Christopher Covington
2013-05-03 10:43         ` Stefano Stabellini
2013-05-03 10:43           ` Stefano Stabellini
2013-05-03 10:54           ` Marc Zyngier
2013-05-03 10:54             ` Marc Zyngier
2013-05-05 16:47             ` Stefano Stabellini
2013-05-05 16:47               ` Stefano Stabellini
2013-05-06 14:55               ` Christopher Covington [this message]
2013-05-06 14:55                 ` Christopher Covington
2013-05-06 14:35         ` Konrad Rzeszutek Wilk
2013-05-06 14:35           ` Konrad Rzeszutek Wilk
2013-05-07 16:17           ` Christopher Covington
2013-05-07 16:17             ` Christopher Covington
2013-05-08 11:19             ` Stefano Stabellini
2013-05-08 11:19               ` Stefano Stabellini
2013-05-08 11:48               ` Christopher Covington
2013-05-08 11:48                 ` Christopher Covington
2013-05-01 19:27 ` [PATCH 2/3] xen: move do_stolen_accounting to drivers/xen/time.c Stefano Stabellini
2013-05-01 19:27   ` Stefano Stabellini
2013-05-01 19:27   ` Stefano Stabellini
2013-05-02  8:19   ` [Xen-devel] " Ian Campbell
2013-05-02  8:19     ` Ian Campbell
2013-05-02 18:49   ` Christopher Covington
2013-05-02 18:49     ` Christopher Covington
2013-05-03  8:26     ` [Xen-devel] " Ian Campbell
2013-05-03  8:26       ` Ian Campbell
2013-05-03 10:29       ` Stefano Stabellini
2013-05-03 10:29         ` Stefano Stabellini
2013-05-01 19:27 ` [PATCH 3/3] xen/arm: account for stolen ticks Stefano Stabellini
2013-05-01 19:27   ` Stefano Stabellini
2013-05-01 19:27   ` Stefano Stabellini
2013-05-02  8:21   ` [Xen-devel] " Ian Campbell
2013-05-02  8:21     ` Ian Campbell
2013-05-02 10:38     ` Stefano Stabellini
2013-05-02 10:38       ` Stefano Stabellini
2013-05-02 10:48       ` Ian Campbell
2013-05-02 10:48         ` Ian Campbell
2013-05-02 10:54         ` Stefano Stabellini
2013-05-02 10:54           ` Stefano Stabellini
2013-05-02 11:02           ` Ian Campbell
2013-05-02 11:02             ` Ian Campbell
2013-05-02 11:04             ` Stefano Stabellini
2013-05-02 11:04               ` Stefano Stabellini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5187C46B.5070309@codeaurora.org \
    --to=cov@codeaurora.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.