Messages in this thread | | | Date | Tue, 14 Jul 2015 18:57:14 -0700 (PDT) | From | David Rientjes <> | Subject | Re: 答复: [BUG REPORT] OOM Killer is invoked while the system still has much memory |
| |
On Wed, 15 Jul 2015, Xuzhichuang wrote:
> Hi, > > Thanks for your replying. > > According to the OOM message, OOM killer is invoked by the function seq_read, I found two patches in the latest kernel which can be avoid or fixed this problem. > > https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/fs/seq_file.c?id=058504edd02667eef8fac9be27ab3ea74332e9b4 > https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/fs/seq_file.c?id=5cec38ac866bfb8775638e71a86e4d8cac30caae > > As the patches said, it changed the seq_file code fallback to vmalloc allocations if kmalloc failed, instead of OOM kill processes. >
Yes, we use those two patches as well internally. You may want to give them a try if this is the only source of oom killer issues, but keep in mind that other subsystems like the tcp layer will often do high-order allocations as well. If you can free up some of that ZONE_DMA memory that is unneeded with lowmem_reserve_ratio, you might get a little more room.
Good luck!
| |