High CPU usage of wireplumber and pipewire on imx6

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello everyone,
Hello George,

I was checking the latest changes of pipewire and wireplumper on IMX6 and I encountered a strange issue. The cpu usages of wireplumber and pipewire were too high.
I had to change log.level in pipewire.conf from 2 (warning)  to 4 (debug) to reduce cpu usages of wireplumber (from 75.9% ) and pipewire(from 22.1%).
Changing the log.level in pipewire.conf or wireplumber.conf from warning to debug solved the cpu usage issues and I was able to play audio with pipewiresink successfully, but I'm not sure if that is a really good solution. 
Any idea about what is really missing?
I haven't changed anything in pipewire configurations and only changed 30-alsa-monitor.lua file as following to add imx6:

/etc/wireplumber/config.lua.d/30-alsa-monitor.lua:
-- ALSA monitor config file --

alsa_monitor = {}

alsa_monitor.properties = {
  ["alsa.jack-device"] = false,
  ["alsa.reserve"] = false,
}

alsa_monitor.rules = {
  -- disable ACP (PulseAudio-like profiles)
  {
    matches = {
      {
        { "device.name", "matches", "alsa_card.*" },
      },
    },
    apply_properties = {
      ["api.alsa.use-acp"] = false,
    },
  },

  --
  -- Bump priority of well-known output devices
  -- Higher priority means it gets selected as the default if it's present
  --

  -- USB card
  {
    matches = {
      {
        { "node.name", "matches", "alsa_output.*" },
        { "api.alsa.card.driver", "=", "USB-Audio" },
      },
    },
    apply_properties = {
      ["priority.driver"]        = 1300,
      ["priority.session"]       = 1300,
    }
  },

  -- fiberdyne amp
  {
    matches = {
      {
        { "node.name", "matches", "alsa_output.*" },
        { "api.alsa.card.id", "=", "ep016ch" },
      },
    },
    apply_properties = {
      ["priority.driver"]        = 1200,
      ["priority.session"]       = 1200,
    }
  },

  -- well-known internal devices
  {
    matches = {
      {
        -- ak4613
        { "node.name", "matches", "alsa_output.*" },
        { "api.alsa.card.id", "=", "ak4613" },
        { "api.alsa.pcm.device", "=", "0" },
      },
      {                                                                  
        -- imx6solo                                                        
        { "node.name", "matches", "alsa_output.*" },                      
        { "api.alsa.card.id", "=", "tlv320aic3106" },        
      },
      {
        -- dra7xx
        { "node.name", "matches", "alsa_output.*" },
        { "api.alsa.card.id", "=", "DRA7xx-EVM" },
      },
      {
        -- imx8mq
        { "node.name", "matches", "alsa_output.*" },
        { "api.alsa.card.id", "=", "wm8524audio" },
      },
      {
        -- rcarsound
        { "node.name", "matches", "alsa_output.*" },
        { "api.alsa.card.id", "=", "rcarsound" },
        { "api.alsa.pcm.device", "=", "0" },
      },
      {
        -- rpi3
        { "node.name", "matches", "alsa_output.*" },
        { "api.alsa.pcm.name", "=", "bcm2835 ALSA" },
      },
    },
    apply_properties = {
      ["priority.driver"]        = 1100,
      ["priority.session"]       = 1100,
    }
  },

  --
  -- Same for input devices
  --

  -- USB card
  {
    matches = {
      {
        { "node.name", "matches", "alsa_input.*" },
        { "api.alsa.card.driver", "=", "USB-Audio" },
      },
    },
    apply_properties = {
      ["priority.driver"]        = 2300,
      ["priority.session"]       = 2300,
    }
  },

  -- microchip mic
  {
    matches = {
      {
        { "node.name", "matches", "alsa_input.*" },
        { "api.alsa.card.id", "=", "ep811ch" },
      },
    },
    apply_properties = {
      ["priority.driver"]        = 2200,
      ["priority.session"]       = 2200,
    }
  },

  -- well-known internal devices
  {
    matches = {
      {
        -- ak4613
        { "node.name", "matches", "alsa_input.*" },
        { "api.alsa.card.id", "=", "ak4613" },
      },
      {
        -- dra7xx
        { "node.name", "matches", "alsa_input.*" },
        { "api.alsa.card.id", "=", "DRA7xx-EVM" },
      },
      {
        -- imx8mq
        { "node.name", "matches", "alsa_input.*" },
        { "api.alsa.card.id", "=", "wm8524audio" },
      },
      {
        -- rcarsound
        { "node.name", "matches", "alsa_input.*" },
        { "api.alsa.card.id", "=", "rcarsound" },
      },
    },
    apply_properties = {
      ["priority.driver"]        = 2100,
      ["priority.session"]       = 2100,
    }
  },
}

function alsa_monitor.enable()
  load_monitor("alsa", {
    properties = alsa_monitor.properties,
    rules = alsa_monitor.rules,
  })
end

--
Best regards
Ehsan
_._,_._,_

Links:

You receive all messages sent to this group.

View/Reply Online (#9194) | Reply To Group | Reply To Sender | Mute This Topic | New Topic
Your Subscription | Contact Group Owner | Unsubscribe [list-automotive-discussions82@xxxxxxxxxxx]

_._,_._,_

[Index of Archives]     [LARTC]     [Bugtraq]     [Yosemite Forum]     [Photo]

  Powered by Linux