Thanks to visit codestin.com
Credit goes to github.com

Skip to content

[Nettrace] Handle const char * to avoid truncating metadata #191

@mdh1418

Description

@mdh1418

Events with const char * fields have their metadata truncated in the generated nettrace.

cat /sys/kernel/tracing/events/syscalls/
sys_enter_open/format
name: sys_enter_open
ID: 683
format:
        field:unsigned short common_type;       offset:0;       size:2; signed:0;
        field:unsigned char common_flags;       offset:2;       size:1; signed:0;
        field:unsigned char common_preempt_count;       offset:3;       size:1; signed:0;
        field:int common_pid;   offset:4;       size:4; signed:1;
 
        field:int __syscall_nr; offset:8;       size:4; signed:1;
        field:const char * filename;    offset:16;      size:8; signed:0;
        field:int flags;        offset:24;      size:8; signed:0;
        field:umode_t mode;     offset:32;      size:8; signed:0;

cat /sys/kernel/tracing/events/syscalls/sys_enter_openat/format
name: sys_enter_openat
ID: 681
format:
        field:unsigned short common_type;       offset:0;       size:2; signed:0;
        field:unsigned char common_flags;       offset:2;       size:1; signed:0;
        field:unsigned char common_preempt_count;       offset:3;       size:1; signed:0;
        field:int common_pid;   offset:4;       size:4; signed:1;
 
        field:int __syscall_nr; offset:8;       size:4; signed:1;
        field:int dfd;  offset:16;      size:8; signed:0;
        field:const char * filename;    offset:24;      size:8; signed:0;
        field:int flags;        offset:32;      size:8; signed:0;
        field:umode_t mode;     offset:40;      size:8; signed:0;

Viewing the event in PerfView, the fields starting from const char * filename are all missing.
Image

The filename probably cannot be resolved without eprobes, but it would still be useful to see trailing metadata that can be resolved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions