On Thu, Apr 25, 2019 at 11:14:23PM +0200, Andreas Dilger wrote: > On Apr 25, 2019, at 10:14 PM, J. Bruce Fields <bfields@xxxxxxxxxxxx> wrote: > > > > On Thu, Apr 25, 2019 at 02:04:59PM -0400, Jeff Layton wrote: > >> More bikeshedding: should we have a "states" file instead of an "opens" > >> file and print a different set of output for each stateid type? > > > > Sure. The format of the file could be something like > > > > <stateid> open rw -- <openowner>... > > <stateid> lock r 0-EOF <lockowner>... > > <stateid> deleg r > > > > I wonder if we could put owners on separate lines and do some > > heirarchical thing to show owner-stateid relationships? Hm. That's > > kind of appealing but more work. > > My suggestion here would be to use YAML-formatted output rather than > space/tab separated positional fields. That can still be made human > readable, but also machine parseable and extensible if formatted properly. Well, anything we do will be machine-parseable. But I can believe YAML would make future extension easier. It doesn't look like it would be more complicated to generate. It uses C-style escaping (like \x32) so there'd be no change to how we format binary blobs. The field names make it a tad more verbose but I guess it's not too bad. > Something like the following (use https://yaml-online-parser.appspot.com/ > to validate the formatting): > > - <stateid>: { state: open, mode: rw, owner: <openowner> } > - <stateid>: { state: lock, mode: r, start: 0, end: EOF, owner: <openowner> } I haven't noticed other kernel interfaces using YAML. But I guess I'm not coming up with any real objection. --b.