Re: [PATCH v7b 00/25] fix DRM_USE_DYNAMIC_DEBUG=y regression

From: jim . cromie
Date: Sat Oct 14 2023 - 18:54:40 EST


On Fri, Oct 13, 2023 at 4:48 PM Jim Cromie <jim.cromie@xxxxxxxxx> wrote:
>
> hi Jason, DRM-folk
>
> (now with checkpatch fixes)

I missed fixing boxed-vector, am just dropping it.

>
> This patchest fixes the chicken-egg initialization problem in the 1st
> version of ddebug-class-maps, that DRM-CI uncovered.
>
> The root-problem was DECLARE_DYNDBG_CLASSMAP, which broke the K&R rule:
> "define once, refer many". In patch 14 it is replaced by:
>
> DYNDBG_CLASSMAP_DEFINE - define and export a struct ddebug_class_map
> DYNDBG_CLASSMAP_USE - ref the exported struct
>
> test-dynamic-debug is also extended with a -submod.ko, in order to
> recapitulate the drm & drivers initialization scenario.
>
> They're on v6.6-rc5 now, and apply cleanly to drm-tip/drm-tip.
>
> Ive been running recent revs on rc3+, on my desktop and laptop.
>
> The final blocker was a missing __align(8) on the ddebug_class_user
> record inserted by DYNDBG_CLASSMAP_USE. This caused DRM=y (builtin
> only) to have a corrupt record for drm_kms_helper (builtin dependent).
> Curiously, a clang build did not exhibit this problem.
>

>
> Widespread testing is appreciated.
> I have scripts if anyone wants them.
>
> I'll forward lkp-robot reports here when I get them.
> Patches also at https://github.com/jimc/linux (dd-fix-7b)
>

Date: Sat, 14 Oct 2023 18:22:28 +0800
From: kernel test robot <lkp@xxxxxxxxx>
To: Jim Cromie <jim.cromie@xxxxxxxxx>
Subject: [jimc:dd-fix-7a] BUILD SUCCESS 8e96f63f570a462b859876601a5f795a15999f6b
Message-ID: <202310141826.AN7MAD40-lkp@xxxxxxxxx>
User-Agent: s-nail v14.9.24

tree/branch: https://github.com/jimc/linux.git dd-fix-7a
branch HEAD: 8e96f63f570a462b859876601a5f795a15999f6b drm: restore
CONFIG_DRM_USE_DYNAMIC_DEBUG un-BROKEN

elapsed time: 3187m

configs tested: 103
configs skipped: 2

The following configs have been built successfully.
More configs may be tested in the coming days.

tested configs:
alpha allnoconfig gcc
alpha allyesconfig gcc
alpha defconfig gcc
arc allmodconfig gcc
arc allnoconfig gcc
arc allyesconfig gcc
arc defconfig gcc
arc randconfig-001-20231012 gcc
arm allmodconfig gcc
arm allnoconfig gcc
arm allyesconfig gcc
arm defconfig gcc
arm randconfig-001-20231013 gcc
arm64 allmodconfig gcc
arm64 allnoconfig gcc
arm64 allyesconfig gcc
arm64 defconfig gcc
csky allmodconfig gcc
csky allnoconfig gcc
csky allyesconfig gcc
csky defconfig gcc
i386 allmodconfig gcc
i386 allnoconfig gcc
i386 allyesconfig gcc
i386 debian-10.3 gcc
i386 defconfig gcc
i386 randconfig-001-20231013 gcc
i386 randconfig-002-20231013 gcc
i386 randconfig-003-20231013 gcc
i386 randconfig-004-20231013 gcc
i386 randconfig-005-20231013 gcc
i386 randconfig-006-20231013 gcc
loongarch allmodconfig gcc
loongarch allnoconfig gcc
loongarch allyesconfig gcc
loongarch defconfig gcc
loongarch randconfig-001-20231012 gcc
m68k allmodconfig gcc
m68k allnoconfig gcc
m68k allyesconfig gcc
m68k defconfig gcc
microblaze allmodconfig gcc
microblaze allnoconfig gcc
microblaze allyesconfig gcc
microblaze defconfig gcc
mips allmodconfig gcc
mips allnoconfig gcc
mips allyesconfig gcc
nios2 allmodconfig gcc
nios2 allnoconfig gcc
nios2 allyesconfig gcc
nios2 defconfig gcc
openrisc allmodconfig gcc
openrisc allnoconfig gcc
openrisc allyesconfig gcc
openrisc defconfig gcc
parisc allmodconfig gcc
parisc allnoconfig gcc
parisc allyesconfig gcc
parisc defconfig gcc
parisc64 defconfig gcc
powerpc allnoconfig gcc
powerpc allyesconfig gcc
riscv allmodconfig gcc
riscv allnoconfig gcc
riscv allyesconfig gcc
riscv defconfig gcc
riscv randconfig-001-20231012 gcc
riscv rv32_defconfig gcc
s390 allmodconfig gcc
s390 allnoconfig gcc
s390 allyesconfig gcc
s390 defconfig gcc
s390 randconfig-001-20231012 gcc
sh allmodconfig gcc
sh allnoconfig gcc
sh allyesconfig gcc
sh defconfig gcc
sparc allmodconfig gcc
sparc allnoconfig gcc
sparc allyesconfig gcc
sparc defconfig gcc
sparc randconfig-001-20231013 gcc
sparc64 allmodconfig gcc
sparc64 allyesconfig gcc
sparc64 defconfig gcc
um allmodconfig clang
um allnoconfig clang
um allyesconfig clang
um defconfig gcc
um i386_defconfig gcc
um x86_64_defconfig gcc
x86_64 allnoconfig gcc
x86_64 allyesconfig gcc
x86_64 defconfig gcc
x86_64 randconfig-001-20231013 gcc
x86_64 randconfig-002-20231013 gcc
x86_64 randconfig-003-20231013 gcc
x86_64 randconfig-004-20231013 gcc
x86_64 randconfig-005-20231013 gcc
x86_64 randconfig-006-20231013 gcc
x86_64 rhel-8.3-rust clang
x86_64 rhel-8.3 gcc

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


> Jim Cromie (25):

> dyndbg: add for_each_boxed_vector

Im dropping this one, more trouble than its worth.
hopefully one falls out of flex-array work.