History log of /kvm-unit-tests/lib/arm/asm/pgtable.h (Results 1 – 15 of 15)
Revision Date Author Comments
# 201b9e8b 03-Jul-2024 Andrew Jones <andrew.jones@linux.dev>

Merge branch 'arm/queue' into 'master'

arm/arm64: LPA2 support and fpu/sve s/r test

See merge request kvm-unit-tests/kvm-unit-tests!61


# e521b107 12-Apr-2024 Suzuki K Poulose <suzuki.poulose@arm.com>

arm: Add necessary header files in asm/pgtable.h

We use memalign() and other symbols defined elsewhere without explicitly including
them, which could cause build failures. Add the necessary header f

arm: Add necessary header files in asm/pgtable.h

We use memalign() and other symbols defined elsewhere without explicitly including
them, which could cause build failures. Add the necessary header files.

Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Signed-off-by: Andrew Jones <andrew.jones@linux.dev>

show more ...


# 1a00120a 11-Nov-2020 Andrew Jones <drjones@redhat.com>

Merge branch 'arm-pull-11-11-2020' into 'master'

Arm pull 11.11.2020

See merge request kvm-unit-tests/kvm-unit-tests!2


# a2d06852 04-Nov-2020 Nikos Nikoleris <nikos.nikoleris@arm.com>

arm64: Add support for configuring the translation granule

Make the translation granule configurable for arm64. arm64 supports
page sizes of 4K, 16K and 64K. By default, arm64 is configured with
64K

arm64: Add support for configuring the translation granule

Make the translation granule configurable for arm64. arm64 supports
page sizes of 4K, 16K and 64K. By default, arm64 is configured with
64K pages. configure has been extended with a new argument:

--page-size=PAGE_SIZE

which allows the user to set the page shift and therefore the page
size for arm64. Using the --page-size for any other architecture
results an error message.

In addition, bump the VA size from 42 to 48 bits. To enable 48 bit
VAs for all translation granules, add support for 4-level and 3-level
page tables. At compile time, we determine how many levels in the page
tables we needed.

Reviewed-by: Andrew Jones <drjones@redhat.com>
Reviewed-by: Alexandru Elisei <alexandru.elisei@arm.com>
Tested-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Nikos Nikoleris <nikos.nikoleris@arm.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>

show more ...


# 3c13c642 08-Jan-2020 Paolo Bonzini <pbonzini@redhat.com>

Merge branch 'arm/queue' of https://github.com/rhdrjones/kvm-unit-tests into HEAD


# 02f1cdc8 31-Dec-2019 Alexandru Elisei <alexandru.elisei@arm.com>

lib: arm/arm64: Teach mmu_clear_user about block mappings

kvm-unit-tests uses block mappings, so let's expand the mmu_clear_user
function to handle those as well.

Now that the function knows about

lib: arm/arm64: Teach mmu_clear_user about block mappings

kvm-unit-tests uses block mappings, so let's expand the mmu_clear_user
function to handle those as well.

Now that the function knows about block mappings, we cannot simply
assume that if an address isn't mapped we can map it as a regular page.
Change the semantics of the function to fail quite loudly if the address
isn't mapped, and shift the burden on the caller to map the address as a
page or block mapping before calling mmu_clear_user.

Also make mmu_clear_user more flexible by adding a pgtable parameter,
instead of assuming that the change always applies to the current
translation tables.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>

show more ...


# 7510bc97 31-Dec-2019 Alexandru Elisei <alexandru.elisei@arm.com>

lib: arm/arm64: Add missing include for alloc_page.h in pgtable.h

pgtable.h is used only by mmu.c, where it is included after alloc_page.h.

Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off

lib: arm/arm64: Add missing include for alloc_page.h in pgtable.h

pgtable.h is used only by mmu.c, where it is included after alloc_page.h.

Reviewed-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>

show more ...


# 70cea146 31-Dec-2019 Alexandru Elisei <alexandru.elisei@arm.com>

lib: arm/arm64: Use WRITE_ONCE to update the translation tables

Use WRITE_ONCE to prevent store tearing when updating an entry in the
translation tables. Without WRITE_ONCE, the compiler, even thoug

lib: arm/arm64: Use WRITE_ONCE to update the translation tables

