Giter VIP home page Giter VIP logo

Comments (4)

liammcdermott avatar liammcdermott commented on June 8, 2024

@fruitchewy I've been experiencing the same thing for months, and figured out it was system76-scheduler one day after you! Thank you for making this issue, it's good to know I'm not alone.


Below are the niceness values on my machine. Before making the change in OP:

$ ps -elf | grep pipewire
4 S root        3713    2218  0  92  12 - 42747 -      21:52 ?        00:00:00 /usr/bin/system76-scheduler pipewire
0 S liam        6618    6603  1  69 -11 - 44977 ep_pol 21:58 ?        00:02:15 /usr/bin/pipewire
0 S liam        6634    6603  0  80   0 -  6583 ep_pol 21:58 ?        00:00:00 /usr/bin/pipewire -c filter-chain.conf
0 S liam        6635    6603  0  69 -11 - 46585 ep_pol 21:58 ?        00:01:12 /usr/bin/pipewire-pulse

Then after:

$ ps -elf | grep pipewire
0 S liam        6618    6603  1  65 -15 - 44977 ep_pol Mar24 ?        00:09:44 /usr/bin/pipewire
0 S liam        6634    6603  0  65 -15 -  6583 ep_pol Mar24 ?        00:00:00 /usr/bin/pipewire -c filter-chain.conf
0 S liam        6635    6603  0  65 -15 - 46585 ep_pol Mar24 ?        00:03:40 /usr/bin/pipewire-pulse
4 S root      100086  100077  0  92  12 - 23798 -      10:18 ?        00:00:00 /usr/bin/system76-scheduler pipewire

The before values don't seem right, niceness should be -15, not a mix of -12 and 0. The after values look correct and lead to less Rice Krispies effect in my recorded audio.

Could it be, system76-scheduler isn't able to set sched=(fifo)49 for some reason, and therefore doesn't set the other priorities (niceness, io)?

journalctl -u com.system76.Scheduler.service turns up no errors (or anything else relevant), just the service stopping and starting successfully on reboot.

System info:
Audient iD4 audio interface, this issue happens when recording audio (and when listening, but to a lesser extent).
Ubuntu 23.10
My system76-scheduler configuration is default, besides the change described in OP.

from system76-scheduler.

liammcdermott avatar liammcdermott commented on June 8, 2024

Just in case it's useful information, adding sched=(fifo)49 back into the sound-server profile -- and restarting the system76-scheduler service -- yields these results:

$ ps -elf | grep pipewire
0 S liam        6618    6603  1  10   - - 45014 ep_pol Mar24 ?        00:10:54 /usr/bin/pipewire
0 S liam        6634    6603  0  10   - -  6583 ep_pol Mar24 ?        00:00:00 /usr/bin/pipewire -c filter-chain.conf
0 S liam        6635    6603  0  10   - - 43519 ep_pol Mar24 ?        00:04:07 /usr/bin/pipewire-pulse
4 S root      109511  109502  0  92  12 - 23798 -      11:56 ?        00:00:00 /usr/bin/system76-scheduler pipewire

Edit: This looks better than my other results, since niceness values aren't applicable to processes with realtime priorities set (AFAICT, YMMV).

ps also showing realtime priorities:

$ sudo ps -e -o pid,uid,pri,nice,rtprio,vsz,rss,tty,stat,start,time,comm | grep -E 'PID|pipewire'
    PID   UID PRI  NI RTPRIO    VSZ   RSS TT       STAT  STARTED     TIME COMMAND
   7939  1000  89   -     49 141344 20924 ?        S<sl 13:16:20 00:07:21 pipewire
   7955  1000  89   -     49  26332  5888 ?        S<sl 13:16:20 00:00:00 pipewire
   7957  1000  89   -     49 167412 34064 ?        S<Lsl 13:16:20 00:05:08 pipewire-pulse

from system76-scheduler.

liammcdermott avatar liammcdermott commented on June 8, 2024

I've been testing playing and recording audio over the past couple of days, and mine is now good. Here's what I did:

  • My niceness values are the same as in my last ps example above ^^, i.e. realtime priorities are in effect, after I restarted system76-scheduler.
  • In /etc/default/grub I added threadirqs to GRUB_CMDLINE_LINUX_DEFAULT

I'm not sure the realtime priorities will stick after a reboot, I'll have to wait and see.

from system76-scheduler.

mmstick avatar mmstick commented on June 8, 2024

Feel free to submit a PR with the priority adjustments

from system76-scheduler.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.