On 03/26/20 at 07:43am, Michal Hocko wrote: > On Thu 26-03-20 12:24:54, Baoquan He wrote: > > On 03/25/20 at 12:45pm, David Rientjes wrote: > > > On Wed, 25 Mar 2020, Baoquan He wrote: > > > > > > > > Even this can break existing parsers. Fixing that up is likely not hard > > > > > and existing parsers would be mostly debugging hacks here and there but > > > > > I do miss any actual justification except for you considering it more > > > > > sensible. I do not remember this would be a common pain point for people > > > > > parsing this file. If anything the overal structure of the file makes it > > > > > hard to parse and your patches do not really address that. We are likely > > > > > too late to make the output much more sensible TBH. > > > > > > > > > > That being said, I haven't looked more closely on your patches because I > > > > > do not have spare cycles for that. Your justification for touching the > > > > > code which seems to be working relatively well is quite weak IMHO, yet > > > > > it adds a non zero risk for breaking existing parsers. > > > > > > > > I would take the saying of non zero risk for breaking existing parsers. > > > > When considering this change, I thought about the possible risk. However, > > > > found out the per-node stats was added in 2016 which is not so late, and > > > > assume nobody will rely on the order of per-node stats embeded into a > > > > zone. But I have to admit any concern or worry of risk is worth being > > > > considerred carefully since /proc/zoneinfo is a classic interface. > > > > > > > > > > For context, we started parsing /proc/zoneinfo in initscripts to be able > > > to determine the order in which vm.lowmem_reserve_ratio needs to be set > > > and this required my kernel change from 2017: > > > > > > commit b2bd8598195f1b2a72130592125ac6b4218988a2 > > > Author: David Rientjes <rientjes@xxxxxxxxxx> > > > Date: Wed May 3 14:52:59 2017 -0700 > > > > > > mm, vmstat: print non-populated zones in zoneinfo > > > > > > Otherwise, we found, it's much more difficult to determine how this array > > > should be structured. So at least we parse this file very carefully, I'm > > > not sure how much others do, but it seems like an unnecessary risk for > > > little reward. I'm happy to see it has been decided to drop this patch > > > and patch 5. > > > > > > OK, I see why it is in such a situation, the empty zones were not printed. > > > > I could still not get how vm.lowmem_reserve_ratio is set with > > /proc/zoneinfo in the old initscripts, do you see any risk if not > > filling and showing the ->lowmem_reserve[] of empty zone in > > patch 2 and 3? Thanks in advance. > > The point is why should we even care. Displaying that information > shouldn't hurt anything, right? Well, I would say why not. If saying anything hurted, I often check /proc/zoneinfo to get information about system memory like many people, I was wondering why the protection data is over there, but it's am empty zone, and they protect what. I dare say it's more than once I asked to myself, just sometime I am too lazy to start to make it clear when focusing on another issue. Not sure if that is kind of hurting. I would like to see it's not there to confuse me if anyone else have stood up to fix it, I absolutely will vote for it. Surely, we also need to evaluate if any risk or complexity is involved, While with my understanding, I don't see risk, and the change is quite simple and easy to understand.