On Wed 04-09-19 11:32:58, Joel Fernandes wrote: > On Wed, Sep 04, 2019 at 10:45:08AM +0200, Michal Hocko wrote: > > On Tue 03-09-19 16:09:05, Joel Fernandes (Google) wrote: > > > Useful to track how RSS is changing per TGID to detect spikes in RSS and > > > memory hogs. Several Android teams have been using this patch in various > > > kernel trees for half a year now. Many reported to me it is really > > > useful so I'm posting it upstream. > > > > > > Initial patch developed by Tim Murray. Changes I made from original patch: > > > o Prevent any additional space consumed by mm_struct. > > > o Keep overhead low by checking if tracing is enabled. > > > o Add some noise reduction and lower overhead by emitting only on > > > threshold changes. > > > > Does this have any pre-requisite? I do not see trace_rss_stat_enabled in > > the Linus tree (nor in linux-next). > > No, this is generated automatically by the tracepoint infrastructure when a > tracepoint is added. OK, I was not aware of that. > > Besides that why do we need batching in the first place. Does this have a > > measurable overhead? How does it differ from any other tracepoints that we > > have in other hotpaths (e.g. page allocator doesn't do any checks). > > We do need batching not only for overhead reduction, What is the overhead? > but also for reducing > tracing noise. Flooding the traces makes it less useful for long traces and > post-processing of traces. IOW, the overhead reduction is a bonus. This is not really anything special for this tracepoint though. Basically any tracepoint in a hot path is in the same situation and I do not see a point why each of them should really invent its own way to throttle. Maybe there is some way to do that in the tracing subsystem directly. -- Michal Hocko SUSE Labs