Hi Kevin,
On 2024/12/20 18:49, Kevin Brodsky wrote:
Hi Peter, Qi,
On 19/12/2024 18:19, Peter Zijlstra wrote:
On Thu, Dec 19, 2024 at 04:44:16PM +0000, Kevin Brodsky wrote:
Besides the ptlock management at PTE/PMD level, all the
pagetable_*_[cd]tor have the same implementation. Introduce common
helpers for all levels to reduce the duplication.
Uff, I forgot to Cc you on the discussion here, sorry!:
https://lkml.kernel.org/r/cover.1734526570.git.zhengqi.arch@xxxxxxxxxxxxx
we now have two series doing more or less overlapping things :/
You can in fact trivially merge the all the implementations -- the
apparent non-common bit (ptlock_free) is a no-op for all those other
levels because they'll be having ptdesc->lock == NULL.
Ah that is good to know, thanks for letting me know about that and Qi's
series! Fortunately there isn't that much overlap between our series - I
think we can easily sort this out.
Qi, shall we collaborate to make our series complementary? I believe my
series covers patch 2 and 4 of your series, but it goes further by
covering all levels and all architectures, and patches introducing
ctor/dtor are already split as Alexander suggested on your series. So my
suggestion would be:
* Remove patch 1 in my series - I'd just introduce
pagetable_{p4d,pgd}_[cd]tor with the same implementation as
pagetable_pud_[cd]tor.
* Remove patch 2 and 4 from your series and rebase it on mine.
I quickly went through your patch series. It looks like my patch 2 and
your patch 6 are duplicated, so you want me to remove my patch 2.
But I think you may not be able to simple let arm64, riscv and x86 to
use generic p4d_{alloc_one,free}(). Because even if
CONFIG_PGTABLE_LEVELS > 4, the pgtable_l5_enabled() may not be true.
For example, in arm64:
#if CONFIG_PGTABLE_LEVELS > 4
static __always_inline bool pgtable_l5_enabled(void)
{
if (!alternative_has_cap_likely(ARM64_ALWAYS_BOOT))
return vabits_actual == VA_BITS;
return alternative_has_cap_unlikely(ARM64_HAS_VA52);
}
Did I miss something?
My patch series is not only for cleanup, but also for fixes of
UAF issue [1], so is it possible to rebase your patch series onto
mine? I can post v3 ASAP.
[1].
https://lore.kernel.org/all/67548279.050a0220.a30f1.015b.GAE@xxxxxxxxxx/
Thanks!
Let me know if that makes sense, if so I'll post a v2.
Cheers,
- Kevin