On Wed 04-04-18 11:04:42, Steven Rostedt wrote: [...] > I'm not looking for perfect. In fact, I love what si_mem_available() > gives me now! Sure, it can say "there's enough memory" even if I can't > use it. Because most of the OOM allocations that happen with increasing > the size of the ring buffer isn't due to "just enough memory > allocated", but it's due to "trying to allocate crazy amounts of > memory". That's because it does the allocation one page at a time, and > if you try to allocate crazy amounts of memory, it will allocate all > memory before it fails. I don't want that. I want crazy allocations to > fail from the start. A "maybe this will allocate" is fine even if it > will end up causing an OOM. OK, fair enough. It's your code ;) I would recommend using the oom_origin thingy to reduce the immediate damage and to have a clear culprit so that I do not have to scratch my head why we see an OOM report with a lot of unaccounted memory... I am afraid I cannot help you much more though. -- Michal Hocko SUSE Labs