$ git diff crash/filesys.c crash_modified/filesys.c
diff --git a/crash/filesys.c b/crash_modified/filesys.c
index 406ebb2..4759fa2 100644
--- a/crash/filesys.c
+++ b/crash_modified/filesys.c
@@ -2050,7 +2050,7 @@ vfs_init(void)
MEMBER_OFFSET_INIT(dentry_d_parent, "dentry", "d_parent");
MEMBER_OFFSET_INIT(dentry_d_covers, "dentry", "d_covers");
MEMBER_OFFSET_INIT(dentry_d_name, "dentry", "d_name");
- MEMBER_OFFSET_INIT(dentry_d_iname, "dentry", "d_iname");
+ MEMBER_OFFSET_INIT(dentry_d_shortname, "dentry",
"d_shortname");
MEMBER_OFFSET_INIT(dentry_d_sb, "dentry", "d_sb");
MEMBER_OFFSET_INIT(inode_i_mode, "inode", "i_mode");
MEMBER_OFFSET_INIT(inode_i_op, "inode", "i_op");
Regards,
Anderson Nascimento
https://blog.andersonc0d3.io
Em seg., 17 de fev. de 2025 às 11:52, Anderson Nascimento
<andersonc0d3(a)gmail.com> escreveu:
>
> Hello all,
>
> I built the Linux kernel version 6.14-rc1 on Fedora 41 and the crash
> utility doesn't
> work as expected on it. Quickly investigating the issue, the commit below
> from last month changes a field in the struct dentry and it seems to
> be the reason for the errors I am seeing.
>
> dcache: back inline names with a struct-wrapped array of unsigned long
>
https://github.com/torvalds/linux/commit/58cf9c383c5c686668082f83f7e0f3e0...
>
> The errors are the following:
>
> crash> vtop -c 1224 0x41400000
> VIRTUAL PHYSICAL
> 41400000 51144000
>
> PGD: 24438000 => dfaf067
> PUD: dfaf008 => 109fd067
> PMD: 109fd050 => fc07067
> PTE: fc07000 => 8000000051144867
> PAGE: 51144000
>
> PTE PHYSICAL FLAGS
> 8000000051144867 51144000 (PRESENT|RW|USER|ACCESSED|DIRTY|NX)
>
> VMA START END FLAGS FILE
>
> vtop: invalid structure member offset: dentry_d_iname
> FILE: filesys.c LINE: 3242 FUNCTION: get_pathname_component()
>
> BFD: /usr/bin/crash: unknown type [0x13] section `.relr.dyn'
> [/usr/bin/crash] error trace: 556181a34180 => 556181a331c5 =>
> 556181a76b10 => 556181b4adab
> BFD: /usr/bin/crash: unknown type [0x13] section `.relr.dyn'
>
> vtop: invalid structure member offset: dentry_d_iname
> FILE: filesys.c LINE: 3242 FUNCTION: get_pathname_component()
>
> crash>
>
> I replaced the field name to reflect the change on Linux kernel
> 6.14-rc1 and it seems to work without any errors, but I am not used to
> the crash code base and I didn't check the commit in
> details to make sure there aren't more issues affecting it. I'd say
> there might be more changes needed to make sure crash works without
> errors on newer Linux kernel versions. The command I was using and
> resulted in error works fine now, but as I said, there might be
> more changes in order to really support the Linux kernel v6.14.
>
> $ sudo ./crash_modified/crash
> ~/work/kernels/packages/linux_upstream_6.14_rc1/vmlinux
>
> crash 8.0.6++
> Copyright (C) 2002-2025 Red Hat, Inc.
> Copyright (C) 2004, 2005, 2006, 2010 IBM Corporation
> Copyright (C) 1999-2006 Hewlett-Packard Co
> Copyright (C) 2005, 2006, 2011, 2012 Fujitsu Limited
> Copyright (C) 2006, 2007 VA Linux Systems Japan K.K.
> Copyright (C) 2005, 2011, 2020-2024 NEC Corporation
> Copyright (C) 1999, 2002, 2007 Silicon Graphics, Inc.
> Copyright (C) 1999, 2000, 2001, 2002 Mission Critical Linux, Inc.
> Copyright (C) 2015, 2021 VMware, Inc.
> This program is free software, covered by the GNU General Public License,
> and you are welcome to change it and/or distribute copies of it under
> certain conditions. Enter "help copying" to see the conditions.
> This program has absolutely no warranty. Enter "help warranty" for
details.
>
> GNU gdb (GDB) 10.2
> Copyright (C) 2021 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <
http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Type "show copying" and "show warranty" for details.
> This GDB was configured as "x86_64-pc-linux-gnu".
> Type "show configuration" for configuration details.
> Find the GDB manual and other documentation resources online at:
> <
http://www.gnu.org/software/gdb/documentation/>.
>
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
>
> KERNEL: /home/user/work/kernels/packages/linux_upstream_6.14_rc1/vmlinux
> DUMPFILE: /proc/kcore
> CPUS: 4
> DATE: Wed Dec 31 21:00:00 -03 1969
> UPTIME: 07:44:59
> LOAD AVERAGE: 0.40, 0.11, 0.03
> TASKS: 306
> NODENAME: fedoraserver41research
> RELEASE: 6.14.0-rc1
> VERSION: #1 SMP PREEMPT_DYNAMIC Wed Feb 12 00:07:46 -03 2025
> MACHINE: x86_64 (2995 Mhz)
> MEMORY: 2 GB
> PID: 47350
> COMMAND: "crash"
> TASK: ffff88801eeb8000 [THREAD_INFO: ffff88801eeb8000]
> CPU: 3
> STATE: TASK_RUNNING (ACTIVE)
>
> crash> vtop -c 1224 0x41400000
> VIRTUAL PHYSICAL
> 41400000 51144000
>
> PGD: 24438000 => dfaf067
> PUD: dfaf008 => 109fd067
> PMD: 109fd050 => fc07067
> PTE: fc07000 => 8000000051144867
> PAGE: 51144000
>
> PTE PHYSICAL FLAGS
> 8000000051144867 51144000 (PRESENT|RW|USER|ACCESSED|DIRTY|NX)
>
> VMA START END FLAGS FILE
> ffff888006b52b00 41400000 42800000 8100073
>
> PAGE PHYSICAL MAPPING INDEX CNT FLAGS
> ffffea0001445100 51144000 ffff88801440f361 41400 1 fffffd0020828
> uptodate,lru,owner_2,swapbacked
> crash> vtop -c 1224 7f058fbc2000
> VIRTUAL PHYSICAL
> 7f058fbc2000 3f278000
>
> PGD: 244387f0 => 8955067
> PUD: 89550b0 => 997b067
> PMD: 997b3e8 => 9b69067
> PTE: 9b69e10 => 800000003f278025
> PAGE: 3f278000
>
> PTE PHYSICAL FLAGS
> 800000003f278025 3f278000 (PRESENT|USER|ACCESSED|NX)
>
> VMA START END FLAGS FILE
> ffff88800ea17b00 7f058fbc2000 7f058fbc3000 8000071 /usr/lib64/libc.so.6
>
> PAGE PHYSICAL MAPPING INDEX CNT FLAGS
> ffffea0000fc9e00 3f278000 ffff88800bf099c8 0 226 fffffe600426c
> referenced,uptodate,lru,workingset,private,head
> crash>
>
> The patch:
>
> $ git diff crash/filesys.c crash_modified/filesys.c
> diff --git a/crash/filesys.c b/crash_modified/filesys.c
> index 406ebb2..4759fa2 100644
> --- a/crash/filesys.c
> +++ b/crash_modified/filesys.c
> @@ -2050,7 +2050,7 @@ vfs_init(void)
> MEMBER_OFFSET_INIT(dentry_d_parent, "dentry",
"d_parent");
> MEMBER_OFFSET_INIT(dentry_d_covers, "dentry",
"d_covers");
> MEMBER_OFFSET_INIT(dentry_d_name, "dentry", "d_name");
> - MEMBER_OFFSET_INIT(dentry_d_iname, "dentry", "d_iname");
> + MEMBER_OFFSET_INIT(dentry_d_iname, "dentry",
"d_shortname");
> MEMBER_OFFSET_INIT(dentry_d_sb, "dentry", "d_sb");
> MEMBER_OFFSET_INIT(inode_i_mode, "inode", "i_mode");
> MEMBER_OFFSET_INIT(inode_i_op, "inode", "i_op");
>
> Nevertheless, I am bringing this issue to the list for the people
> responsible for the crash development to implement the proper support
> for the Linux kernel v6.14. Thank you.
>
> Regards,
>
> Anderson Nascimento
>
https://blog.andersonc0d3.io