[PATCH] powerpc/mm: Add a parameter to disable 1TB segs
Balbir Singh
bsingharora at gmail.com
Mon Jul 4 14:59:35 AEST 2016
On 04/07/16 10:44, Oliver O'Halloran wrote:
> This patch adds the kernel command line parameter "no_tb_segs" which
> forces the kernel to use 256MB rather than 1TB segments. Forcing the use
> of 256MB segments makes it considerably easier to test code that depends
> on an SLB miss occurring.
>
> Suggested-by: Michael Neuling <mikey at neuling.org>
> Suggested-by: Michael Ellerman <mpe at ellerman.id.au>
> Signed-off-by: Oliver O'Halloran <oohall at gmail.com>
> ---
> arch/powerpc/mm/hash_utils_64.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/arch/powerpc/mm/hash_utils_64.c b/arch/powerpc/mm/hash_utils_64.c
> index 5b22ba0b58bc..6da1a9d18e15 100644
> --- a/arch/powerpc/mm/hash_utils_64.c
> +++ b/arch/powerpc/mm/hash_utils_64.c
> @@ -321,6 +321,15 @@ int htab_remove_mapping(unsigned long vstart, unsigned long vend,
> return ret;
> }
>
> +static bool no_tb_segs = false;
> +
> +static int __init parse_no_tb_segs(char *p)
> +{
> + no_tb_segs = true;
> + return 0;
> +}
> +early_param("no_tb_segs", parse_no_tb_segs);
Please update Documentation/kernel-paramaters.txt as well and document the use case and the
fact that this for debugging.
> +
> static int __init htab_dt_scan_seg_sizes(unsigned long node,
> const char *uname, int depth,
> void *data)
> @@ -339,6 +348,12 @@ static int __init htab_dt_scan_seg_sizes(unsigned long node,
> for (; size >= 4; size -= 4, ++prop) {
> if (be32_to_cpu(prop[0]) == 40) {
> DBG("1T segment support detected\n");
> +
> + if (no_tb_segs) {
> + DBG("Forcing 256MB segments\n");
> + break;
> + }
> +
> cur_cpu_spec->mmu_features |= MMU_FTR_1T_SEGMENT;
> return 1;
> }
>
Otherwise
Acked-by: Balbir Singh <bsingharora at gmail.com>
Balbir
More information about the Linuxppc-dev
mailing list