All of lore.kernel.org
 help / color / mirror / Atom feed
From: Catalin Marinas <catalin.marinas@arm.com>
To: Ryan Roberts <ryan.roberts@arm.com>
Cc: Ard Biesheuvel <ardb@google.com>,
	linux-arm-kernel@lists.infradead.org,
	Ard Biesheuvel <ardb@kernel.org>, Will Deacon <will@kernel.org>,
	Marc Zyngier <maz@kernel.org>,
	Mark Rutland <mark.rutland@arm.com>,
	Anshuman Khandual <anshuman.khandual@arm.com>,
	Kees Cook <keescook@chromium.org>,
	Joey Gouly <joey.gouly@arm.com>,
	Oliver Upton <oliver.upton@linux.dev>
Subject: Re: [PATCH v4 00/61] arm64: Add support for LPA2 at stage1 and WXN
Date: Thu, 26 Oct 2023 14:52:59 +0100	[thread overview]
Message-ID: <ZTpvOx7fbJkZPlA2@arm.com> (raw)
In-Reply-To: <5651bb31-9ef6-4dfc-b146-64606279bbf7@arm.com>

On Thu, Oct 26, 2023 at 02:21:26PM +0100, Ryan Roberts wrote:
> On 12/09/2023 15:15, Ard Biesheuvel wrote:
> > From: Ard Biesheuvel <ardb@kernel.org>
> > 
> > This is a followup to [0], which was sent out more than 6 months ago.
> > Thanks to Ryan and Mark for feedback and review. This series is
> > independent from Ryan's work on adding support for LPA2 to KVM - the
> > only potential source of conflict should be the patch "arm64: kvm: Limit
> > HYP VA and host S2 range to 48 bits when LPA2 is in effect", which could
> > simply be dropped in favour of the KVM changes to make it support LPA2.
> > 
> > Changes since v3:
> > - add some acks and incorporate some minor suggested tweaks, mostly
> >   related to coding style and comments
> > - rebase onto v6.6-rc1
> > - add patch to deal with references to PTE_MAYBE_NG from asm code
> > - add patch to move dummy 'nokaslr' parsing routine out of
> >   idreg-override.c
> > - rework ptdump address marker array population
> > 
> > NOTE: this series still does not address the TLBI changes needed for
> > LPA2 and 5 level paging. Ryan seems to have a good handle on those, and
> > this work is complementary with his KVM work to a fair extent anyway.
> 
> As per the above note, I think this series would be broken on a system that
> supports both LPA2 and TLB_RANGE. The issue is that the BADDR field is specified
> in 64K units when LPA2 is enabled, but in PAGE_SIZE units when LPA2 is disabled.
> I think this patch set will continue to set BADDR in PAGE_SIZE units when LPA2
> is enabled, causing the HW to invalidate the wrong range?
> 
> My patch at [1] solves this. I'm currently doing some benchmarking refactoring
> the patches into a differnet shape as requested by Mark.
> 
> Anyway, I wonder if this is a blocker for merging this series?
> 
> [1] https://lore.kernel.org/kvmarm/20231009185008.3803879-3-ryan.roberts@arm.com/

Thanks Ryan. I missed this part. While I could add your patch on top, we
are debugging some CI reports, so there's a good chance that I'll drop
the whole branch later today.

I was hoping I can keep part of the series but it probably makes more
sense to merge the first 15-20 patches after -rc1 (no new feature added)
and keep them in next for a while. We don't have time before the merging
window to test what other CIs report (and we haven't managed to
reproduce the errors either).

