Re: [PATCH 01/29] iov_iter: Switch to using a table of operations
From: Linus Torvalds
Date: Sat Nov 21 2020 - 13:21:39 EST
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