Use WRITE_ONCE to prevent store tearing when updating an entry in the
translation tables. Without WRITE_ONCE, the compiler, even though it is
unlikely, can emit several stores when changing the table, and we might
end up with bogus TLB entries.

It's worth noting that the existing code is mostly fine without any
changes because the translation tables are updated in one of the
following situations:

- When the tables are being created with the MMU off, which means no TLB
caching is being performed.

- When new page table entries are added as a result of vmalloc'ing a
stack for a secondary CPU, which doesn't happen very often.

- When clearing the PTE_USER bit for the cache test, and store tearing
has no effect on the table walker because there are no intermediate
values between bit values 0 and 1. We still use WRITE_ONCE in this case
for consistency.

However, the functions are global and there is nothing preventing someone
from writing a test that uses them in a different scenario. Let's make
sure that when that happens, there will be no breakage once in a blue
moon.

Reported-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
Reviewed-by: Andre Przywara <andre.przywara@arm.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>

show more ...


# 6ca8c283 03-May-2019 Nadav Amit <nadav.amit@gmail.com>

arm: Remove redundant page zeroing

Now that alloc_page() zeros the page, remove the redundant page zeroing.

Suggested-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Nadav Amit <nadav.amit@gma

arm: Remove redundant page zeroing

Now that alloc_page() zeros the page, remove the redundant page zeroing.

Suggested-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Nadav Amit <nadav.amit@gmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


# f02b6363 17-Jan-2018 Andrew Jones <drjones@redhat.com>

arm/arm64: fix virt_to_phys

Since switching to the vm_memalign() allocator virt_to_phys() hasn't
been returning the correct address, as it was assuming an identity map.

Signed-off-by: Andrew Jones

arm/arm64: fix virt_to_phys

Since switching to the vm_memalign() allocator virt_to_phys() hasn't
been returning the correct address, as it was assuming an identity map.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>

show more ...


# 031755db 23-Oct-2017 Paolo Bonzini <pbonzini@redhat.com>

arm: enable vmalloc

Unlike x86, ARM always enables virtual memory so it always switches
early from phys_alloc to vmalloc. The changes mostly involve using
alloc_page directly whenever physical addr

arm: enable vmalloc

Unlike x86, ARM always enables virtual memory so it always switches
early from phys_alloc to vmalloc. The changes mostly involve using
alloc_page directly whenever physical addresses are needed, and of course
implementing the architecture-dependent callbacks that vmalloc needs.

The 32-bit root page table doesn't need a full page, but it is simpler
to just allocate one. With split files for 32-bit and 64-bit, we could
just place mmu_idmap in .bss.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


# 0226e262 23-Oct-2017 Paolo Bonzini <pbonzini@redhat.com>

arm: get rid of pud

We do not need four levels of page tables in either 32-bit or 64-bit
ARM, so remove the useless indirection.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>


# c2a95639 23-Oct-2017 Paolo Bonzini <pbonzini@redhat.com>

arm: make pgtable.h private to mmu.c

The pgd/pmd/pud definitions are not needed outside the architecture-
dependent MMU functions. In fact, it probably would be simpler to
have completely different

arm: make pgtable.h private to mmu.c

The pgd/pmd/pud definitions are not needed outside the architecture-
dependent MMU functions. In fact, it probably would be simpler to
have completely different files for 32-bit and 64-bit ARM. However,
as a first and possibly less controversial step, hide them inside
that file.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...


# 49f758b8 29-May-2017 Andrew Jones <drjones@redhat.com>

arm/arm64: code derived from Linux must be GPL not LGPL

Also update copyrights.

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>
[Amend two other "Adapat

arm/arm64: code derived from Linux must be GPL not LGPL

Also update copyrights.

Reported-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Andrew Jones <drjones@redhat.com>
[Amend two other "Adapated" typos as well.]
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>

show more ...


# a796123f 10-Dec-2014 Andrew Jones <drjones@redhat.com>

arm: import more linux page table api

To use page level descriptors we need some pgd/pud/pmd/pte
methods, and a few more flags defined.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Signed-off-b

arm: import more linux page table api

To use page level descriptors we need some pgd/pud/pmd/pte
methods, and a few more flags defined.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>

show more ...