Re: [PATCH] powerpc/xmon: Allow limiting the size of the paca display
From: Anshuman Khandual <hidden>
Date: 2015-08-12 07:55:40
On 08/12/2015 12:27 PM, Michael Ellerman wrote:
quoted hunk ↗ jump to hunk
The paca display is already more than 24 lines, which can be problematic if you have an old school 80x24 terminal, or more likely you are on a virtual terminal which does not scroll for whatever reason. We'd like to expand the paca display even more, so add a way to limit the number of lines that are displayed. This adds a third form of 'dp' which is 'dp # #', where the first number is the cpu, and the second is the number of lines to display. Example output: 5:mon> dp 3 6 paca for cpu 0x3 @ c00000000fdc0d80: possible = yes present = yes online = yes lock_token = 0x8000 (0xa) paca_index = 0x3 (0x8) Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> --- arch/powerpc/xmon/xmon.c | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-)diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c index e599259d84fc..6f44e9c07f34 100644 --- a/arch/powerpc/xmon/xmon.c +++ b/arch/powerpc/xmon/xmon.c@@ -205,6 +205,7 @@ Commands:\n\ #ifdef CONFIG_PPC64 "\ dp[#] dump paca for current cpu, or cpu #\n\ + dp## dump paca for cpu #, only # lines\n\ dpa dump paca for all possible cpus\n" #endif "\@@ -2070,9 +2071,10 @@ static void xmon_rawdump (unsigned long adrs, long ndump) } #ifdef CONFIG_PPC64 -static void dump_one_paca(int cpu) +static void dump_one_paca(int cpu, int num_lines) { struct paca_struct *p; + int i; if (setjmp(bus_error_jmp) != 0) { printf("*** Error dumping paca for cpu 0x%x!\n", cpu);@@ -2090,9 +2092,12 @@ static void dump_one_paca(int cpu) printf(" %-*s = %s\n", 16, "present", cpu_present(cpu) ? "yes" : "no"); printf(" %-*s = %s\n", 16, "online", cpu_online(cpu) ? "yes" : "no"); + i = 4; /* We always print the first four lines */ + #define DUMP(paca, name, format) \ - printf(" %-*s = %#-*"format"\t(0x%lx)\n", 16, #name, 18, paca->name, \ - offsetof(struct paca_struct, name)); + if (!num_lines || i++ < num_lines)
All look good except the fact that we are using 0 to signify that there is no limit to the number of lines. Is not it bit confusing ?