Re: Transport problem

Ted Felix <ted-Ll1PANez7xxWk0Htik3J/[email protected]>
Newsgroups gmane.comp.audio.rosegarden.user
Message-ID <[email protected]>
   Will, can you go through this first draft series of steps on the 
problematic box and let me know if it finds the issue?  Thanks.

Boot into the problematic kernel.

Confirm that it is a preemptible kernel.

     $ grep -i config_preempt= /boot/config-$(uname -r)
     CONFIG_PREEMPT=y

If you don't see "CONFIG_PREEMPT=y" then you need to install a 
preemptible kernel.

Check the grub configuration to make sure nothing is specified on the 
kernel command line related to preemption.

     $ grep -i preempt /etc/default/grub

You should either see nothing or "preempt=full" along with possibly 
other options.  Anything else might mean trouble and requires a change 
to your grub config.

Check for voluntary preemption.  (Not sure how this fits into 
everything, but it might cause problems and need some further 
investigation.)

     $ grep -i preempt_voluntary /boot/config-$(uname -r)
     # CONFIG_PREEMPT_VOLUNTARY is not set

Ted.


On 2/19/23 11:48 AM, Ted Felix wrote:
>    On second thought...  We've been here before.  From my Linux MIDI Guide:
> 
> --------
> Note: There are variations on PREEMPT that are less than ideal. 
> "DYNAMIC_PREEMPT" allows PREEMPT to be turned on and off in the kernel 
> command line options (preempt=full). You'll need to check your GRUB 
> configuration to make sure this is either set to "preempt=full" or not 
> set at all (the default is "full") in "GRUB_CMDLINE_LINUX_DEFAULT=". You 
> can check the setting after boot with "sudo dmesg | grep preempt". There 
> is also PREEMPT_VOLUNTARY which is somewhere between "NONE" and 
> "PREEMPT". You'll want to avoid this as audio requires the best possible 
> real-time performance.
> --------
> 
>    I should probably make that a bit more prominent now that we are 
> running into it for real.  Like move it up to the "things you'll need" 
> section at the very top.
> 
> Ted.
> 
> On 2/19/23 8:52 AM, Ted Felix wrote:
>>    We rely completely on ALSA for timer stuff.  The key routine for 
>> setting the timer in RG is:
>>
>> AlsaDriver::setCurrentTimer()
>>
>>    Unless there is a bug in there (which there may very well be, the 
>> ALSA documentation is incomplete and in many cases incorrect), the 
>> problems tend to be due to bugs in ALSA or the kernel.  They usually 
>> get sorted over time by the ALSA folks.  If they notice them.  This 
>> one seems like an interesting combination of requirements to reproduce 
>> and thus might fly under their radar.
>>
>>    I recommend building the latest kernel and seeing if that fixes the 
>> issue.  My three-year-old Debian/Ubuntu oriented notes are here if you 
>> need:
>>
>> http://www.tedfelix.com/linux/kernel-build.html
>>
>>    In general, it's really easy to do.
>>
>>    If it's still there, a bug report for the ALSA folks seems like the 
>> way to go.  They can help find the issue in ALSA, or even in 
>> Rosegarden if that's where the problem is.
>>
>> Ted.
>>
>> On 2/11/23 4:42 AM, Will Godfrey wrote:
>>> Recently I found Rosegarden was losing the timer source, and the 
>>> transport was
>>> freezing - sometimes for nearly a second after which it would send a 
>>> bunch of
>>> notes, then carry on as normal.
>>>
>>> It was some time before I realised it only happened on my Ryzen 5 
>>> machine (the
>>> one I use for music) and not on my office Intel one. I hadn't made 
>>> any changes
>>> to the system and got sidetracked into thinking maybe I'd somehow 
>>> managed to
>>> get infected with some malware. However I eventually remembered I'd 
>>> done a
>>> normal devuan update. The only significant change was the Linux 
>>> kernel V5.10 to
>>> V 6.1. Rolling that back cured the problem.
>>>
>>> Asking some questions on-line identified the problem.
>>>
>>> First off, I use the RT-Preemt kernel - the 'normal' one doesn't have 
>>> the issue
>>> at all.
>>>
>>> Secondly, the Ryzen has the AMD equivalent of hyper-threading, my 
>>> older Intel
>>> doesn't.
>>>
>>> Finally, since Linux V5.12 the scheduler has been modified to allow 
>>> dynamic
>>> preemption. Disabling this in the BIOS cures the problem, albeit with 
>>> a very
>>> small loss of performance.
>>>
>>> I wonder if there should be another look at how Rosegarden does it's 
>>> timing. I
>>> did try to set the timing source to the audio hardware. It seemed to 
>>> recognise
>>> it, but actually totally ignored it. Saving and reloading showed no 
>>> time source
>>> at all, yet still ran as if it was on System Timer.
>>>
>>
>>
>> _______________________________________________
>> Rosegarden-user mailing list
>> [email protected] - use the link below to unsubscribe
>> https://lists.sourceforge.net/lists/listinfo/rosegarden-user
> 
> 
> _______________________________________________
> Rosegarden-user mailing list
> [email protected] - use the link below to unsubscribe
> https://lists.sourceforge.net/lists/listinfo/rosegarden-user


_______________________________________________
Rosegarden-user mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.