lkml.org 
[lkml]   [2022]   [Aug]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC PATCH 00/30] Code tagging framework and applications
    On Wed, Aug 31, 2022 at 04:42:30AM -0400, Kent Overstreet wrote:
    > On Wed, Aug 31, 2022 at 09:38:27AM +0200, Peter Zijlstra wrote:
    > > On Tue, Aug 30, 2022 at 02:48:49PM -0700, Suren Baghdasaryan wrote:
    > > > ===========================
    > > > Code tagging framework
    > > > ===========================
    > > > Code tag is a structure identifying a specific location in the source code
    > > > which is generated at compile time and can be embedded in an application-
    > > > specific structure. Several applications of code tagging are included in
    > > > this RFC, such as memory allocation tracking, dynamic fault injection,
    > > > latency tracking and improved error code reporting.
    > > > Basically, it takes the old trick of "define a special elf section for
    > > > objects of a given type so that we can iterate over them at runtime" and
    > > > creates a proper library for it.
    > >
    > > I might be super dense this morning, but what!? I've skimmed through the
    > > set and I don't think I get it.
    > >
    > > What does this provide that ftrace/kprobes don't already allow?
    >
    > You're kidding, right?

    It's a valid question. From the description, it main addition that would
    be hard to do with ftrace or probes is catching where an error code is
    returned. A secondary addition would be catching all historical state and
    not just state since the tracing started.

    It's also unclear *who* would enable this. It looks like it would mostly
    have value during the development stage of an embedded platform to track
    kernel memory usage on a per-application basis in an environment where it
    may be difficult to setup tracing and tracking. Would it ever be enabled
    in production? Would a distribution ever enable this? If it's enabled, any
    overhead cannot be disabled/enabled at run or boot time so anyone enabling
    this would carry the cost without never necessarily consuming the data.

    It might be an ease-of-use thing. Gathering the information from traces
    is tricky and would need combining multiple different elements and that
    is development effort but not impossible.

    Whatever asking for an explanation as to why equivalent functionality
    cannot not be created from ftrace/kprobe/eBPF/whatever is reasonable.

    --
    Mel Gorman
    SUSE Labs

    \
     
     \ /
      Last update: 2022-08-31 12:21    [W:4.366 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site