[RFC v1 PATCH] ARM64: KGDB: Add FP/SIMD debug support
Vijay Kilari
vijay.kilari at gmail.com
Mon Nov 11 03:47:52 EST 2013
On Fri, Nov 8, 2013 at 8:36 PM, Will Deacon <will.deacon at arm.com> wrote:
> On Thu, Nov 07, 2013 at 12:38:41PM +0000, vijay.kilari at gmail.com wrote:
>> From: Vijaya Kumar K <Vijaya.Kumar at caviumnetworks.com>
>>
>> Add KGDB debug support for FP/SIMD processor.This support
>> only debugging of FP/SIMD in kernel mode.
>> With this patch one can view or set FP/SIMD registers in
>> kernel context
>>
>> Signed-off-by: Vijaya Kumar K <Vijaya.Kumar at caviumnetworks.com>
>> ---
>> arch/arm64/kernel/kgdb.c | 98 ++++++++++++++++++++++++++++------------------
>> 1 file changed, 60 insertions(+), 38 deletions(-)
>
> [...]
>
>> @@ -100,11 +108,18 @@ char *dbg_get_reg(int regno, void *mem, struct pt_regs *regs)
>> if (regno >= DBG_MAX_REG_NUM || regno < 0)
>> return NULL;
>>
>> - if (dbg_reg_def[regno].offset != -1)
>> + if (dbg_reg_def[regno].offset != -1 && regno < _GP_REGS)
>> memcpy(mem, (void *)regs + dbg_reg_def[regno].offset,
>> dbg_reg_def[regno].size);
>> - else
>> + else {
>> +#ifdef CONFIG_KERNEL_MODE_NEON
>> + fpsimd_save_state(&kgdb_fpsimd_regs);
>> + memcpy(mem, (void *)&kgdb_fpsimd_regs +
>> + dbg_reg_def[regno].offset, dbg_reg_def[regno].size);
>
> Don't you only want to do this if you're inside a kernel_neon_{begin,end}
> section? Otherwise, you'll be copying out user registers. It really depends
> on what semantics you want.
>
Yes, we can do that. I couldn't find any api to know the state of the neon.
I think of using a status variable and update in kernel_neon_begin/end?
> Will
More information about the linux-arm-kernel
mailing list