[prev in list] [next in list] [prev in thread] [next in thread] 

List:       fedora-devel-list
Subject:    Re: Has something changed with RPMS?
From:       Panu Matilainen <pmatilai () redhat ! com>
Date:       2020-06-03 7:46:34
Message-ID: 13335d7b-6078-119f-017e-5a0a611fd962 () redhat ! com
[Download RAW message or body]

On 6/3/20 10:18 AM, Panu Matilainen wrote:
> On 6/3/20 9:27 AM, Adam Williamson wrote:
>> On Wed, 2020-06-03 at 09:06 +0300, Panu Matilainen wrote:
>>> On 6/2/20 7:25 PM, Adam Williamson wrote:
>>>> On Tue, 2020-06-02 at 11:05 -0500, Richard Shaw wrote:
>>>>> On Tue, Jun 2, 2020 at 10:25 AM Adam Williamson 
>>>>> <adamwill@fedoraproject.org>
>>>>> wrote:
>>>>>
>>>>>> On Tue, 2020-06-02 at 06:34 -0500, Richard Shaw wrote:
>>>>>>> boost-devel, nosync=False, bootstrap=True
>>>>>>> real 1m13.294s
>>>>>>> user 0m6.723s
>>>>>>> sys 0m2.761s
>>>>>>> ---
>>>>>>>
>>>>>>> So it looks like boostrap=True and nosync=False is the culprit, 
>>>>>>> which I
>>>>>>> inadvertantly got myself into. I did have either set and of 
>>>>>>> course nosync
>>>>>>> would be False by default and it looks like bootstrap=True by 
>>>>>>> default for
>>>>>>> rawhide.
>>>>>>
>>>>>> When you say 'bootstrap', which setting do you mean exactly? I don't
>>>>>> see one that's just called 'bootstrap', I see --(no-)bootstrap-chroot
>>>>>> and --(no-|use-)bootstrap-image .
>>>>>>
>>>>>
>>>>> $ cat .config/mock.cfg
>>>>> config_opts['cleanup_on_failure'] = False
>>>>> config_opts['nosync'] = True
>>>>> config_opts['use_bootstrap'] = False
>>>>>
>>>>> I got this from the documentation, maybe should have searched a bit 
>>>>> more,
>>>>> didn't think there was more than one bootstrap option.
>>>>
>>>> That seems to be the same as --bootstrap-chroot , i.e. --no-bootstrap-
>>>> chroot should set it False.
>>>>
>>>> So, if I explicitly set nosync = True in mock.cfg it goes back to being
>>>> as fast as I remember. But that's somewhat odd, because:
>>>>
>>>> a) I definitely didn't have explicit config to turn nosync on before
>>>> b) I didn't actually have the nosync packages installed at all until
>>>> after I hit this problem
>>>>
>>>> so it seems like somehow before I was getting fast performance without
>>>> using nosync, but now I need it? Weird...
>>>
>>> Okay, that's useful. I'm not at all familiar with how this all actually
>>> works in mock but I see that nosync.so is being copied around etc, and
>>> with bootstrap introducing an extra layer in between, it's not hard to
>>> imagine a subtle bug or two in there. Just a guess though.
>>
>> The thing is, I'm really pretty sure I *wasn't using* mock's nosync
>> support before. I don't see how I could have been, since I didn't have
>> nosync installed.
> 
> Ah, sorry I misunderstood that a bit originally.
> 
>> So this still seems kinda mysterious. Either somehow
>> it wasn't fsync'ing before but it is now, or somehow disk writing
>> performance on my system fell off a cliff?
>>
>> I'll try and poke it some more tomorrow if I can, try some old kernels
>> and/or old mock builds or something.
>>
> 
> Found it.
> 
> Nothing to do with databases, it's the new automatic SSD detection which 
> also enables _flush_io to fsync files as we go during transactions. It 
> does this on the grounds that it's good for the system otherwise (avoids 
> trashing the caches and io peaks) and that it's not prohibitively 
> expensive on SSD, but I guess this here quite clearly shows that it 
> actually is.
> 
> Will fix shortly.

Okay, fixed in rpm-4.16.0-0.beta1.2 in rawhide.

For it to take effect though, the bootstrap-root needs to be updated (or 
recreated). I don't know whether mock updates that automatically and if 
it does, under what circumstances.

That's also how this all relates to the bootstrap stuff:
When using mock without bootstrap, host rpm config is used. On Fedora < 
33 hosts, rpm doesn't automatically enable the io-flushing so things are 
fast if not using bootstrap, or building for F < 33. And OTOH if running 
from a rawhide host things would be slow unless you were building for F 
< 33 with a bootstrap.

And that's also why you didn't need nosync before but suddenly it makes 
a huge difference.

	- Panu -
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-leave@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic