System mode: SHM avaliblity.

Bug #1007866 reported by Mike Mestnik
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
pulseaudio (Ubuntu)
Expired
Undecided
Unassigned

Bug Description

Hello,
  Let start with the most basic, I fully understand that System mode is taboo and unsupported by upstream. I understand there reasoning, well I don't get the part about "You shouldn't use system mode because we refuse to offer SHM support for it." That's just the pot calling the kettle black.

In any case I'm using PA in system mode because I haven't been able to use dmix for various reasons, the closest I got was after 5 or 6 hacks I got silence and surround sound was forever out of my reach. I'm sure there are other vary rare cases where System mode may be the only logical option. What I needed out of dmix was to mix sound from several users, libvirt and others.

Regardless of why, you should just take it on my authority that I have good reason for configuring a system this way.

Attached you should find my /etc/default/pulseaudio file, it clearly is configured to forcibly enable SHM. However as the documentation suggests this feature is disabled in system mode. I know X does SHM and it nearly always runs as another user, so it should be technically possible... Politics and opinions aside.

Would a patch for this be accepted into Ubuntu?

ProblemType: Bug
DistroRelease: Ubuntu 12.04
Package: pulseaudio 1:1.1-0ubuntu15
ProcVersionSignature: Ubuntu 3.2.0-23.31-lowlatency-pae 3.2.14
Uname: Linux 3.2.0-23-lowlatency-pae i686
AlsaVersion: Advanced Linux Sound Architecture Driver Version 1.0.24.
ApportVersion: 2.0.1-0ubuntu5
Architecture: i386
ArecordDevices:
 **** List of CAPTURE Hardware Devices ****
 card 0: SB [HDA ATI SB], device 0: VT2020 Analog [VT2020 Analog]
   Subdevices: 2/2
   Subdevice #0: subdevice #0
   Subdevice #1: subdevice #1
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC1: cheako 6904 F.... xfce4-volumed
 /dev/snd/controlC0: cheako 6904 F.... xfce4-volumed
Card0.Amixer.info:
 Card hw:0 'SB'/'HDA ATI SB at 0xfe3f8000 irq 16'
   Mixer name : 'VIA VT2020'
   Components : 'HDA:11060441,104383e4,00100100'
   Controls : 46
   Simple ctrls : 24
Card1.Amixer.info:
 Card hw:1 'HDMI'/'HDA ATI HDMI at 0xfe9ec000 irq 88'
   Mixer name : 'ATI R6xx HDMI'
   Components : 'HDA:1002aa01,00aa0100,00100000'
   Controls : 6
   Simple ctrls : 1
Card1.Amixer.values:
 Simple mixer control 'IEC958',0
   Capabilities: pswitch pswitch-joined penum
   Playback channels: Mono
   Mono: Playback [on]
Date: Sat Jun 2 11:36:09 2012
PulseList: Error: command ['pacmd', 'list'] failed with exit code 1: No PulseAudio daemon running, or not running as session daemon.
SourcePackage: pulseaudio
UpgradeStatus: Upgraded to precise on 2012-01-03 (151 days ago)
dmi.bios.date: 02/17/2011
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: 1902
dmi.board.asset.tag: To Be Filled By O.E.M.
dmi.board.name: Crosshair IV Formula
dmi.board.vendor: ASUSTeK Computer INC.
dmi.board.version: Rev 1.xx
dmi.chassis.asset.tag: Asset-1234567890
dmi.chassis.type: 3
dmi.chassis.vendor: Chassis Manufacture
dmi.chassis.version: Chassis Version
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvr1902:bd02/17/2011:svnSystemmanufacturer:pnSystemProductName:pvrSystemVersion:rvnASUSTeKComputerINC.:rnCrosshairIVFormula:rvrRev1.xx:cvnChassisManufacture:ct3:cvrChassisVersion:
dmi.product.name: System Product Name
dmi.product.version: System Version
dmi.sys.vendor: System manufacturer
modified.conffile..etc.default.pulseaudio: [modified]
modified.conffile..etc.pulse.daemon.conf: [modified]
modified.conffile..etc.pulse.system.pa: [modified]
mtime.conffile..etc.default.pulseaudio: 2012-06-01T23:52:21.454150
mtime.conffile..etc.pulse.daemon.conf: 2012-05-04T20:03:56.466470
mtime.conffile..etc.pulse.system.pa: 2012-05-31T19:30:49.734907

Revision history for this message
Mike Mestnik (cheako) wrote :
Revision history for this message
Pali (pali) wrote :

Is that patch available somewhere?

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in pulseaudio (Ubuntu):
status: New → Confirmed
Revision history for this message
Mike Mestnik (cheako) wrote :

No, there is not. I wanted to ensure it had a chance of being accepted prior to working on it. I've hundreds of patches that I alone maintain and I'm sick of it.

Revision history for this message
Pali (pali) wrote :

Mike Mestnik (cheako), see discussion about this feature request on pulseaudio ML:
http://thread.gmane.org/gmane.comp.audio.pulseaudio.general/22323

Looks like something like that could be accepted into upstream pulseaudio...

Revision history for this message
Mike Mestnik (cheako) wrote :

Cool.

I think the safe way to do it is much more complicated than just turning on the existing SHM vector.

From what I understand it should work like so...

Client connect to stream or dgram socket and (post auth) establishes that both parties believe they are on he same host and server offers to create SHM buffers for the client to use. The client may close the socket once SHM is setup, if it's done.

Server should be able to query the socket, worst case using ident, to see what user is on the other end and set perms appropriately. The server might trust the client to supply perms and does so while applying a mask for sanity purposes.

SHM buffers are per socket connection/pid and a single pid can ask for more than one, with some upper limit defined to prevent DOS.

This adds more commands into the PA server and client, but I feel that both modes would benefit from a more robust SHM system. Having more than a single thread(client/server threads makes for a minimum of two) introduces locking concerns that just add latency.

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Thank you for reporting this bug to Ubuntu.
Ubuntu 12.04 (precise) reached end-of-life on April 28, 2017.

See this document for currently supported Ubuntu releases:
https://wiki.ubuntu.com/Releases

We appreciate that this bug may be old and you might not be interested in discussing it any more. But if you are then please upgrade to the latest Ubuntu version and re-test.

Changed in pulseaudio (Ubuntu):
status: Confirmed → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for pulseaudio (Ubuntu) because there has been no activity for 60 days.]

Changed in pulseaudio (Ubuntu):
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.