Messages in this thread | | | Date | Sat, 31 Oct 2015 21:38:31 -0700 (PDT) | From | David Rientjes <> | Subject | Re: 答复: [PATCHv2 4.3-rc6] proc: fix convert from oom score adj to oom adj |
| |
On Fri, 30 Oct 2015, Michal Hocko wrote:
> On Fri 30-10-15 13:59:03, Michal Hocko wrote: > > On Thu 29-10-15 18:04:22, Michal Hocko wrote: > > > On Wed 28-10-15 16:54:04, David Rientjes wrote: > > > [...] > > > > It's a bad situation, I agree, and we anticipated the complete removal of > > > > /proc/pid/oom_adj years ago since it has been deprecated for years. Maybe > > > > one day we can convince Linus that is possible, but until then we're stuck > > > > with it. > > > > > > Let's do it then. > > > > I've just checked debian code search and it seems that procps still > > relies on oom_adj. I have sent a patch but that sounds like we are not > > there yet. I will hunt for other projects still using the deprecated > > file exclusively. Hopefully there won't be too many of them. > > It doesn't look that bad afterall: > $ curl -s http://codesearch.debian.net/results/7223e657af3f2ad0/packages.json > {"Packages":["tgt","ggobi","hurd","linux","condor","wine-gecko-2.21","android-platform-frameworks-native","nautilus","procps","wireshark","intel-gpu-tools","iceweasel","icedove","ardour","linux-tools","kde4libs","nss-pam-ldapd","chromium-browser","passenger","archipel-agent-virtualmachine-oomkiller","bleachbit","tilestache","slurm-llnl","ns3","nbd","open-iscsi","mhwaveedit","nilfs-tools","stress-ng","lvm2","gradm2","audit","postgresql-common","zfs-fuse","ocfs2-tools","gimp","advene","lldpad","reniced","pitivi","trinity","petri-foo","rtai","postgresql-9.4","procenv","multipath-tools","percona-toolkit","apparmor","upstart","watchdog","boinc","fusil","util-vserver","booth","geeqie","openssh","oar","android-platform-system-core","kinit","xournal","player","gimp-gap","android-tools"]} > > Of those > * android-tools need a trivial patch - not sure who is upstream here > so pushed through Debian bugzilla - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803485 > * boinc-client.init need a trivial patch - Debian specific it seesm > https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803484 > * ocfs2_controld - posted to debian as I wasn't sure about the upstream > status - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=803486 > * procps needs a trivial patch - sent upstream already > > This two are nasty because they consume only oom_adj scale so we have > to rescale explicitly :/ > * archipel-agent-virtualmachine-oomkiller oom_adj is stored in the DB > * reniced - this is one is nasty as well because it consumes oom_adj > from user > > I will have a look at them early next week.
Reintroducing oom_adj came from the thread at https://lkml.org/lkml/2012/11/12/281. I believe kde has long supported oom_score_adj, but the objection Linus raised wasn't about a specific binary, rather "all userspace".
I did the same type of searching and fixing back then for things like udev, chromium, openssh, etc to convert them to oom_score_adj. It was mostly trivial because people either set it to -17 to disable from the oom killer or to 0 to nullify an oom-disabled process.
I'd love to be able to remove oom_adj. I'm not sure if we can get to that point if the instance is that "all userspace" must not write to it and it would require users to rebuild their binaries. If we could show that all the major open source users of oom_adj (there can't be _that_ many that would be significantly impacted since you needed CAP_SYS_RESOURCE to reduce it) were converted, maybe Linus would accept it.
| |