On 2/1/23 5:52 PM, Alexander Larsson wrote: > On Wed, 2023-02-01 at 16:59 +0800, Jingbo Xu wrote: >> >> I redid the test with suggestion from Amir, with all files inside the >> erofs layer are redirected to the same lower block, e.g. >> "/objects/00/014430a0b489d101c8a103ef829dd258448a13eb48b4d1e9ff0731d1 >> e82b92". >> >> The result is shown in the fourth line. >> >> | uncached(ms)| cached(ms) >> ----------------------------------|-------------|----------- >> composefs (with digest) | 326 | 135 >> erofs (w/o -T0) | 264 | 172 >> erofs (w/o -T0) + overlayfs | 651 | 238 >> erofs (hacked and redirect to one | | >> lower block) + overlayfs | 400 | 230 >> >> It seems that the "lazy lookup" in overlayfs indeed optimizes in this >> situation. >> >> >> The performance gap in cached situation (especially comparing >> composefs >> and standalone erofs) is still under investigation and I will see if >> there's any hint by perf diff. > > The fact that plain erofs is faster than composefs uncached, but slower > cached is very strange. Also, see my other mail where erofs+ovl cached > is slower than squashfs+ovl cached for me. Something seems to be off > with the cached erofs case... > I tested erofs with ACL disabled (see fourth line). | uncached(ms)| cached(ms) ----------------------------------|-------------|----------- composefs (with digest) | 326 | 135 squashfs (uncompressed) | 406 | 172 erofs (w/o -T0) | 264 | 172 erofs (w/o -T0, mount with noacl) | 225 | 141 The remained perf difference in cached situation might be noisy and may be due to the difference of test environment. -- Thanks, Jingbo