> On Aug 17, 2020, at 6:20 PM, Bruce Fields <bfields@xxxxxxxxxxxx> wrote: > > On Sun, Aug 16, 2020 at 04:46:00PM -0400, Chuck Lever wrote: >> Hi Bruce- >> >>> On Aug 11, 2020, at 9:31 AM, Chuck Lever <chuck.lever@xxxxxxxxxx> wrote: >>> >>>> On Aug 10, 2020, at 4:10 PM, Bruce Fields <bfields@xxxxxxxxxxxx> wrote: >>>> >>>> On Mon, Aug 10, 2020 at 04:01:00PM -0400, Chuck Lever wrote: >>>>> Roughly the same result with this patch as with the first one. The >>>>> first one is a little better. Plus, I think the Solaris NFS server >>>>> hands out write delegations on v4.0, and I haven't heard of a >>>>> significant issue there. It's heuristics may be different, though. >>>>> >>>>> So, it might be that NFSv4.0 has always run significantly slower. I >>>>> will have to try a v5.4 or older server to see. >>>> >>>> Oh, OK, I was assuming this was a regression. >>> >>> Me too. Looks like it is: NFSv4.0 always runs slower, but I see >>> it get significantly worse between v5.4 and 5.5. I will post more >>> quantified results soon. >> >> It took me a while to get plausible bisection results. The problem >> appears in the midst of the NFSD filecache patches merged in v5.4. > > Well, that's interesting. > >> In order of application: >> >> 5920afa3c85f ("nfsd: hook nfsd_commit up to the nfsd_file cache") >> 961.68user 5252.40system 20:12.30elapsed 512%CPU, 2541 DELAY errors >> These results are similar to v5.3. >> >> fd4f83fd7dfb ("nfsd: convert nfs4_file->fi_fds array to use nfsd_files") >> Does not build Quick follow-up: I reverted a couple of hunks that appear to be for the next commit, and fd4f83fd7dfb builds now. Tested, and this is the bad commit (where the performance regression starts). >> eb82dd393744 ("nfsd: convert fi_deleg_file and ls_file fields to nfsd_file") >> 966.92user 5425.47system 33:52.79elapsed 314%CPU, 1330 DELAY errors >> >> Can you take a look and see if there's anything obvious? > > Unfortunately nothing about the file cache code is very obvious to me. > I'm looking at it.... > > It adds some new nfserr_jukebox returns in nfsd_file_acquire. Those > mostly look like kmalloc failures, the one I'm not sure about is the > NFSD_FILE_HASHED check. > > Or maybe it's the lease break there. > > --b. -- Chuck Lever