Re: çå: [PATCHv2 4.3-rc6] proc: fix convert from oom_score_adj to oom_adj

From: David Rientjes
Date: Sun Nov 01 2015 - 00:39:13 EST


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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/