Re: [PATCH v2 21/34] arm64: Convert various functions to use ptdescs

2023-05-01 Thread kernel test robot
Hi Vishal, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-everything] [also build test ERROR on linus/master next-20230428] [cannot apply to s390/features powerpc/next powerpc/fixes geert-m68k/for-next geert-m68k/for-linus v6.3] [If your patch is

Re: [PATCH v2 21/34] arm64: Convert various functions to use ptdescs

2023-05-01 Thread kernel test robot
Hi Vishal, kernel test robot noticed the following build errors: [auto build test ERROR on akpm-mm/mm-everything] [also build test ERROR on linus/master next-20230428] [cannot apply to s390/features powerpc/next powerpc/fixes geert-m68k/for-next geert-m68k/for-linus v6.3] [If your patch is

Re: [PATCH v2 29/34] riscv: Convert alloc_{pmd, pte}_late() to use ptdescs

2023-05-01 Thread Palmer Dabbelt
On Mon, 01 May 2023 12:28:24 PDT (-0700), vishal.mo...@gmail.com wrote: As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these

Re: [PATCH v6 4/4] risc/purgatory: Add linker script

2023-05-01 Thread Ricardo Ribalda
Hi Conor On Mon, 1 May 2023 at 19:41, Conor Dooley wrote: > > Hey Ricardo, > > On Mon, May 01, 2023 at 02:38:22PM +0200, Ricardo Ribalda wrote: > > If PGO is enabled, the purgatory ends up with multiple .text sections. > > This is not supported by kexec and crashes the system. > > > > Cc:

[PATCH v2 34/34] mm: Remove pgtable_{pmd, pte}_page_{ctor, dtor}() wrappers

2023-05-01 Thread Vishal Moola (Oracle)
These functions are no longer necessary. Remove them and cleanup Documentation referencing them. Signed-off-by: Vishal Moola (Oracle) --- Documentation/mm/split_page_table_lock.rst| 12 +-- .../zh_CN/mm/split_page_table_lock.rst| 14 ++--- include/linux/mm.h

[PATCH v2 33/34] um: Convert {pmd, pte}_free_tlb() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
Part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents. Also cleans up some spacing issues. Signed-off-by: Vishal Moola (Oracle) --- arch/um/include/asm/pgalloc.h | 18 +- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git

[PATCH v2 32/34] sparc: Convert pgtable_pte_page_{ctor, dtor}() to ptdesc equivalents

2023-05-01 Thread Vishal Moola (Oracle)
Part of the conversions to replace pgtable pte constructor/destructors with ptdesc equivalents. Signed-off-by: Vishal Moola (Oracle) --- arch/sparc/mm/srmmu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index

[PATCH v2 31/34] sparc64: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Signed-off-by: Vishal Moola (Oracle) --- arch/sparc/mm/init_64.c | 17 + 1 file changed, 9 insertions(+), 8 deletions(-) diff

[PATCH v2 29/34] riscv: Convert alloc_{pmd, pte}_late() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use ptdesc_alloc() and ptdesc_address() instead to help standardize

[PATCH v2 30/34] sh: Convert pte_free_tlb() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
Part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents. Also cleans up some spacing issues. Signed-off-by: Vishal Moola (Oracle) --- arch/sh/include/asm/pgalloc.h | 9 + 1 file changed, 5 insertions(+), 4 deletions(-) diff --git

[PATCH v2 28/34] openrisc: Convert __pte_free_tlb() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
Part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents. Signed-off-by: Vishal Moola (Oracle) --- arch/openrisc/include/asm/pgalloc.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/openrisc/include/asm/pgalloc.h

[PATCH v2 27/34] nios2: Convert __pte_free_tlb() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
Part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents. Signed-off-by: Vishal Moola (Oracle) --- arch/nios2/include/asm/pgalloc.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/nios2/include/asm/pgalloc.h

[PATCH v2 26/34] mips: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use ptdesc_alloc() and ptdesc_address() instead to help standardize

[PATCH v2 25/34] m68k: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use ptdesc_alloc() and ptdesc_address() instead to help standardize

[PATCH v2 24/34] loongarch: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use ptdesc_alloc() and ptdesc_address() instead to help standardize

[PATCH v2 23/34] hexagon: Convert __pte_free_tlb() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
Part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents. Signed-off-by: Vishal Moola (Oracle) --- arch/hexagon/include/asm/pgalloc.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/hexagon/include/asm/pgalloc.h

[PATCH v2 22/34] csky: Convert __pte_free_tlb() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
Part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents. Signed-off-by: Vishal Moola (Oracle) --- arch/csky/include/asm/pgalloc.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arch/csky/include/asm/pgalloc.h

[PATCH v2 21/34] arm64: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Signed-off-by: Vishal Moola (Oracle) --- arch/arm64/include/asm/tlb.h | 14 -- arch/arm64/mm/mmu.c | 7 --- 2 files

[PATCH v2 20/34] arm: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. late_alloc() also uses the __get_free_pages() helper function. Convert this to use ptdesc_alloc() and ptdesc_address() instead to help standardize

[PATCH v2 19/34] pgalloc: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use ptdesc_alloc() and ptdesc_address() instead to help standardize

[PATCH v2 18/34] mm: Remove page table members from struct page

2023-05-01 Thread Vishal Moola (Oracle)
The page table members are now split out into their own ptdesc struct. Remove them from struct page. Signed-off-by: Vishal Moola (Oracle) --- include/linux/mm_types.h | 14 -- include/linux/pgtable.h | 3 --- 2 files changed, 17 deletions(-) diff --git a/include/linux/mm_types.h

[PATCH v2 17/34] s390: Convert various pgalloc functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
As part of the conversions to replace pgtable constructor/destructors with ptdesc equivalents, convert various page table functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use ptdesc_alloc() and ptdesc_address() instead to help standardize

[PATCH v2 16/34] s390: Convert various gmap functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
In order to split struct ptdesc from struct page, convert various functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use ptdesc_alloc() and ptdesc_address() instead to help standardize page tables further. Signed-off-by: Vishal Moola (Oracle)

[PATCH v2 15/34] x86: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
In order to split struct ptdesc from struct page, convert various functions to use ptdescs. Some of the functions use the *get*page*() helper functions. Convert these to use ptdesc_alloc() and ptdesc_address() instead to help standardize page tables further. Signed-off-by: Vishal Moola (Oracle)

[PATCH v2 14/34] powerpc: Convert various functions to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
In order to split struct ptdesc from struct page, convert various functions to use ptdescs. Signed-off-by: Vishal Moola (Oracle) --- arch/powerpc/mm/book3s64/mmu_context.c | 10 +++--- arch/powerpc/mm/book3s64/pgtable.c | 32 +- arch/powerpc/mm/pgtable-frag.c | 46

[PATCH v2 13/34] mm: Create ptdesc equivalents for pgtable_{pte,pmd}_page_{ctor,dtor}

2023-05-01 Thread Vishal Moola (Oracle)
Creates ptdesc_pte_ctor(), ptdesc_pmd_ctor(), ptdesc_pte_dtor(), and ptdesc_pmd_dtor() and make the original pgtable constructor/destructors wrappers. Signed-off-by: Vishal Moola (Oracle) --- include/linux/mm.h | 56 ++ 1 file changed, 42

[PATCH v2 12/34] mm: Convert ptlock_free() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
This removes some direct accesses to struct page, working towards splitting out struct ptdesc from struct page. Signed-off-by: Vishal Moola (Oracle) --- include/linux/mm.h | 10 +- mm/memory.c| 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git

[PATCH v2 11/34] mm: Convert pmd_ptlock_free() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
This removes some direct accesses to struct page, working towards splitting out struct ptdesc from struct page. Signed-off-by: Vishal Moola (Oracle) --- include/linux/mm.h | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h

[PATCH v2 10/34] mm: Convert ptlock_init() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
This removes some direct accesses to struct page, working towards splitting out struct ptdesc from struct page. Signed-off-by: Vishal Moola (Oracle) --- include/linux/mm.h | 14 +++--- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h

[PATCH v2 09/34] mm: Convert pmd_ptlock_init() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
This removes some direct accesses to struct page, working towards splitting out struct ptdesc from struct page. Signed-off-by: Vishal Moola (Oracle) --- include/linux/mm.h | 10 +- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h

[PATCH v2 08/34] mm: Convert ptlock_ptr() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
This removes some direct accesses to struct page, working towards splitting out struct ptdesc from struct page. Signed-off-by: Vishal Moola (Oracle) --- arch/x86/xen/mmu_pv.c | 2 +- include/linux/mm.h| 14 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git

[PATCH v2 07/34] mm: Convert ptlock_alloc() to use ptdescs

2023-05-01 Thread Vishal Moola (Oracle)
This removes some direct accesses to struct page, working towards splitting out struct ptdesc from struct page. Signed-off-by: Vishal Moola (Oracle) --- include/linux/mm.h | 6 +++--- mm/memory.c| 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/include/linux/mm.h

[PATCH v2 06/34] mm: Convert pmd_pgtable_page() to pmd_ptdesc()

2023-05-01 Thread Vishal Moola (Oracle)
Converts pmd_pgtable_page() to pmd_ptdesc() and all its callers. This removes some direct accesses to struct page, working towards splitting out struct ptdesc from struct page. Signed-off-by: Vishal Moola (Oracle) --- include/linux/mm.h | 8 1 file changed, 4 insertions(+), 4

[PATCH v2 05/34] mm: add utility functions for ptdesc

2023-05-01 Thread Vishal Moola (Oracle)
Introduce utility functions setting the foundation for ptdescs. These will also assist in the splitting out of ptdesc from struct page. ptdesc_alloc() is defined to allocate new ptdesc pages as compound pages. This is to standardize ptdescs by allowing for one allocation and one free function, in

[PATCH v2 04/34] pgtable: Create struct ptdesc

2023-05-01 Thread Vishal Moola (Oracle)
Currently, page table information is stored within struct page. As part of simplifying struct page, create struct ptdesc for page table information. Signed-off-by: Vishal Moola (Oracle) --- include/linux/pgtable.h | 52 + 1 file changed, 52 insertions(+)

[PATCH v2 03/34] s390: Use pt_frag_refcount for pagetables

2023-05-01 Thread Vishal Moola (Oracle)
s390 currently uses _refcount to identify fragmented page tables. The page table struct already has a member pt_frag_refcount used by powerpc, so have s390 use that instead of the _refcount field as well. This improves the safety for _refcount and the page table tracking. This also allows us to

[PATCH v2 02/34] s390: Use _pt_s390_gaddr for gmap address tracking

2023-05-01 Thread Vishal Moola (Oracle)
s390 uses page->index to keep track of page tables for the guest address space. In an attempt to consolidate the usage of page fields in s390, replace _pt_pad_2 with _pt_s390_gaddr to replace page->index in gmap. This will help with the splitting of struct ptdesc from struct page, as well as

[PATCH v2 01/34] mm: Add PAGE_TYPE_OP folio functions

2023-05-01 Thread Vishal Moola (Oracle)
No folio equivalents for page type operations have been defined, so define them for later folio conversions. Also changes the Page##uname macros to take in const struct page* since we only read the memory here. Signed-off-by: Vishal Moola (Oracle) --- include/linux/page-flags.h | 20

[PATCH v2 00/34] Split ptdesc from struct page

2023-05-01 Thread Vishal Moola (Oracle)
The MM subsystem is trying to shrink struct page. This patchset introduces a memory descriptor for page table tracking - struct ptdesc. This patchset introduces ptdesc, splits ptdesc from struct page, and converts many callers of page table constructor/destructors to use ptdescs. Ptdesc is a

Re: [PATCH v6 4/4] risc/purgatory: Add linker script

2023-05-01 Thread Conor Dooley
Hey Ricardo, On Mon, May 01, 2023 at 02:38:22PM +0200, Ricardo Ribalda wrote: > If PGO is enabled, the purgatory ends up with multiple .text sections. > This is not supported by kexec and crashes the system. > > Cc: sta...@vger.kernel.org > Fixes: 930457057abe ("kernel/kexec_file.c: split up

Re: [PATCH v6 4/4] risc/purgatory: Add linker script

2023-05-01 Thread Ricardo Ribalda
Hi Conor Fixed on my branch https://git.kernel.org/pub/scm/linux/kernel/git/ribalda/linux.git/commit/?h=b4/kexec_clang16=1e9cda9fa638cc72581986f60b490cc069a38f75 Will submit a new version after a while :) Thanks! On Mon, 1 May 2023 at 19:28, Conor Dooley wrote: > > On Mon, May 01, 2023 at

Re: [PATCH v6 4/4] risc/purgatory: Add linker script

2023-05-01 Thread Conor Dooley
On Mon, May 01, 2023 at 07:18:12PM +0200, Ricardo Ribalda wrote: > On Mon, 1 May 2023 at 18:19, Nick Desaulniers wrote: > > > > On Mon, May 1, 2023 at 5:39 AM Ricardo Ribalda wrote: > > > > > > If PGO is enabled, the purgatory ends up with multiple .text sections. > > > This is not supported by

Re: [PATCH v6 4/4] risc/purgatory: Add linker script

2023-05-01 Thread Ricardo Ribalda
Hi Nick Thanks for catching this. It should have said risc/purgatory: Remove profile optimization flags Will fix it on my local branch in case there is a next version of the series. Otherwise, please the maintainer fix the subject. Thanks! On Mon, 1 May 2023 at 18:19, Nick Desaulniers wrote:

Re: [PATCH v6 4/4] risc/purgatory: Add linker script

2023-05-01 Thread Nick Desaulniers
On Mon, May 1, 2023 at 5:39 AM Ricardo Ribalda wrote: > > If PGO is enabled, the purgatory ends up with multiple .text sections. > This is not supported by kexec and crashes the system. > > Cc: sta...@vger.kernel.org > Fixes: 930457057abe ("kernel/kexec_file.c: split up __kexec_load_puragory") >

Re: [PATCH v14 00/15] phy: Add support for Lynx 10G SerDes

2023-05-01 Thread Sean Anderson
On 4/29/23 13:24, Vladimir Oltean wrote: > On Wed, Apr 26, 2023 at 10:50:17AM -0400, Sean Anderson wrote: >> > I need to catch up with 14 rounds of patches from you and with the >> > discussions that took place on each version, and understand how you >> > responded to feedback like "don't remove

[PATCH v2 1/1] PCI: layerscape: Add the endpoint linkup notifier support

2023-05-01 Thread Frank Li
Layerscape has PME interrupt, which can be used as linkup notifier. Set CFG_READY bit when linkup detected. Signed-off-by: Xiaowei Bao Signed-off-by: Frank Li --- Change from v1 to v2 - pme -> PME - irq -> IRQ - update dev_info message according to Bjorn's suggestion - remove '.' at error

Re: [PATCH v6 4/4] risc/purgatory: Add linker script

2023-05-01 Thread Palmer Dabbelt
On Mon, 01 May 2023 05:38:22 PDT (-0700), riba...@chromium.org wrote: If PGO is enabled, the purgatory ends up with multiple .text sections. This is not supported by kexec and crashes the system. Cc: sta...@vger.kernel.org Fixes: 930457057abe ("kernel/kexec_file.c: split up

[PATCH v6 4/4] risc/purgatory: Add linker script

2023-05-01 Thread Ricardo Ribalda
If PGO is enabled, the purgatory ends up with multiple .text sections. This is not supported by kexec and crashes the system. Cc: sta...@vger.kernel.org Fixes: 930457057abe ("kernel/kexec_file.c: split up __kexec_load_puragory") Signed-off-by: Ricardo Ribalda --- arch/riscv/purgatory/Makefile |

[PATCH v6 3/4] powerpc/purgatory: Remove profile optimization flags

2023-05-01 Thread Ricardo Ribalda
If PGO is enabled, the purgatory ends up with multiple .text sections. This is not supported by kexec and crashes the system. Cc: sta...@vger.kernel.org Fixes: 930457057abe ("kernel/kexec_file.c: split up __kexec_load_puragory") Signed-off-by: Ricardo Ribalda --- arch/powerpc/purgatory/Makefile

[PATCH v6 2/4] x86/purgatory: Remove profile optimization flags

2023-05-01 Thread Ricardo Ribalda
If PGO is enabled, the purgatory ends up with multiple .text sections. This is not supported by kexec and crashes the system. Cc: sta...@vger.kernel.org Fixes: 930457057abe ("kernel/kexec_file.c: split up __kexec_load_puragory") Signed-off-by: Ricardo Ribalda --- arch/x86/purgatory/Makefile | 5

[PATCH v6 0/4] kexec: Fix kexec_file_load for llvm16 with PGO

2023-05-01 Thread Ricardo Ribalda
When upreving llvm I realised that kexec stopped working on my test platform. The reason seems to be that due to PGO there are multiple .text sections on the purgatory, and kexec does not supports that. Signed-off-by: Ricardo Ribalda --- Changes in v6: - Replace linker script with Makefile

[PATCH v6 1/4] kexec: Support purgatories with .text.hot sections

2023-05-01 Thread Ricardo Ribalda
Clang16 links the purgatory text in two sections when PGO is in use: [ 1] .text PROGBITS 0040 11a1 AX 0 0 16 [ 2] .rela.textRELA 3498 0648