* pahole failed to get some struct info
@ 2021-10-10 6:09 Xianting Tian
2021-10-11 18:55 ` Arnaldo Carvalho de Melo
0 siblings, 1 reply; 3+ messages in thread
From: Xianting Tian @ 2021-10-10 6:09 UTC (permalink / raw)
To: dwarves
Hi,
Sorry to disturb you, when I use below command to get info about 'struct
hvc_struct', it failed.
$ pahole -C hvc_struct vmlinux
die__process_function: tag not supported (INVALID)!
die__process_unit: DW_TAG_dwarf_procedure (0x36) @ <0x4ebf4c> not handled!
But when I try some common struct, it is OK.
$pahole -C task_struct vmlinux
Could you help me how to fix the issue? thanks a lot.
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: pahole failed to get some struct info
2021-10-10 6:09 pahole failed to get some struct info Xianting Tian
@ 2021-10-11 18:55 ` Arnaldo Carvalho de Melo
2021-10-12 1:31 ` Xianting Tian
0 siblings, 1 reply; 3+ messages in thread
From: Arnaldo Carvalho de Melo @ 2021-10-11 18:55 UTC (permalink / raw)
To: Xianting Tian; +Cc: dwarves
Em Sun, Oct 10, 2021 at 02:09:10PM +0800, Xianting Tian escreveu:
> Hi,
> Sorry to disturb you, when I use below command to get info about 'struct
> hvc_struct', it failed.
> $ pahole -C hvc_struct vmlinux
> die__process_function: tag not supported (INVALID)!
> die__process_unit: DW_TAG_dwarf_procedure (0x36) @ <0x4ebf4c> not handled!
> But when I try some common struct, it is OK.
> $ pahole -C task_struct vmlinux
> Could you help me how to fix the issue? thanks a lot.
Using:
⬢[acme@toolbox v5.14.0-rc6+]$ pahole --version
v1.22
I see no problems, be it from DWARF or from BTF, in the various ways to
ask for that struct:
⬢[acme@toolbox v5.14.0-rc6+]$ pahole -C hvc_struct vmlinux
struct hvc_struct {
struct tty_port port; /* 0 352 */
/* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
spinlock_t lock; /* 352 4 */
int index; /* 356 4 */
int do_wakeup; /* 360 4 */
/* XXX 4 bytes hole, try to pack */
char * outbuf; /* 368 8 */
int outbuf_size; /* 376 4 */
int n_outbuf; /* 380 4 */
/* --- cacheline 6 boundary (384 bytes) --- */
uint32_t vtermno; /* 384 4 */
/* XXX 4 bytes hole, try to pack */
const struct hv_ops * ops; /* 392 8 */
int irq_requested; /* 400 4 */
int data; /* 404 4 */
struct winsize ws; /* 408 8 */
struct work_struct tty_resize; /* 416 32 */
/* --- cacheline 7 boundary (448 bytes) --- */
struct list_head next; /* 448 16 */
long unsigned int flags; /* 464 8 */
/* size: 472, cachelines: 8, members: 15 */
/* sum members: 464, holes: 2, sum holes: 8 */
/* last cacheline: 24 bytes */
};
⬢[acme@toolbox v5.14.0-rc6+]$ pahole hvc_struct
struct hvc_struct {
struct tty_port port; /* 0 352 */
/* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
spinlock_t lock; /* 352 4 */
int index; /* 356 4 */
int do_wakeup; /* 360 4 */
/* XXX 4 bytes hole, try to pack */
char * outbuf; /* 368 8 */
int outbuf_size; /* 376 4 */
int n_outbuf; /* 380 4 */
/* --- cacheline 6 boundary (384 bytes) --- */
uint32_t vtermno; /* 384 4 */
/* XXX 4 bytes hole, try to pack */
const struct hv_ops * ops; /* 392 8 */
int irq_requested; /* 400 4 */
int data; /* 404 4 */
struct winsize ws; /* 408 8 */
struct work_struct tty_resize; /* 416 32 */
/* --- cacheline 7 boundary (448 bytes) --- */
struct list_head next; /* 448 16 */
long unsigned int flags; /* 464 8 */
/* size: 472, cachelines: 8, members: 15 */
/* sum members: 464, holes: 2, sum holes: 8 */
/* last cacheline: 24 bytes */
};
⬢[acme@toolbox v5.14.0-rc6+]$
⬢[acme@toolbox v5.14.0-rc6+]$ pahole -F dwarf -C hvc_struct vmlinux
struct hvc_struct {
struct tty_port port; /* 0 352 */
/* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
spinlock_t lock; /* 352 4 */
int index; /* 356 4 */
int do_wakeup; /* 360 4 */
/* XXX 4 bytes hole, try to pack */
char * outbuf; /* 368 8 */
int outbuf_size; /* 376 4 */
int n_outbuf; /* 380 4 */
/* --- cacheline 6 boundary (384 bytes) --- */
uint32_t vtermno; /* 384 4 */
/* XXX 4 bytes hole, try to pack */
const struct hv_ops * ops; /* 392 8 */
int irq_requested; /* 400 4 */
int data; /* 404 4 */
struct winsize ws; /* 408 8 */
struct work_struct tty_resize; /* 416 32 */
/* --- cacheline 7 boundary (448 bytes) --- */
struct list_head next; /* 448 16 */
long unsigned int flags; /* 464 8 */
/* size: 472, cachelines: 8, members: 15 */
/* sum members: 464, holes: 2, sum holes: 8 */
/* last cacheline: 24 bytes */
};
⬢[acme@toolbox v5.14.0-rc6+]$ pahole -F btf -C hvc_struct vmlinux
struct hvc_struct {
struct tty_port port; /* 0 352 */
/* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
spinlock_t lock; /* 352 4 */
int index; /* 356 4 */
int do_wakeup; /* 360 4 */
/* XXX 4 bytes hole, try to pack */
char * outbuf; /* 368 8 */
int outbuf_size; /* 376 4 */
int n_outbuf; /* 380 4 */
/* --- cacheline 6 boundary (384 bytes) --- */
uint32_t vtermno; /* 384 4 */
/* XXX 4 bytes hole, try to pack */
const struct hv_ops * ops; /* 392 8 */
int irq_requested; /* 400 4 */
int data; /* 404 4 */
struct winsize ws; /* 408 8 */
struct work_struct tty_resize; /* 416 32 */
/* --- cacheline 7 boundary (448 bytes) --- */
struct list_head next; /* 448 16 */
long unsigned int flags; /* 464 8 */
/* size: 472, cachelines: 8, members: 15 */
/* sum members: 464, holes: 2, sum holes: 8 */
/* last cacheline: 24 bytes */
};
⬢[acme@toolbox v5.14.0-rc6+]$ pahole --help | grep decl
-D, --decl_exclude=PREFIX exclude classes declared in files with PREFIX
-I, --show_decl_info Show the file and line number where the tags were
⬢[acme@toolbox v5.14.0-rc6+]$ pahole -IF dwarf -C hvc_struct vmlinux
/* Used at: /var/home/acme/git/perf/drivers/tty/hvc/hvc_console.c */
/* <65c08c8> /var/home/acme/git/perf/drivers/tty/hvc/hvc_console.h:35 */
struct hvc_struct {
struct tty_port port; /* 0 352 */
/* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
spinlock_t lock; /* 352 4 */
int index; /* 356 4 */
int do_wakeup; /* 360 4 */
/* XXX 4 bytes hole, try to pack */
char * outbuf; /* 368 8 */
int outbuf_size; /* 376 4 */
int n_outbuf; /* 380 4 */
/* --- cacheline 6 boundary (384 bytes) --- */
uint32_t vtermno; /* 384 4 */
/* XXX 4 bytes hole, try to pack */
const struct hv_ops * ops; /* 392 8 */
int irq_requested; /* 400 4 */
int data; /* 404 4 */
struct winsize ws; /* 408 8 */
struct work_struct tty_resize; /* 416 32 */
/* --- cacheline 7 boundary (448 bytes) --- */
struct list_head next; /* 448 16 */
long unsigned int flags; /* 464 8 */
/* size: 472, cachelines: 8, members: 15 */
/* sum members: 464, holes: 2, sum holes: 8 */
/* last cacheline: 24 bytes */
};
⬢[acme@toolbox v5.14.0-rc6+]$
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: pahole failed to get some struct info
2021-10-11 18:55 ` Arnaldo Carvalho de Melo
@ 2021-10-12 1:31 ` Xianting Tian
0 siblings, 0 replies; 3+ messages in thread
From: Xianting Tian @ 2021-10-12 1:31 UTC (permalink / raw)
To: Arnaldo Carvalho de Melo; +Cc: dwarves
thanks a lot for the response,
I will try the new version, my current version seems too old.
$ pahole --version
v1.9
在 2021/10/12 上午2:55, Arnaldo Carvalho de Melo 写道:
> Em Sun, Oct 10, 2021 at 02:09:10PM +0800, Xianting Tian escreveu:
>> Hi,
>> Sorry to disturb you, when I use below command to get info about 'struct
>> hvc_struct', it failed.
>> $ pahole -C hvc_struct vmlinux
>> die__process_function: tag not supported (INVALID)!
>> die__process_unit: DW_TAG_dwarf_procedure (0x36) @ <0x4ebf4c> not handled!
>
>> But when I try some common struct, it is OK.
>
>> $ pahole -C task_struct vmlinux
>
>> Could you help me how to fix the issue? thanks a lot.
> Using:
>
> ⬢[acme@toolbox v5.14.0-rc6+]$ pahole --version
> v1.22
>
> I see no problems, be it from DWARF or from BTF, in the various ways to
> ask for that struct:
>
> ⬢[acme@toolbox v5.14.0-rc6+]$ pahole -C hvc_struct vmlinux
> struct hvc_struct {
> struct tty_port port; /* 0 352 */
> /* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
> spinlock_t lock; /* 352 4 */
> int index; /* 356 4 */
> int do_wakeup; /* 360 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> char * outbuf; /* 368 8 */
> int outbuf_size; /* 376 4 */
> int n_outbuf; /* 380 4 */
> /* --- cacheline 6 boundary (384 bytes) --- */
> uint32_t vtermno; /* 384 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> const struct hv_ops * ops; /* 392 8 */
> int irq_requested; /* 400 4 */
> int data; /* 404 4 */
> struct winsize ws; /* 408 8 */
> struct work_struct tty_resize; /* 416 32 */
> /* --- cacheline 7 boundary (448 bytes) --- */
> struct list_head next; /* 448 16 */
> long unsigned int flags; /* 464 8 */
>
> /* size: 472, cachelines: 8, members: 15 */
> /* sum members: 464, holes: 2, sum holes: 8 */
> /* last cacheline: 24 bytes */
> };
> ⬢[acme@toolbox v5.14.0-rc6+]$ pahole hvc_struct
> struct hvc_struct {
> struct tty_port port; /* 0 352 */
> /* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
> spinlock_t lock; /* 352 4 */
> int index; /* 356 4 */
> int do_wakeup; /* 360 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> char * outbuf; /* 368 8 */
> int outbuf_size; /* 376 4 */
> int n_outbuf; /* 380 4 */
> /* --- cacheline 6 boundary (384 bytes) --- */
> uint32_t vtermno; /* 384 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> const struct hv_ops * ops; /* 392 8 */
> int irq_requested; /* 400 4 */
> int data; /* 404 4 */
> struct winsize ws; /* 408 8 */
> struct work_struct tty_resize; /* 416 32 */
> /* --- cacheline 7 boundary (448 bytes) --- */
> struct list_head next; /* 448 16 */
> long unsigned int flags; /* 464 8 */
>
> /* size: 472, cachelines: 8, members: 15 */
> /* sum members: 464, holes: 2, sum holes: 8 */
> /* last cacheline: 24 bytes */
> };
> ⬢[acme@toolbox v5.14.0-rc6+]$
>
> ⬢[acme@toolbox v5.14.0-rc6+]$ pahole -F dwarf -C hvc_struct vmlinux
> struct hvc_struct {
> struct tty_port port; /* 0 352 */
> /* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
> spinlock_t lock; /* 352 4 */
> int index; /* 356 4 */
> int do_wakeup; /* 360 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> char * outbuf; /* 368 8 */
> int outbuf_size; /* 376 4 */
> int n_outbuf; /* 380 4 */
> /* --- cacheline 6 boundary (384 bytes) --- */
> uint32_t vtermno; /* 384 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> const struct hv_ops * ops; /* 392 8 */
> int irq_requested; /* 400 4 */
> int data; /* 404 4 */
> struct winsize ws; /* 408 8 */
> struct work_struct tty_resize; /* 416 32 */
> /* --- cacheline 7 boundary (448 bytes) --- */
> struct list_head next; /* 448 16 */
> long unsigned int flags; /* 464 8 */
>
> /* size: 472, cachelines: 8, members: 15 */
> /* sum members: 464, holes: 2, sum holes: 8 */
> /* last cacheline: 24 bytes */
> };
> ⬢[acme@toolbox v5.14.0-rc6+]$ pahole -F btf -C hvc_struct vmlinux
> struct hvc_struct {
> struct tty_port port; /* 0 352 */
> /* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
> spinlock_t lock; /* 352 4 */
> int index; /* 356 4 */
> int do_wakeup; /* 360 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> char * outbuf; /* 368 8 */
> int outbuf_size; /* 376 4 */
> int n_outbuf; /* 380 4 */
> /* --- cacheline 6 boundary (384 bytes) --- */
> uint32_t vtermno; /* 384 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> const struct hv_ops * ops; /* 392 8 */
> int irq_requested; /* 400 4 */
> int data; /* 404 4 */
> struct winsize ws; /* 408 8 */
> struct work_struct tty_resize; /* 416 32 */
> /* --- cacheline 7 boundary (448 bytes) --- */
> struct list_head next; /* 448 16 */
> long unsigned int flags; /* 464 8 */
>
> /* size: 472, cachelines: 8, members: 15 */
> /* sum members: 464, holes: 2, sum holes: 8 */
> /* last cacheline: 24 bytes */
> };
>
>
> ⬢[acme@toolbox v5.14.0-rc6+]$ pahole --help | grep decl
> -D, --decl_exclude=PREFIX exclude classes declared in files with PREFIX
> -I, --show_decl_info Show the file and line number where the tags were
> ⬢[acme@toolbox v5.14.0-rc6+]$ pahole -IF dwarf -C hvc_struct vmlinux
> /* Used at: /var/home/acme/git/perf/drivers/tty/hvc/hvc_console.c */
> /* <65c08c8> /var/home/acme/git/perf/drivers/tty/hvc/hvc_console.h:35 */
> struct hvc_struct {
> struct tty_port port; /* 0 352 */
> /* --- cacheline 5 boundary (320 bytes) was 32 bytes ago --- */
> spinlock_t lock; /* 352 4 */
> int index; /* 356 4 */
> int do_wakeup; /* 360 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> char * outbuf; /* 368 8 */
> int outbuf_size; /* 376 4 */
> int n_outbuf; /* 380 4 */
> /* --- cacheline 6 boundary (384 bytes) --- */
> uint32_t vtermno; /* 384 4 */
>
> /* XXX 4 bytes hole, try to pack */
>
> const struct hv_ops * ops; /* 392 8 */
> int irq_requested; /* 400 4 */
> int data; /* 404 4 */
> struct winsize ws; /* 408 8 */
> struct work_struct tty_resize; /* 416 32 */
> /* --- cacheline 7 boundary (448 bytes) --- */
> struct list_head next; /* 448 16 */
> long unsigned int flags; /* 464 8 */
>
> /* size: 472, cachelines: 8, members: 15 */
> /* sum members: 464, holes: 2, sum holes: 8 */
> /* last cacheline: 24 bytes */
> };
> ⬢[acme@toolbox v5.14.0-rc6+]$
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-10-12 1:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-10 6:09 pahole failed to get some struct info Xianting Tian
2021-10-11 18:55 ` Arnaldo Carvalho de Melo
2021-10-12 1:31 ` Xianting Tian
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.