Re: [PATCH 1/6] seq_file: add seq_read_iter

Nathan Chancellor
2020-11-16T00:34:41Z

On Mon, Nov 16, 2020 at 12:25:13AM +0000, Al Viro wrote:
> On Sun, Nov 15, 2020 at 04:51:49PM -0700, Nathan Chancellor wrote:
> > Looks good to me on top of d4d50710a8b46082224376ef119a4dbb75b25c56,
> > thanks for quickly looking into this!
> >
> > Tested-by: Nathan Chancellor <natechancellor@gmail.com>
>
> OK... a variant with (hopefully) better comments and cleaned up
> logics in the second loop (
> if (seq_has_overflowed(m) || err) {
> m->count = offs;
> if (likely(err <= 0))
> break;
> }
> replaced with
> if (err > 0) { // ->show() says "skip it"
> m->count = offs;
> } else if (err || seq_has_overflowed(m)) {
> m->count = offs;
> break;
> }
> ) follows. I'm quite certain that it is an equivalent transformation
> (seq_has_overflowed() has no side effects) and IMO it's slightly
> more readable that way. Survives local beating; could you check if
> it's still OK with your testcase? Equivalent transformation or not,
> I'd rather not slap anyone's Tested-by: on a modified variant of
> patch...

Still good.

Tested-by: Nathan Chancellor <natechancellor@gmail.com>

> BTW, is that call of readv() really coming from init? And if it
> is, what version of init are you using?

I believe that it is but since this is WSL2, I believe that /init is a
proprietary Microsoft implementation, rather than systemd or another
init system:

https://wiki.ubuntu.com/WSL#Keeping_Ubuntu_Updated_in_WSL

So I am not sure how possible it is to see exactly what is going on or
getting it improved.

Cheers,
Nathan