On Sat, Nov 21, 2020 at 6:13 AM David Howells <dhowells@xxxxxxxxxx> wrote: > > Switch to using a table of operations. In a future patch the individual > methods will be split up by type. For the moment, however, the ops tables > just jump directly to the old functions - which are now static. Inline > wrappers are provided to jump through the hooks. So I think conceptually this is the right thing to do, but I have a couple of worries: - do we really need all those different versions? I'm thinking "iter_full" versions in particular. They I think the iter_full version could just be wrappers that call the regular iter thing and verify the end result is full (and revert if not). No? - I don't like the xxx_iter_op naming - even as a temporary thing. Please don't use "xxx" as a placeholder. It's not a great grep pattern, it's not really descriptive, and we've literally had issues with things being marked as spam when you use that. So it's about the worst pattern to use. Use "anycase" - or something like that - which is descriptive and greps much better (ie not a single hit for that pattern in the kernel either before or after). - I worry a bit about the indirect call overhead and spectre v2. So yeah, it would be good to have benchmarks to make sure this doesn't regress for some simple case. Other than those things, my initial reaction is "this does seem cleaner". Al? Linus