On Thu 23-11-17 15:34:13, Tetsuo Handa wrote: > Dave Chinner wrote: [...] > > Just fix the numa aware shrinkers, as they are the only ones that > > will have this problem. There are only 6 of them, and only the 3 > > that existed at the time that register_shrinker() was changed to > > return an error fail to check for an error. i.e. the superblock > > shrinker, the XFS dquot shrinker and the XFS buffer cache shrinker. Absolutely agreed! I haven't checked other shrinkers but those should be quite easy to fix as well. > You are assuming the "too small to fail" memory-allocation rule > by ignoring that this problem is caused by fault injection. Which is a non-argument because _nobody_ sane runs fault injection on production systems. [...] > We need to make sure that all shrinkers are ready to handle allocation request, > or make register_shrinker() never fail, or (a different approach shown below) > let register_shrinker() fallback to numa unaware if memory allocation request > failed (because Michal is assuming that most architectures do not have that > many numa nodes to care which means that kmalloc() unlikely fails). This is just insane. -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>