-- 
Catalin

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2023-10-26 13:53 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-12 14:15 [PATCH v4 00/61] arm64: Add support for LPA2 at stage1 and WXN Ard Biesheuvel
2023-09-12 14:15 ` [PATCH v4 01/61] arm64: kernel: Disable latent_entropy GCC plugin in early C runtime Ard Biesheuvel
2023-09-12 14:15 ` [PATCH v4 02/61] arm64: mm: Take potential load offset into account when KASLR is off Ard Biesheuvel
2023-09-20  7:15   ` Linus Walleij
2023-09-12 14:15 ` [PATCH v4 03/61] arm64: mm: get rid of kimage_vaddr global variable Ard Biesheuvel
2023-09-12 14:15 ` [PATCH v4 04/61] arm64: mm: Move PCI I/O emulation region above the vmemmap region Ard Biesheuvel
2023-09-12 14:15 ` [PATCH v4 05/61] arm64: mm: Move fixmap region above " Ard Biesheuvel
2023-09-12 14:15 ` [PATCH v4 06/61] arm64: ptdump: Allow all region boundaries to be defined at boot time Ard Biesheuvel
2023-09-12 14:15 ` [PATCH v4 07/61] arm64: ptdump: Discover start of vmemmap region at runtime Ard Biesheuvel
2023-09-12 14:15 ` [PATCH v4 08/61] arm64: vmemmap: Avoid base2 order of struct page size to dimension region Ard Biesheuvel
2023-09-12 14:15 ` [PATCH v4 09/61] arm64: mm: Reclaim unused vmemmap region for vmalloc use Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 10/61] arm64: kaslr: Adjust randomization range dynamically Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 11/61] arm64: kernel: Manage absolute relocations in code built under pi/ Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 12/61] arm64: kernel: Don't rely on objcopy to make code under pi/ __init Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 13/61] arm64: head: move relocation handling to C code Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 14/61] arm64: idreg-override: Omit non-NULL checks for override pointer Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 15/61] arm64: idreg-override: Prepare for place relative reloc patching Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 16/61] arm64: idreg-override: Avoid parameq() and parameqn() Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 17/61] arm64: idreg-override: avoid strlen() to check for empty strings Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 18/61] arm64: idreg-override: Avoid sprintf() for simple string concatenation Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 19/61] arm64: idreg-override: Avoid kstrtou64() to parse a single hex digit Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 20/61] arm64: idreg-override: Move to early mini C runtime Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 21/61] arm64: kernel: Remove early fdt remap code Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 22/61] arm64: head: Clear BSS and the kernel page tables in one go Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 23/61] arm64: Move feature overrides into the BSS section Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 24/61] arm64: head: Run feature override detection before mapping the kernel Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 25/61] arm64: head: move dynamic shadow call stack patching into early C runtime Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 26/61] arm64: kaslr: Use feature override instead of parsing the cmdline again Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 27/61] arm64/kernel: Move 'nokaslr' parsing out of early idreg code Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 28/61] arm64: idreg-override: Create a pseudo feature for rodata=off Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 29/61] arm64: Add helpers to probe local CPU for PAC and BTI support Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 30/61] arm64: head: allocate more pages for the kernel mapping Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 31/61] arm64: head: move memstart_offset_seed handling to C code Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 32/61] arm64: mm: Make kaslr_requires_kpti() a static inline Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 33/61] arm64: head: Move early kernel mapping routines into C code Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 34/61] arm64: mm: Use 48-bit virtual addressing for the permanent ID map Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 35/61] arm64: pgtable: Decouple PGDIR size macros from PGD/PUD/PMD levels Ard Biesheuvel
2023-10-19 16:34   ` Catalin Marinas
2023-10-24 17:58     ` Catalin Marinas
2023-10-25  6:39       ` Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 36/61] arm64: kernel: Create initial ID map from C code Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 37/61] arm64: mm: avoid fixmap for early swapper_pg_dir updates Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 38/61] arm64: mm: omit redundant remap of kernel image Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 39/61] arm64: Revert "mm: provide idmap pointer to cpu_replace_ttbr1()" Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 40/61] arm64: mmu: Make cpu_replace_ttbr1() out of line Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 41/61] arm64/mm: Add FEAT_LPA2 specific TCR_EL1.DS field Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 42/61] arm64/mm: Add FEAT_LPA2 specific ID_AA64MMFR0.TGRAN[2] Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 43/61] arm64: mm: Handle LVA support as a CPU feature Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 44/61] arm64: mm: Add feature override support for LVA Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 45/61] arm64/mm: Avoid #define'ing PTE_MAYBE_NG to 0x0 for asm use Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 46/61] arm64: mm: Wire up TCR.DS bit to PTE shareability fields Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 47/61] arm64: mm: Add LPA2 support to phys<->pte conversion routines Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 48/61] arm64: mm: Add definitions to support 5 levels of paging Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 49/61] arm64: mm: add LPA2 and 5 level paging support to G-to-nG conversion Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 50/61] arm64: Enable LPA2 at boot if supported by the system Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 51/61] arm64: mm: Add 5 level paging support to fixmap and swapper handling Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 52/61] arm64: kasan: Reduce minimum shadow alignment and enable 5 level paging Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 53/61] arm64: mm: Add support for folding PUDs at runtime Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 54/61] arm64: ptdump: Disregard unaddressable VA space Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 55/61] arm64: ptdump: Deal with translation levels folded at runtime Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 56/61] arm64: kvm: avoid CONFIG_PGTABLE_LEVELS for runtime levels Ard Biesheuvel
2023-10-23 18:42   ` Marc Zyngier
2023-10-24  6:55   ` Oliver Upton
2023-09-12 14:16 ` [PATCH v4 57/61] arm64: kvm: Limit HYP VA and host S2 range to 48 bits when LPA2 is in effect Ard Biesheuvel
2023-10-23 18:43   ` Marc Zyngier
2023-10-24  6:57   ` Oliver Upton
2023-09-12 14:16 ` [PATCH v4 58/61] arm64: Enable 52-bit virtual addressing for 4k and 16k granule configs Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 59/61] arm64: defconfig: Enable LPA2 support Ard Biesheuvel
2023-10-19 18:12   ` Catalin Marinas
2023-09-12 14:16 ` [PATCH v4 60/61] mm: add arch hook to validate mmap() prot flags Ard Biesheuvel
2023-09-12 14:16 ` [PATCH v4 61/61] arm64: mm: add support for WXN memory translation attribute Ard Biesheuvel
2023-10-23 17:45 ` [PATCH v4 00/61] arm64: Add support for LPA2 at stage1 and WXN Catalin Marinas
2023-10-23 18:54   ` Marc Zyngier
2023-10-23 20:44     ` Catalin Marinas
2023-10-24  6:54       ` Oliver Upton
2023-10-24 16:42         ` Catalin Marinas
2023-10-25 13:19           ` Catalin Marinas
2023-10-25 13:32             ` Ard Biesheuvel
2023-10-25 18:43             ` Oliver Upton
2023-10-24  8:56   ` Ryan Roberts
2023-10-26 16:52   ` Catalin Marinas
2023-10-26 13:21 ` Ryan Roberts
2023-10-26 13:52   ` Catalin Marinas [this message]
2023-10-26 14:02     ` Ryan Roberts

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=ZTpvOx7fbJkZPlA2@arm.com \
    --to=catalin.marinas@arm.com \
    --cc=anshuman.khandual@arm.com \
    --cc=ardb@google.com \
    --cc=ardb@kernel.org \
    --cc=joey.gouly@arm.com \
    --cc=keescook@chromium.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=mark.rutland@arm.com \
    --cc=maz@kernel.org \
    --cc=oliver.upton@linux.dev \
    --cc=ryan.roberts@arm.com \
    --cc=will@kernel.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.