<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/arm64/kvm/reset.c, branch master</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=master</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2025-05-19T06:59:46Z</updated>
<entry>
<title>KVM: arm64: nv: Add pseudo-TLB backing VNCR_EL2</title>
<updated>2025-05-19T06:59:46Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2025-05-14T10:34:50Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ea8d3cf46d57bc1e131ca66ebc3e9aabe40234ef'/>
<id>urn:sha1:ea8d3cf46d57bc1e131ca66ebc3e9aabe40234ef</id>
<content type='text'>
FEAT_NV2 introduces an interesting problem for NV, as VNCR_EL2.BADDR
is a virtual address in the EL2&amp;0 (or EL2, but we thankfully ignore
this) translation regime.

As we need to replicate such mapping in the real EL2, it means that
we need to remember that there is such a translation, and that any
TLBI affecting EL2 can possibly affect this translation.

It also means that any invalidation driven by an MMU notifier must
be able to shoot down any such mapping.

All in all, we need a data structure that represents this mapping,
and that is extremely close to a TLB. Given that we can only use
one of those per vcpu at any given time, we only allocate one.

No effort is made to keep that structure small. If we need to
start caching multiple of them, we may want to revisit that design
point. But for now, it is kept simple so that we can reason about it.

Oh, and add a braindump of how things are supposed to work, because
I will definitely page this out at some point. Yes, pun intended.

Reviewed-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
Link: https://lore.kernel.org/r/20250514103501.2225951-8-maz@kernel.org
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: nv: Allocate VNCR page when required</title>
<updated>2025-05-19T06:59:46Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2025-05-14T10:34:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=469c4713d48028186e4bbf4b74ebce273af9a394'/>
<id>urn:sha1:469c4713d48028186e4bbf4b74ebce273af9a394</id>
<content type='text'>
If running a NV guest on an ARMv8.4-NV capable system, let's
allocate an additional page that will be used by the hypervisor
to fulfill system register accesses.

Reviewed-by: Ganapatrao Kulkarni &lt;gankulkarni@os.amperecomputing.com&gt;
Reviewed-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
Link: https://lore.kernel.org/r/20250514103501.2225951-3-maz@kernel.org
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: PMU: Reload when resetting</title>
<updated>2025-03-17T17:45:25Z</updated>
<author>
<name>Akihiko Odaki</name>
</author>
<published>2025-03-15T09:12:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fe53538069bb4f625bc8734103ba044a83138fea'/>
<id>urn:sha1:fe53538069bb4f625bc8734103ba044a83138fea</id>
<content type='text'>
Replace kvm_pmu_vcpu_reset() with the generic PMU reloading mechanism to
ensure the consistency with system registers and to reduce code size.

Signed-off-by: Akihiko Odaki &lt;akihiko.odaki@daynix.com&gt;
Reviewed-by: Marc Zyngier &lt;maz@kernel.org&gt;
Link: https://lore.kernel.org/r/20250315-pmc-v5-5-ecee87dab216@daynix.com
Signed-off-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Convert the SVE guest vcpu flag to a vm flag</title>
<updated>2024-12-20T13:54:09Z</updated>
<author>
<name>Fuad Tabba</name>
</author>
<published>2024-12-16T10:50:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=41d6028e28bd474298ff10409c292ec46cf43a90'/>
<id>urn:sha1:41d6028e28bd474298ff10409c292ec46cf43a90</id>
<content type='text'>
The vcpu flag GUEST_HAS_SVE is per-vcpu, but it is based on what
is now a per-vm feature. Make the flag per-vm.

Signed-off-by: Fuad Tabba &lt;tabba@google.com&gt;
Link: https://lore.kernel.org/r/20241216105057.579031-17-tabba@google.com
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Remove PtrAuth guest vcpu flag</title>
<updated>2024-12-20T13:54:06Z</updated>
<author>
<name>Fuad Tabba</name>
</author>
<published>2024-12-16T10:50:55Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c5c1763596660fcd77a1190b3bd78bbe24bcfd6a'/>
<id>urn:sha1:c5c1763596660fcd77a1190b3bd78bbe24bcfd6a</id>
<content type='text'>
The vcpu flag GUEST_HAS_PTRAUTH is always associated with the
vcpu PtrAuth features, which are defined per vm rather than per
vcpu.

Remove the flag, and replace it with checks for the features
instead.

