I understand how reading /proc or /sys can be a bottleneck, but this proposed method using a system call is the wrong way to do this.
Why not use netlink like other systems do which allows a message based response which allows for future changes (no fixed datastructures), and is message based. Generic netlink has already been used by several other subsystems.

