From: Mark Rutland <mark.rutland@arm.com>
To: Punit Agrawal <punit.agrawal@arm.com>
Cc: kvm@vger.kernel.org, Marc Zyngier <marc.zyngier@arm.com>,
Will Deacon <will.deacon@arm.com>,
linux-kernel@vger.kernel.org,
Steven Rostedt <rostedt@goodmis.org>,
Peter Zijlstra <peterz@infradead.org>,
kvmarm@lists.cs.columbia.edu,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3 6/9] kvm: arm/arm64: Add host pmu to support VM introspection
Date: Wed, 18 Jan 2017 18:05:46 +0000 [thread overview]
Message-ID: <20170118180546.GN3231@leverpostej> (raw)
In-Reply-To: <877f5smjg1.fsf@e105922-lin.cambridge.arm.com>
On Wed, Jan 18, 2017 at 04:17:18PM +0000, Punit Agrawal wrote:
> Mark Rutland <mark.rutland@arm.com> writes:
>
> > On Wed, Jan 18, 2017 at 02:51:31PM +0000, Punit Agrawal wrote:
> >> I should've clarified in my reply that I wasn't looking to support the
> >> third instance from Mark's examples above - "monitor all vCPUs on a
> >> pCPU". I think it'll be quite expensive to figure out which threads from
> >> a given pool are vCPUs.
> >
> > I'm not sure I follow why you would need to do that?
> >
> > In that case, we'd open a CPU-bound perf event for the pCPU, which would
> > get installed in the CPU context immediately. It would be present for
> > all tasks.
> >
> > Given it's present for all tasks, we don't need to figure out which
> > happen to have vCPUs. The !vCPU tasks simply shouldn't trigger events.
> >
> > Am I missing something?
>
> When enabling a CPU-bound event for pCPU, we'd have to enable trapping
> of TLB operations for the vCPUs running on pCPU. Have a look at Patch
> 7/9.
>
> Also, we'd have to enable/disable trapping when tasks are migrated
> between pCPUs.
Ah, so we can't configure the trap and leave it active, since it'll
affect the host.
We could have a per-cpu flag, and a hook into vcpu_run, but that's also
gnarly.
I'll have a think.
> So far I've assumed that a VM pid is immutable. If that doesn't hold
> then we need to think of another mechanism to refer to a VM from
> userspace.
Even if we can't migrate the VM between processes (i.e. it's immutable),
it's still not unique within a process, so I'm fairly sure we need
another mechanism (even if we get away with the common case today).
Thanks,
Mark.
WARNING: multiple messages have this Message-ID (diff)
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 6/9] kvm: arm/arm64: Add host pmu to support VM introspection
Date: Wed, 18 Jan 2017 18:05:46 +0000 [thread overview]
Message-ID: <20170118180546.GN3231@leverpostej> (raw)
In-Reply-To: <877f5smjg1.fsf@e105922-lin.cambridge.arm.com>
On Wed, Jan 18, 2017 at 04:17:18PM +0000, Punit Agrawal wrote:
> Mark Rutland <mark.rutland@arm.com> writes:
>
> > On Wed, Jan 18, 2017 at 02:51:31PM +0000, Punit Agrawal wrote:
> >> I should've clarified in my reply that I wasn't looking to support the
> >> third instance from Mark's examples above - "monitor all vCPUs on a
> >> pCPU". I think it'll be quite expensive to figure out which threads from
> >> a given pool are vCPUs.
> >
> > I'm not sure I follow why you would need to do that?
> >
> > In that case, we'd open a CPU-bound perf event for the pCPU, which would
> > get installed in the CPU context immediately. It would be present for
> > all tasks.
> >
> > Given it's present for all tasks, we don't need to figure out which
> > happen to have vCPUs. The !vCPU tasks simply shouldn't trigger events.
> >
> > Am I missing something?
>
> When enabling a CPU-bound event for pCPU, we'd have to enable trapping
> of TLB operations for the vCPUs running on pCPU. Have a look at Patch
> 7/9.
>
> Also, we'd have to enable/disable trapping when tasks are migrated
> between pCPUs.
Ah, so we can't configure the trap and leave it active, since it'll
affect the host.
We could have a per-cpu flag, and a hook into vcpu_run, but that's also
gnarly.
I'll have a think.
> So far I've assumed that a VM pid is immutable. If that doesn't hold
> then we need to think of another mechanism to refer to a VM from
> userspace.
Even if we can't migrate the VM between processes (i.e. it's immutable),
it's still not unique within a process, so I'm fairly sure we need
another mechanism (even if we get away with the common case today).
Thanks,
Mark.
next prev parent reply other threads:[~2017-01-18 18:05 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-10 11:38 [PATCH v3 0/9] Add support for monitoring guest TLB operations Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 1/9] arm64/kvm: hyp: tlb: use __tlbi() helper Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 2/9] KVM: Track the pid of the VM process Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 3/9] KVM: Add event to trace tlb invalidations Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 4/9] arm: KVM: Handle trappable TLB instructions Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 5/9] arm64: " Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 6/9] kvm: arm/arm64: Add host pmu to support VM introspection Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-18 11:21 ` Marc Zyngier
2017-01-18 11:21 ` Marc Zyngier
2017-01-18 11:21 ` Marc Zyngier
2017-01-18 11:35 ` Mark Rutland
2017-01-18 11:35 ` Mark Rutland
2017-01-18 11:35 ` Mark Rutland
2017-01-18 13:01 ` Punit Agrawal
2017-01-18 13:01 ` Punit Agrawal
2017-01-18 13:01 ` Punit Agrawal
2017-01-18 13:18 ` Marc Zyngier
2017-01-18 13:18 ` Marc Zyngier
2017-01-18 14:51 ` Punit Agrawal
2017-01-18 14:51 ` Punit Agrawal
2017-01-18 14:51 ` Punit Agrawal
2017-01-18 15:17 ` Mark Rutland
2017-01-18 15:17 ` Mark Rutland
2017-01-18 15:17 ` Mark Rutland
2017-01-18 16:17 ` Punit Agrawal
2017-01-18 16:17 ` Punit Agrawal
2017-01-18 18:05 ` Mark Rutland [this message]
2017-01-18 18:05 ` Mark Rutland
2017-01-19 16:42 ` Christoffer Dall
2017-01-19 16:42 ` Christoffer Dall
2017-01-23 11:21 ` Punit Agrawal
2017-01-23 11:21 ` Punit Agrawal
2017-01-23 11:21 ` Punit Agrawal
2017-01-18 13:45 ` Will Deacon
2017-01-18 13:45 ` Will Deacon
2017-01-18 13:45 ` Will Deacon
2017-01-18 14:58 ` Punit Agrawal
2017-01-18 14:58 ` Punit Agrawal
2017-01-18 13:06 ` Punit Agrawal
2017-01-18 13:06 ` Punit Agrawal
2017-01-18 13:06 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 7/9] kvm: host_pmu: Add support for tracking guest TLB operations Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 8/9] arm: KVM: Enable support for host pmu Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` [PATCH v3 9/9] arm64: KVM: Enable support for the " Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
2017-01-10 11:38 ` Punit Agrawal
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=20170118180546.GN3231@leverpostej \
--to=mark.rutland@arm.com \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=peterz@infradead.org \
--cc=punit.agrawal@arm.com \
--cc=rostedt@goodmis.org \
--cc=will.deacon@arm.com \
/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.