Re: [PATCH v3] kdb: Simplify kdb commands registration

From: Sumit Garg
Date: Tue Feb 09 2021 - 06:10:40 EST


On Mon, 8 Feb 2021 at 19:18, Daniel Thompson <daniel.thompson@xxxxxxxxxx> wrote:
>
> On Mon, Feb 08, 2021 at 03:18:19PM +0530, Sumit Garg wrote:
> > On Mon, 8 Feb 2021 at 15:13, Daniel Thompson <daniel.thompson@xxxxxxxxxx> wrote:
> > >
> > > On Fri, Jan 29, 2021 at 03:47:07PM +0530, Sumit Garg wrote:
> > > > @@ -1011,25 +1005,17 @@ int kdb_parse(const char *cmdstr)
> > > > ++argv[0];
> > > > }
> > > >
> > > > - for_each_kdbcmd(tp, i) {
> > > > - if (tp->cmd_name) {
> > > > - /*
> > > > - * If this command is allowed to be abbreviated,
> > > > - * check to see if this is it.
> > > > - */
> > > > -
> > > > - if (tp->cmd_minlen
> > > > - && (strlen(argv[0]) <= tp->cmd_minlen)) {
> > > > - if (strncmp(argv[0],
> > > > - tp->cmd_name,
> > > > - tp->cmd_minlen) == 0) {
> > > > - break;
> > > > - }
> > > > - }
> > > > -
> > > > - if (strcmp(argv[0], tp->cmd_name) == 0)
> > > > + list_for_each_entry(tp, &kdb_cmds_head, list_node) {
> > > > + /*
> > > > + * If this command is allowed to be abbreviated,
> > > > + * check to see if this is it.
> > > > + */
> > > > + if (tp->cmd_minlen && (strlen(argv[0]) <= tp->cmd_minlen) &&
> > > > + (strncmp(argv[0], tp->cmd_name, tp->cmd_minlen) == 0))
> > > > break;
> > >
> > > Looks like you forgot to unindent this line.
> > >
> > > I will fix it up but... checkpatch would have found this.
> > >
> >
> > Ah, I missed to run checkpatch on v3. Thanks for fixing this up.
>
> Unfortunately, it's not just checkpatch. This patch also causes a
> large number of test suite regressions. In particular it looks like
> kgdbwait does not work with this patch applied.
>
> The problem occurs on multiple architectures all with
> close-to-defconfig kernels. However to share one specific
> failure, x86_64_defconfig plus the following is not bootable:
>
> ../scripts/config --enable DEBUG_INFO --enable DEBUG_FS \
> --enable KALLSYMS_ALL --enable MAGIC_SYSRQ --enable KGDB \
> --enable KGDB_TESTS --enable KGDB_KDB --enable KDB_KEYBOARD \
> --enable LKDTM
>
> Try:
>
> qemu-system-x86_64 \
> -enable-kvm -m 1G -smp 2 -nographic
> -kernel arch/x86/boot/bzImage \
> -append "console=ttyS0,115200 kgdboc=ttyS0 kgdbwait"
>

Thanks Daniel for this report. I am able to reproduce it with
"kgdbwait" and will investigate it.

-Sumit

>
> Daniel.