2022-04-20 17:36:16

by Pasha Tatashin

[permalink] [raw]
Subject: Re: [PATCH] mm/page_table_check: Drop all redundant EXPORT_SYMBOL()

On Wed, Apr 20, 2022 at 2:01 AM Anshuman Khandual
<[email protected]> wrote:
>
> Function definitions need not be exported via EXPORT_SYMBOL() mechanism. In
> this case these functions just get called only inside their wrappers. Even
> __page_table_check_zero() gets called without such an export. Just drop all
> these redundant EXPORT_SYMBOL().
>
> Cc: Pasha Tatashin <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Signed-off-by: Anshuman Khandual <[email protected]>
> ---
> This applies on v5.18-rc3
>
> mm/page_table_check.c | 6 ------
> 1 file changed, 6 deletions(-)
>
> diff --git a/mm/page_table_check.c b/mm/page_table_check.c
> index 2458281bff89..5c2a96159832 100644
> --- a/mm/page_table_check.c
> +++ b/mm/page_table_check.c
> @@ -167,7 +167,6 @@ void __page_table_check_pte_clear(struct mm_struct *mm, unsigned long addr,
> PAGE_SIZE >> PAGE_SHIFT);
> }
> }
> -EXPORT_SYMBOL(__page_table_check_pte_clear);
>
> void __page_table_check_pmd_clear(struct mm_struct *mm, unsigned long addr,
> pmd_t pmd)
> @@ -180,7 +179,6 @@ void __page_table_check_pmd_clear(struct mm_struct *mm, unsigned long addr,
> PMD_PAGE_SIZE >> PAGE_SHIFT);
> }
> }
> -EXPORT_SYMBOL(__page_table_check_pmd_clear);
>
> void __page_table_check_pud_clear(struct mm_struct *mm, unsigned long addr,
> pud_t pud)
> @@ -193,7 +191,6 @@ void __page_table_check_pud_clear(struct mm_struct *mm, unsigned long addr,
> PUD_PAGE_SIZE >> PAGE_SHIFT);
> }
> }
> -EXPORT_SYMBOL(__page_table_check_pud_clear);
>
> void __page_table_check_pte_set(struct mm_struct *mm, unsigned long addr,
> pte_t *ptep, pte_t pte)
> @@ -208,7 +205,6 @@ void __page_table_check_pte_set(struct mm_struct *mm, unsigned long addr,
> pte_write(pte));
> }
> }
> -EXPORT_SYMBOL(__page_table_check_pte_set);

Hi Anshuman,

See this:
https://lore.kernel.org/all/20211124234754.l5co34dUK%[email protected]/

The rest of EXPORTs were added to be symmetric, and allow other
drivers to use set_*p**()/clear_p** calls.

Pasha


2022-04-22 17:28:59

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH] mm/page_table_check: Drop all redundant EXPORT_SYMBOL()

On Wed, Apr 20, 2022 at 12:54:08PM -0400, Pasha Tatashin wrote:
> The rest of EXPORTs were added to be symmetric, and allow other
> drivers to use set_*p**()/clear_p** calls.

EXPORT_SYMBOLs actually have a real cost. We don't add them "for
symmetry".

2022-04-22 20:35:26

by Pasha Tatashin

[permalink] [raw]
Subject: Re: [PATCH] mm/page_table_check: Drop all redundant EXPORT_SYMBOL()

On Wed, Apr 20, 2022 at 11:23 PM Matthew Wilcox <[email protected]> wrote:
>
> On Wed, Apr 20, 2022 at 12:54:08PM -0400, Pasha Tatashin wrote:
> > The rest of EXPORTs were added to be symmetric, and allow other
> > drivers to use set_*p**()/clear_p** calls.
>
> EXPORT_SYMBOLs actually have a real cost. We don't add them "for
> symmetry".

Sure, the rest of exports can be removed, but:

> -EXPORT_SYMBOL(__page_table_check_pte_set);

must stay because of

ERROR: modpost: "__page_table_check_pte_set"
[drivers/gpu/drm/i915/i915.ko] undefined!

Pasha