Signed-off-by: Fuad Tabba &lt;tabba@google.com&gt;
Link: https://lore.kernel.org/r/20241216105057.579031-16-tabba@google.com
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Refactor kvm_vcpu_enable_ptrauth() for hyp use</title>
<updated>2024-10-31T18:45:24Z</updated>
<author>
<name>Fuad Tabba</name>
</author>
<published>2024-10-18T07:48:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=3663b258f7231c7f3888c96e5c1eee33547873a6'/>
<id>urn:sha1:3663b258f7231c7f3888c96e5c1eee33547873a6</id>
<content type='text'>
Move kvm_vcpu_enable_ptrauth() to a shared header to be used by
hypervisor code in protected mode.

No functional change intended.

Signed-off-by: Fuad Tabba &lt;tabba@google.com&gt;
Link: https://lore.kernel.org/r/20241018074833.2563674-3-tabba@google.com
Signed-off-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: nv: Support multiple nested Stage-2 mmu structures</title>
<updated>2024-06-19T08:13:49Z</updated>
<author>
<name>Marc Zyngier</name>
</author>
<published>2024-06-14T14:45:37Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4f128f8e1aaac189f83d0f828bcdb2986d8d2e51'/>
<id>urn:sha1:4f128f8e1aaac189f83d0f828bcdb2986d8d2e51</id>
<content type='text'>
Add Stage-2 mmu data structures for virtual EL2 and for nested guests.
We don't yet populate shadow Stage-2 page tables, but we now have a
framework for getting to a shadow Stage-2 pgd.

We allocate twice the number of vcpus as Stage-2 mmu structures because
that's sufficient for each vcpu running two translation regimes without
having to flush the Stage-2 page tables.

Co-developed-by: Christoffer Dall &lt;christoffer.dall@arm.com&gt;
Signed-off-by: Christoffer Dall &lt;christoffer.dall@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
Link: https://lore.kernel.org/r/20240614144552.2773592-2-maz@kernel.org
Signed-off-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Allocate memory mapped at hyp for host sve state in pKVM</title>
<updated>2024-06-04T14:06:33Z</updated>
<author>
<name>Fuad Tabba</name>
</author>
<published>2024-06-03T12:28:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=66d5b53e20a6e00b7ce3b652a3e2db967f7b33d0'/>
<id>urn:sha1:66d5b53e20a6e00b7ce3b652a3e2db967f7b33d0</id>
<content type='text'>
Protected mode needs to maintain (save/restore) the host's sve
state, rather than relying on the host kernel to do that. This is
to avoid leaking information to the host about guests and the
type of operations they are performing.

As a first step towards that, allocate memory mapped at hyp, per
cpu, for the host sve state. The following patch will use this
memory to save/restore the host state.

Reviewed-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
Signed-off-by: Fuad Tabba &lt;tabba@google.com&gt;
Link: https://lore.kernel.org/r/20240603122852.3923848-6-tabba@google.com
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Do not map the host fpsimd state to hyp in pKVM</title>
<updated>2024-05-01T15:48:14Z</updated>
<author>
<name>Fuad Tabba</name>
</author>
<published>2024-04-23T15:05:19Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d48965bc47e40b06034315260b18368d6ad152b4'/>
<id>urn:sha1:d48965bc47e40b06034315260b18368d6ad152b4</id>
<content type='text'>
pKVM maintains its own state at EL2 for tracking the host fpsimd
state. Therefore, no need to map and share the host's view with
it.

Signed-off-by: Fuad Tabba &lt;tabba@google.com&gt;
Reviewed-by: Mark Brown &lt;broonie@kernel.org&gt;
Acked-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
Link: https://lore.kernel.org/r/20240423150538.2103045-12-tabba@google.com
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
</content>
</entry>
<entry>
<title>KVM: arm64: Allow guests with &gt;48-bit IPA size on FEAT_LPA2 systems</title>
<updated>2023-11-27T15:03:50Z</updated>
<author>
<name>Ryan Roberts</name>
</author>
<published>2023-11-27T11:17:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d782ac5b2ceebee5d374e13e990655d1a140d3a6'/>
<id>urn:sha1:d782ac5b2ceebee5d374e13e990655d1a140d3a6</id>
<content type='text'>
With all the page-table infrastructure in place, we can finally increase
the maximum permisable IPA size to 52-bits on 4KB and 16KB page systems
that have FEAT_LPA2.

Reviewed-by: Oliver Upton &lt;oliver.upton@linux.dev&gt;
Signed-off-by: Ryan Roberts &lt;ryan.roberts@arm.com&gt;
Signed-off-by: Marc Zyngier &lt;maz@kernel.org&gt;
Link: https://lore.kernel.org/r/20231127111737.1897081-11-ryan.roberts@arm.com
</content>
</entry>
</feed>
