A On 18 Dec 2010 20:33, <meego-handset-requ...@lists.meego.com> wrote: > Send MeeGo-handset mailing list submissions to > meego-handset@lists.meego.com > > To subscribe or unsubscribe via the World Wide Web, visit > http://lists.meego.com/listinfo/meego-handset > or, via email, send a message with subject or body 'help' to > meego-handset-requ...@lists.meego.com > > You can reach the person managing the list at > meego-handset-ow...@lists.meego.com > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of MeeGo-handset digest..." > > > Today's Topics: > > 1. any performance tests with btrfs SSD mode turned off? > (Niels Mayer) > 2. Re: [MeeGo-community] how to compile Handset UX source > code---URGENT! (Vilon Tao) > 3. Re: Meego pulseaudio "compliance" and "enforcement" (was Re: > Enabling Speakerphone) (Marco Ballesio) > 4. Re: Meego pulseaudio "compliance" and "enforcement" (was Re: > Enabling Speakerphone) (Niels Mayer) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Fri, 17 Dec 2010 19:14:06 -0800 > From: Niels Mayer <nielsma...@gmail.com> > To: meego-handset@lists.meego.com > Subject: [Meego-handset] any performance tests with btrfs SSD mode > turned off? > Message-ID: > <aanlktimt8ot+fk-dn_tn18xjjncsmvzlg1rqewns8...@mail.gmail.com> > Content-Type: text/plain; charset=UTF-8 > > I note the n900 running Meego boots with btrfs SSD mode enabled. > > A May 2009 article indicates there were performance problems w/ SSD Btrfs: > http://www.phoronix.com/scan.php?page=article&item=btrfs_ssd_mode&num=1 > > Have these been resolved in later kernels and revisions of Btrfs, such > as found in Meego? > > The article "Testing Out The SSD Mode In Btrfs" concludes: > "If you were hoping to simply mount a Btrfs file-system on a > solid-state drive and expect it to be faster, guess again. Simply > mounting the file-system with the SSD option in all but one test had > either led to the same level of performance or actually much worse > performance. The OCZ Vertex SATA 2.0 SSD did not play nicely with > disabling the write cache, but fortunately we have other drives and > test systems around for benchmarking. We will continue studying the > SSD performance on Btrfs and other Linux file-systems and will be back > with more results as they are completed. We will also be testing out > Btrfs with the latest Linux 2.6.30 kernel, etc. Btrfs right now does > not have a quantitative performance advantage over the EXT4 > file-system as our previous tests have shown, and this SSD mount > option is no magic bullet, at least not yet." > > Do such results apply to the N900 handset? Also, what are the effects > of running Btrfs filessytem in SSD-mode on the external memory card on > the handset, versus a more traditional SSD configuration that emulates > a SATA interface? > > Niels > http://nielsmayer.com > > > ------------------------------ > > Message: 2 > Date: Sat, 18 Dec 2010 20:07:14 +0800 > From: Vilon Tao <vilon...@gmail.com> > To: Shane Bryan <shane.br...@linux.intel.com> > Cc: "meego-handset@lists.meego.com" <meego-handset@lists.meego.com> > Subject: Re: [Meego-handset] [MeeGo-community] how to compile Handset > UX source code---URGENT! > Message-ID: > <aanlktikh2tzstgdjyko988pgbzcmnnnb01c-jwmja...@mail.gmail.com> > Content-Type: text/plain; charset=ISO-8859-1 > > I also got the similar issue when I used Qt Creator for MeeGoSDK_1.1 > handset to open the project such as meego-handset-email and then build > it. It is told that: > "qmailstore.h is missed in meego-handset-email\src\main.cpp". > > This file is belong to QT messageframework. > > Do we have an easy way to build the project under > http://meego.gitorious.org/meego-handset-ux? > > Thanks, > Vilon > > On 12/15/10, Shane Bryan <shane.br...@linux.intel.com> wrote: >> On Wed, Dec 15, 2010 at 11:41:33AM +0800, alan.liu wrote: >>> If I download the meego source project via this command, it will cost >>> a long time. repo init -u >>> git://gitorious.org/repo-for-meego/meego_manifest.git >>> >>> So, I download the tar file from WEB one by one which module names like >>> libseaside/ sms / phone dialer and so on. >> >> I'm not sure where you are getting these tar files from, but I would >> recommend using git to clone the source trees from gitorious, then use >> qmake in each project to generate the Makefiles. >> >> Without seeing the full build logs and errors, there's no way I, or >> anyone else, can really help you, but my guess is that the Qt install >> we used to generate the tar files used to create the RPM packages must >> differ from yours, making the inlcuded Makefiles invalid for building >> on your system. >> >> I'm pretty sure you can even point QtCreator to a local git clone directly, >> so try that too. >> >> Otherwise, you'll need to send more details and/or full build logs with >> error messages. >> >> What does "qmake -query" say? >> >>> When I've downloaded them, try to compile them with QT Creator, it always >>> gives errors like >>> :-1: error: [manager_interface.h] Error 2 >>> error: gen_seasidemodule.cpp is needed >>> >>> What I want is that I hope to compile the Meego Handset UX source project. >>> That's all! Pls give me some advice, it is a little bit URGENT. >> >> Sorry for you're urgency... but we're not doing anything "special" or >> unique, >> so... try other methods like I suggest above. >> >> Shane... >> _______________________________________________ >> MeeGo-handset mailing list >> MeeGo-handset@lists.meego.com >> http://lists.meego.com/listinfo/meego-handset >> > > > ------------------------------ > > Message: 3 > Date: Sat, 18 Dec 2010 14:42:48 +0200 > From: Marco Ballesio <gibrova...@gmail.com> > To: Niels Mayer <nielsma...@gmail.com> > Cc: meego-handset@lists.meego.com, Linux Audio Developers > <linux-audio-...@lists.linuxaudio.org>, jaska.uimo...@nokia.com > Subject: Re: [Meego-handset] Meego pulseaudio "compliance" and > "enforcement" (was Re: Enabling Speakerphone) > Message-ID: > <aanlktim0imdpykvszx5w9s2h9torgkq_8dcvc2dcw...@mail.gmail.com> > Content-Type: text/plain; charset=windows-1252 > > Hi, > > sorry for the late reply but, whew, this was really long, definitely > more than what my poor brain can handle in a single bunch ;). Maybe we > could split this into a "Resource Policy Framework" and "Pulseaudio on > Embedded" couple of threads. > > As a general comment on PA, it may appear odd but when I started > working with it I shared 100% of your considerations. Working with it > (not ON it), I started realising that, ok, it may not be perfect (and > which software actually is?) but it brings definitely more benefits > than troubles to the system. See my notes below for more details. > > ..snip.. > >> >> Hopefully there's more than just source-code to describe the policies >> and enforcement. > > Maybe you've read in some other of my posts here and there, I'm trying > to get a Resource Policy Framework wiki somewhere. In the meanwhile, > documents are scarce but present: > > - The MeeGo conference presentation: > > http://conference2010.meego.com/session/policy-framework-flexible-way-orchestrate-multiple-functionalities-meego-devices > > Does not say too much, but it comes with some slides and many "mmmmh" > (keepalive signals). > > - The resource policy application developer's manual: > http://wiki.meego.com/images/Meego-policy-framework-developer-guide.pdf > > Mysteriously, it's not linked or referred to anywhere.. at least, now > it's on this thread. > > - The source code: it may twist more than one nose but, at the end, I > always like to check in the sources before/after Googling. Documents > may be obsolete (who knows?) or expose a partial view. Code can't ;). > Not that I want to say with this that we don't need more documents > about the Resource Policy Framework... > >> Is there a design document stating the >> "organizational" or "legal" or "human" reasons for said policies and >> enforcements? > > My pointers of above may begin to satiate your hunger (appetisers?). > >> >> And, as a developer, where is the documentation for the appropriate >> layer to use, the appropriate API, etc -- e.g. for the original >> question that started this thread -- how to switch on/off speakers, >> FM-radio transmitter, ?etc on handset. ( cf my original reply >> http://lists.meego.com/pipermail/meego-handset/2010-December/000066.html >> ) > > Unfortunately, this is still in the "dark side" of the documentation, > which is currently application-centric. Hopefully one day we'll have > an "Adaptation developer's guide", in the meanwhile, a good starting > point may be checking the sources, the N900/Meego ruleset and posting > questions here. If it's not enough, we may set up an IRC channel (if > there's enough interest)... > >> >> Something high-level like the following Maemo document would be very >> helpful -- but I have been unsuccessful finding such documentation for >> Meego: http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Architecture/Multimedia_Domain > > See my notes above about the project wiki. Your pointers are > definitely good hints, thanks. > >> >> Also, why not use ALSA use-case-manager: >> http://opensource.wolfsonmicro.com/node/14 >> UCM appears to be scheduled for other distros "handset" work: >> https://wiki.ubuntu.com/Specs/N/ARM/AlsaScenarioManager > > this project covers the audio-specific cases: for what I understood it > might very well be used as an ALSA enforcement point in the Framework > so, more than compete with Resource Policy it would be complementary > in case you don't really want/need to use a sound server. BTW, I could > not find so much info, maybe you can help me to retrieve: > > - more than just source-code to describe how it works. > - the developer's documentation for the appropriate layer to use, etc. > - something like: > http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide/Architecture/Multimedia_Domain > > ..snip.. > > now, the pulseaudio cases. First of all, please note I'm not the best > advocate for it, btw my 0.05 ?. > > Posting some extracts of your comments to the PA mailing list will > definitely give you a better insight for the internals of the server. > >> Regarding my old nemesis, pulseaudio ( http://tinyurl.com/2976vu6 >> == http://old.nabble.com/uninstall-pulseaudio-to-increase-audio-app-stability-across-updates-(was-Re:-yum-update)-td27759501.html#a27759501 >> ), I think the only "elegant" thing about pulseaudio is that it's >> bluetooth handling works for those that care about bluetooth; ?given >> the number of bug-reports and incompatibilities pulseaudio generates >> in different distros, I'm not sure "elegant" is the right word.... > > And actually "elegant" was not referred to pulseaudio, but to the way > its ports can handle audio routing instead of using ALSA (they bring > better synchronisation). > > Yes, the sound server has shown instabilities in some cases and I > personally used to uninstall it on my Ubuntu box immediately after the > upgrades. Recently but many improvements have been made at a point > that, on a PC, I'm nowadays not seeing it anymore jumping to a steady > 30% of the CPU or completely jamming any audio output in the middle of > a movie. > > Another _personal_ feeling I had is that pulseaudio was pretty hard to > configure for a generic HW (like distros tend to do), but works pretty > well after being tuned for a given one (like 95% of embedded products > are). Very often the root issue may have been a wrong configuration > for your system. > >> >> From my position, as a multimedia/ALSA/linux-audio developer, having >> to go through pulseaudio sounds like an all-around bad idea, and to >> have "enforcement" or "compliance" ?attached makes it sound even >> worse. Tell me it ain't so! > > I can agree from a kernel/ALSA pov (everything in userland appears to > be less efficient than any kernel drivers ;) ), I strongly disagree > from the system architecture's one. Some points you should consider: > > - Audio outputs frequency tuning: in the real word a crappy speaker > costs less than a good one (strange?) so, unless you've a very high > target price, you'll usually have to take the maximum out of garbage > by "massaging" the output spectrum in order to get an adequate overall > transfer function. And this must work with all of the applications > -even the ones coming from third parties on which you don't have the > bare minimum control on- and different analog outputs (front, rear, > bt, ...). Not that pulseaudio comes with these features > out-of-the-box, but it's quite easy to plug them in. > > - Audio inputs: the dual of audio outputs. > > - Mixing: it's possible that users will want more than one application > accessing the audio output at the same time (e.g. navigator and car > radio) or that they'll want to switch bw two different applications > all of a sudden (e.g. radio and ringtone). In all these cases they'll > want a good mixing and no sudden power steps when the ringtone app > does not know about the volume level used for the radio. > > - Acoustic delay estimation: sitting in the middle of pulseaudio > (running as a real-time thread) it's easier to write a proper AEC. > Back to 2004 I've tried to grant, with a TI aic31, constant latencies > for both LEC and AEC by just using ALSA and the application... It took > a really long time to work. > > - It may not appear so, but it's energy-efficient (see my comments > below if you just jumped out of your chair). > > Now, I don't mean that those things can be handled only by pulseaudio. > Actually developers could write their own sound server, or use an > already available one, to do all of this, but.. > > - How long would it take to be better than pulseaudio? (e.g. wrt my > points above). > - Can it grant the same solid user base and portability across embedded HW? > - Could it grant the same level of contribution from companies with > solid experience on the subject? > - Are there architectural flaws for which pulseaudio couldn't > effectively handle these cases? If yes, has anybody tried to discuss > about them on the PA mailing list? > >> >> There is a growing class of applications that do not want or need >> pulseaudio around -- those using http://jackaudio.org/ . ?When the >> jack audio server launches, the first thing it does it use dbus to >> disable pulseaudio. Is that also non compliant? > > I've no religious issues against jack and actually I don't have that > much experience with it, so I'd like to know more about jack on > embedded. I'd like to know, for instance, how many embedded, low-power > devices are already using it and with which degree of success. Also it > would be great to know if anybody has interfaced it with a cellular > modem to handle Circuit-switched cellular calls, and if the device has > actually been certified for such a service in any countries. > >> >> It seems inappropriate to preclude an entire class of application -- >> real-time "pro" audio and video apps that utilize the Jack audio >> server to provide low-latency, tightly synchronized audio -- as needed >> for modern multimedia creation and playback. Perhaps such applications >> are a stretch for an OMAP3-class device, but given the many >> audio/media apps listed in http://omappedia.org/wiki/PEAP_Projects , >> clearly OMAP4 and beyond might not be, even on a puny "handset." Of >> course, those making such audio apps might sidestep pulseaudio >> compliance/latency/inefficiency issues by using >> http://opensoundcontrol.org/ and an external DAC ( >> http://gregsurges.com/tag/dac/ ). >> > > please correct me if I'm wrong, but if I understood well most of the > apps using _exclusively_ jack are aimed to audio/video > composition/editing. Now, as we are on the IVI ML I think it's quite a > strange use case (even though I must admit I don't know which > requirements you have). > >> Finally, it seems odd that in a "handset" environment, pulseaudio is >> an absolute requirement. To me, it is just a waste of batteries, > > see below (and above). > >> and a >> terrible source of unnecessary context switching and interrupts during >> audio playback. > > well, it runs as real-time priority, so it's executed when it's > scheduled. Context switches would not be different for any process > (e.g. jack) running with the same scheduling. > >> It's sort of like being forced to drive around in a >> gas-guzzling, oversized sport-utility vehicle with 10 foot tires and 5 >> feet of ground clearance -- just to drive to the market or work on a >> well-paved freeway on a summer's day -- even when one might prefer a >> bicycle, motorcycle, sports-car, subway, ?or whatever tool is best for >> the job. > > funnily, this is EXACTLY the same thing I thought the first time I > profiled pulseaudio on the N900, then I found some reasonable > explanation (scroll a little below). > > ..snip.. > >> Take for example HD audio/video playback -- something where you need a >> "sportscar" to get the latency and sample rate associated with the >> audio stream while also performing HD decoding (e.g. 16bit/96K audio >> is supported on omap3430 per >> http://and-developers.com/device_information ). Pulseaudio typically >> operates at a fixed rate and forces resampling to that rate, causing >> an oft perceptible loss in fidelity. > > Yes, this is a bad aspect, but it's actually possible to change the > output bitrate of the server (it depends on the port used). Maybe you > could query on the PA mailing list for more knowledge on the subject. > >> >> IMHO what is needed is not a "digital mixer" and resampler and extra >> user-space processing before going into the kernel and out to the >> sound hardware via ALSA drivers. We certainly need "use case >> management" and the notion of a digital patch bay, and some way of >> smoothly mixing between sounds, glitch free switching of sample rates >> at the ALSA level, and then choosing the direct path to hardware >> that'll best handle the "main audio task" we're doing -- e.g. playing >> music, watching a movie, making a phone call, or just using the screen >> UI. ?What isn't needed is "desktop networked audio" capabilities of >> pulseaudio, or any extra user-space streaming/mixing/resampling of >> signals. > > so we'll end up writing our own sound server or using a different one, > won't we? As an alternative, we may have to heavily modify ALSA to > suit our needs, and we'll not have yet covered all of the needed > features. > >> >> The inefficiencies introduced by pulseaudio is evidenced by the >> n900/meego-1.1 handset, which cannot maintain audio synchronization >> during audio or video playback if even the slightest trace of >> something else is going on, including a wireless network scan, or even >> just cursoring around in a networked terminal (which goes through the >> wireless stack in my setup). > > Personally, I would not say that MultiMedia with MeeGo on the N900 is > already at the same quality of Maemo 5. Lots of tuning is imho still > missing. > >> >> On Maemo/n900 note what happens when playing back an Mp3 -- pulseaudio >> consumes twice the resources at "high priority" of the decoding >> process: > > You must consider that here there many algorithms involved that > users/applications don't even know about, like the spectrum > optimisations I've been mentioning before. If you could run an > oprofile session over your tests you'd see that the actual CPU > attributable to PA is pretty lower than your figures. > > ..snip.. > >> I'm sure a simple experiment could determine exactly the "effect" of pulseaudio: >> >> Play the same playlist until the battery wears out using the same >> software player outputting first to pulseaudio (pref not through >> ALSA's pulseaudio driver because that wouldn't be "fair" to go through >> the kernel twice) then play the same through ALSA "dmix" interface, >> just to emulate pulseaudio's mixing/resampling functionality. > > As written above, PA is not only resampling and mixing here.. imho if > the user/the developer didn't have to adjust the system to work with > PA in order to achieve this, it's a success. The CPU usage comes from > the fact we're actually running something we need. > >> I would >> imagine the pure-ALSA solution would pass the "energizer bunny' test >> for more hours and far fewer kernel/userspace context switches. > > Sure it would, but with a lower set of features (and an higher cost > for the audio system). It's up to the device price target/customer's > pockets and needs to decide what's better. > >> Although a realtime userspace process like pulseaudio can help deliver >> stable audio in a multicore ?environment -- it may end starving out >> other processes on a slower uniprocessor. Which is why I believe a >> pulse-audio-free solution should be available and still be "compliant" >> on low-end systems. > > I would agree in some cases, that is when the system conditions don't > require it to run multi-application use cases and the price tag for > the audio system is irrelevant wrt the audio quality. > > Note for the reader: if you've reached this point it means you're > really interested about pulseaudio on embedded devices :D. > > Regards > >> >> The one place where pulseaudio is currently helpful is in hooking up >> bluetooth devices. But ALSA has it's own bluetooth layer as well, and >> other architectures for audio shouldn't be precluded: >> http://bluetooth-alsa.sourceforge.net/future.html ?or Phonon >> (http://pulseaudio.org/wiki/KDE ). >> >> -- Niels >> http://nielsmayer.com >> > > > ------------------------------ > > Message: 4 > Date: Sat, 18 Dec 2010 10:33:19 -0800 > From: Niels Mayer <nielsma...@gmail.com> > To: Marco Ballesio <gibrova...@gmail.com> > Cc: meego-handset@lists.meego.com, Linux Audio Developers > <linux-audio-...@lists.linuxaudio.org>, jaska.uimo...@nokia.com > Subject: Re: [Meego-handset] Meego pulseaudio "compliance" and > "enforcement" (was Re: Enabling Speakerphone) > Message-ID: > <AANLkTi=zhg_lmbu+lyu2h3puvaniam7ujyxxhzmua...@mail.gmail.com> > Content-Type: text/plain; charset=UTF-8 > > FYI, here's an example of the kind of app that needs to have good audio > performance on a handset: > http://www.youtube.com/watch?v=bwqflVX5oNo > http://www.warmplace.ru/soft/sunvox/ > ( http://lists.linuxaudio.org/pipermail/linux-audio-user/2010-December/074828.html > ) > > It has decent performance on maemo and appears to use pulseaudio, > which eats 1/3 of the CPU of the 'sunvox' process. The sunvox > application appears to have a UI thread and a worker thread each > consuming about 1/2 of the 35% CPU load of the app. > > Mem: 238432K used, 7108K free, 0K shrd, 3396K buff, 67580K cached > CPU: 52.2% usr 7.8% sys 0.0% nice 39.8% idle 0.0% io 0.0% irq 0.0% softirq > Load average: 0.99 0.45 0.16 > PID PPID USER STAT RSS %MEM %CPU COMMAND > 1916 1162 user S 6388 2.5 35.1 /usr/bin/sunvox > 825 1 pulse R < 3812 1.5 12.1 /usr/bin/pulseaudio --system > --high-priority > 897 730 root S < 16524 6.7 9.6 /usr/bin/Xorg -logfile > /tmp/Xorg.0.log -logverbose 1 -nolisten tcp -noreset -s 0 -core > > Doing an "ls -lR /" in a remote xterm (over SSH) results in some audio > glitching, but no "desynchronization" where the audio just stops > playing. > > -- Niels. > > > ------------------------------ > > _______________________________________________ > MeeGo-handset mailing list > MeeGo-handset@lists.meego.com > http://lists.meego.com/listinfo/meego-handset > > > End of MeeGo-handset Digest, Vol 4, Issue 10 > ********************************************
_______________________________________________ MeeGo-handset mailing list MeeGo-handset@lists.meego.com http://lists.meego.com/listinfo/meego-handset