[lustre-devel] Current results and status of my upstream work

Dilger, Andreas andreas.dilger at intel.com
Mon Mar 26 23:17:15 PDT 2018


On Mar 26, 2018, at 23:32, NeilBrown <neilb at suse.com> wrote:
> 
> One failure that I have looked into but haven't posted a patch for yet,
> is that sometimes
>        LINVRNT(io->ci_state == CIS_IO_GOING || io->ci_state == CIS_LOCKED);
> in cl_io_read_ahead() fails.  When it does, the value is CIS_INIT.
> Tracing through the code, it seem that CIS_INIT is an easy possibility
> since 1e1db2a97be5 ("staging: lustre: clio: Revise read ahead implementation")
> However CIS_IO_GOING and CIS_LOCKED do also happen and I cannot see
> that patht that leads to those - so I didn't feel that I could
> correctly explain the patch.
> I currently have:
> 
>       LINVRNT(io->ci_state == CIS_IO_GOING || io->ci_state == CIS_LOCKED ||
>               io->ci_state == CIS_INIT);
> Do you have any idea if that is right?

It is worthwhile to mention that LINVRNT() doesn't get enabled very often, since this enables some very expensive correctness tests.  This means it is entirely possible that this assertion is incorrect since the referenced commit.

Possibly Jinshan can comment?

Cheers, Andreas
--
Andreas Dilger
Lustre Principal Architect
Intel Corporation









More information about the lustre-devel mailing list