Re: [PATCH v3 0/6] Composefs: an opportunistically sharing verified image filesystem

From: Jingbo Xu
Date: Wed Feb 01 2023 - 07:40:03 EST




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