/srv/irclogs.ubuntu.com/2013/05/21/#ubuntu-mir.txt

racarrgot a failing acceptance test for touch input picking (i.e. multiple visible clients stacked, such as the launcher and an application)00:14
racarrand a plan...lots of steps though00:14
racarrhopefully should finish by tomorro00:14
=== mmrazik is now known as mmrazik|afk
=== mmrazik|afk is now known as mmrazik
=== tvoss is now known as tvoss|test
=== tvoss|test is now known as tvoss
alf__alan_g: Good morning!08:21
alan_galf__: Good morning!08:21
alf__alan_g: @message-processor-report-lttng, can you please paste(bin) the full (detailed) output of the failing test runs08:22
alf__alan_g: (when you get the time)08:22
alan_galf__: I can, but there's nothing that looks more useful than I pasted to the comments. Would it be a better use of our time for me to try debugging for an hour or so?08:23
alf__alan_g: Probably :) The error from lttng indicates that the communication threads that lttng uses to communicate with its daemon have either died or never started. I was wondering if there were any other error messages, perhaps at the beginning of the tests, that would give us more hints about what happened.08:35
alan_galf__: I woudln't expect lttng to be doing anything unless asked. (which it wasn't)08:36
alan_galf__: http://paste.ubuntu.com/5686305/08:37
alf__alan_g: it opens a connection to its daemon as soon as the lttng-ust shared object is loaded (through a shared object "constructor" function)08:37
alan_gHmm is that a cost we want in "normal" operation?08:38
alan_galf__: without having dived into the code is lttng waiting for a connection to its daemon? And might a timeout there cause a problem with our test setup timeouts?08:41
alan_galf__: I'll see if I can track down exactly what the failure mode is...08:43
alf__alan_g: @cost, if it turns out to be a problem, we can work around it by loading liblttng-ust dynamically at runtime when an lttng reporter is constructed08:43
alan_galf__: ack.08:44
=== mmrazik is now known as mmrazik|afk
alf__alan_g: also, looking at the lttng-ust man page, there are the following env. variables:  LTTNG_UST_DEBUG and LTTNG_UST_REGISTER_TIMEOUT which may help debug the problem08:45
alf__alan_g: I think I should go with dlopen anyway, and hopefully that will fix the problem you are seeing, too08:53
alan_galf__: the env variables don't affect the test failure (or output)08:54
* alan_g would like to understand the problem, not just avoid it08:54
alf__alan_g: Interesting, I can know reproduce the failures you are seeing! I have no idea what changed :/08:56
alan_galf__: :/08:57
alf__alan_g: ok, so make test passes, but ctest (or running e.g. bin/integration-tests directly) fails08:58
alan_galf__: I never run "make test" - but you're right, it passes08:59
* alan_g thinks that is unreasonable09:00
alf__alan_g: I think I found the problem:09:00
alan_g\o/09:01
alf__From the manpage: "Some extra care is needed when using liblttng-ust with daemon applications that call fork(), clone(), or BSD rfork() without a following exec() family system call. The library "liblttng-ust-fork.so" needs to be preloaded for the application (launch with e.g. LD_PRELOAD=liblttng-ust-fork.so appname)"09:01
alf__alan_g: and doing this solves the problem for me09:01
alan_galf__: me too. (How does running via cmake do that?)09:02
alan_galf__: In any case, I think we should be dynamically loading lttng - not requiring it regardless.09:06
alf__alan_g: Agreed, I will give dynamic loading a spin and see what comes of it09:07
alan_galf__: I wonder if you can dynamically load liblttng-ust-fork.so in the test configuration or if it needs to be preloaded.09:09
alf__alan_g: no idea, I will experiment09:11
alan_gGood luck!09:11
=== mmrazik|afk is now known as mmrazik
hikikoalf__, ping :)09:41
alf__hikiko: pong09:42
hikikohello, question: what exactly the vt does? you said I don't need it to run the render_to_fb example but without it I get runtime errors: Failed to find the current VT, so I guess I have to add it to my display...09:45
hikiko(or maybe I should just add it and have only one vt active? I am not sure I got 100% what it does :))09:46
alf__hikiko: The vt is an abstraction for the linux virtual terminal, which is not needed for SDL. 1. are you sure render_to_fb is using the sdl backend when you run it 2. do you use the vt in the sdl platform/display code?09:49
hikiko1. I guess so, I configured cmake to use sdl, I would get a compile error if it didn't isn't it? 2. no09:51
hikikoshall I use it?09:51
alf__hikiko: you shouldn't use it, SDL doesn't care about VTs09:56
alf__hikiko: but you need to find out why you end up in VT code09:56
hikikoyes I will :) I just asked you to get sure I don't need the vt!09:57
hikikothanks :)09:57
alf__hikiko: sure, np :)09:57
=== mmrazik is now known as mmrazik|lunch
=== mmrazik|lunch is now known as mmrazik
=== hikiko is now known as hikiko_lunch
=== hikiko_lunch is now known as hikiko
=== alan_g is now known as alan_g|lunch
=== greyback is now known as greyback|food
=== alan_g|lunch is now known as alan_g
=== greyback|food is now known as greyback
alan_galf__: do you know why OverlayRenderer::render() needs a graphics::DisplayBuffer?  (As opposed to, say, a ViewArea)  I can't find any code that justifies it - and it would simplify some refactoring if it needed less.13:49
alf__alan_g: I guess it depends on how generic we would want to make OverlayRenderer. For example an overlay could need to render to an offscreen buffer first (=the display buffer would lose its "current" rendering target status) and then the overlay would need to make the display buffer current again, so it needs some access to the display buffer (or perhaps we could provide it with a std::function<> make_display_buffer).13:57
alf__alan_g: but these are only assumptions... For now I don't think anything but the software cursor uses the overlay13:58
alf__alan_g: Also I would argue that we don't the overlay at all: whoever needs a special compositing strategy with overlays or whatever, should just create their own new strategy...13:59
alan_galf__: I was wondering what was special about overlays. I didn't find any code using them - where's the software cursor stuff?14:00
alf__alan_g: probably hidden in one of racarr's branches :)14:02
* alan_g thinks "if it isn't on trunk I can break it"14:03
kgunnalan_g: alf__ at least on the phone, the hwc api is supposed to be the support mechanism14:04
kgunnfor overlays14:04
kgunnbecause, everyones hw is a bit weird14:04
kgunne.g. caveats14:04
kgunnon things like i can't support bgr mixed with rgb formats14:05
kgunnat any rate, overlays are there14:05
alf__kgunn: If the OverlayRenderer was indeed meant as an abstraction for the HW overlay, it makes more sense. But I always thought it was just a mechanism to provide an easy way for examples or the shell to draw over the display.14:10
alan_gkgunn: you're saying that we need overlay support separately from other surfaces because they don't even go via the DisplayBuffer (and don't need it)14:11
alf__alan_g: kgunn: Let's hear what racarr's intention was for it14:11
kgunnalf__: ack on that14:12
alan_gyep, sorry. (I optimistically hoped for someone that's around would know.)14:13
kgunnalf__: not sure i think about it correctly...but yeah, overlays head for a "specialized" piece of hw14:14
kgunnand that special hw is really a composition engine14:14
kgunnof 2d nature14:15
kgunnthat's why hwc is attempted to be used....but can result in the "overlay stack" being sent back to the gpu14:16
kgunnin order to get composed14:16
alf__kgunn: sure, I am just not sure if the particular OverlayRenderer we are talking about was meant for this, or the term "overlay" was used in the more general sense.14:17
kgunnalf__: right...i'm tracking, may or may not have been intended for this14:18
* alan_g sees that he's right: in lp:~robertcarr/mir/demo-software-cursor-junk SoftwareCursorOverlayRenderer just uses the DisplayBuffer to get the size of the view area.14:18
alan_gkgunn: alf__ : as far as trunk goes OverlayRenderer is pointless.  FWIW SoftwareCursorOverlayRenderer doesn't use hwc.14:22
kgunnalan_g: right...i would think so too because of the name "sw cursor"14:23
kgunnwhereas a "hw cursor" might try to get an overlay14:23
alan_gThe implication being that OverlayRenderer is not intended for hardware overlays.  Anyway, I feel confident I can make my changes and we can figure out if there is anything we need OverlayRenderer for later.14:26
=== alan_g is now known as alan_g|tea
=== alan_g|tea is now known as alan_g
kgunnalan_g: sure...still a qood ques for racarr later14:29
=== seb128_ is now known as seb128
kgunnhikiko: ping14:53
=== alan_g is now known as alan_g|tea
kdubgood morning, status, updating my android builds, working on getting glmark to run on mir under android drivers14:57
kdubif we wanted to add some graphics performance benchmarks that are runnable on both mir and say... surfaceflinger, seems benchmarks/graphics would be a good place for that15:06
kdubbut we might have to put an Android.mk makefile in there...15:06
kgunnkdub: +115:08
kgunnoem's will like that15:08
kdubyeah, not super pumped about the Android.mk in there  though... the other option is to have a separate project15:09
kgunnright....but seems overkill15:10
kgunnah...maybe a seperate proj is the right thing tho15:10
kgunnits for sure the most sanitary15:10
=== alan_g|tea is now known as alan_g
kdubi somewhat am leaning towards a separate project... that way we can instruct 'download the ndk...' without re-polluting lp:mir with that15:12
kgunnyeah...let's do that15:13
kgunnkdub: the main thing is having a nice pointer for the oem's to see15:13
kgunn& play with15:14
alf__status: debugging lttng issues (also see: https://bugs.lttng.org/issues/538)15:15
alf__status: ... and trying to make our lttng reporting work despite those issues15:16
alan_gstatus: refactoring code that's in the way of composition bypass.15:16
alf__alan_g: s/refactoring/deleting/ ;) ?15:16
kdubalan_g, anything i can help with?15:16
alan_galf__: no15:16
alan_gkdub: not for now - I've the next few steps planned out15:17
alf__alan_g: too bad, I was in a mood for deletions today :)15:18
kdubi might have a deletion! :) there's a class i want to get rid of in src/server/graphics/android15:18
* alf__ will be right back15:19
=== mmrazik is now known as mmrazik|afk
kgunnalan_g: kdub racarr any of you on saucy?16:21
alan_gkgunn: not yet16:21
kdubraring for me16:21
=== mmrazik|afk is now known as mmrazik
racarrmorning16:36
racarrlept in a little late because I am always super tired for the 11 pm weekly :p16:36
racarrstill on raring...hould be in saucy probably16:36
alan_gafternoon16:36
racarralan_g: Reading one of your emails. I think SurfaceCreationParameters belongs in shell16:37
racarror mf::SurfaceCreationRequest (does not feature a top_left)16:37
racarrand msh::SurfaceCreationParameters (features a top left)16:37
racarrplacement strategy takes Request->Parameters16:37
alan_gMake it so Mr Carr16:37
racarr:)16:42
=== robotfuel is now known as ChrisGagnon
=== ChrisGagnon is now known as robotfuel
kgunnracarr: was chatting with gerry earlier, as to platform-api changes we're "waiting" on16:59
kgunnis it just these 2?16:59
kgunnhttps://code.launchpad.net/~ricmm/platform-api/new_api_with_lifecycle/+merge/16069116:59
kgunnhttps://code.launchpad.net/~robertcarr/platform-api/mir-client-and-server/+merge/16361616:59
=== alan_g is now known as alan_g|life
racarrkgunn: Yes. I am syncing up with ricmm today17:10
racarrat 1:30 to figure out how to land them17:10
kgunnracarr: great! let me know if you need review "volunteers" (mmwwhaahaha)17:11
racarr:) Thanks. I think it's mostly just a matter of everything lining up right17:12
racarri.e. to land my changes we need to introduce some more modularity17:12
racarrso it's possible to have say, mirclient for implementing ubuntu_application_ui_*17:12
racarrbut still get at the GPS via hybris17:12
kgunnright17:12
racarrand I think some of riccm's refactoring involves this17:12
racarrgod the amount of time I spend renaming classes...17:13
racarrwhy can't clang do this yet17:14
racarrmoved surface creation parameters to shell in enable-surface-placement17:17
kdubracarr, yeah.. seems something automagical should exist for renaming classes17:19
racarrSometimes deep in the caves of refactoring17:19
racarrI wonder if it is worth righting a tool that does common tasks, even if say it only worked on our code tree haha17:19
racarrthen I tell myself if it were someone would have already done it and to focus17:20
racarrthen I look at pictures of cats on the internet.17:20
racarrwriting a tool*17:20
kdubwe should probably have a FindMirClient.cmake module...17:24
kgunnracarr: cracking me up17:27
=== mmrazik is now known as mmrazik|afk
racarrabout...30% through getting rid of setInputWindows and having the dispatcher controller use the surface model directly17:47
racarrhas the nice side effect of enabling input for more than one urface at a time17:48
racarrout for 20 minute to take a walk, back soon18:40
kdubkgunn, have some numbers for startup cost on the meeting doc19:23
* kgunn scurries away to read19:24
kgunnkdub: well that's interesting, altho double, the value is so small...it shouldn't bother us19:26
kdubyeah, thats what i thought too...19:26
kdubthe cost is probably that we fire off more threads19:27
kgunnkdub: its kind of just on the edge of nuisance19:27
racarrthe most interesting cost-effect for startup time is probably19:27
racarrrecovering when mir crashes19:27
racarron boot we are drowned in a giant mess of things that take forever to start19:27
racarrand I doubt we really show up as a blip19:27
kgunnracarr: even on phone?19:27
kgunnalso....this should be new client, post startup19:28
racarrI dunno19:28
racarron the desktop qml-phone-shell for example noticeably takes a second or so to load19:28
racarrafter the hardware cursor appears19:28
racarrwe dont do much disk IO is the thing19:29
racarrwe do start a lot of threads though XD19:29
kdubwell, firing up qml-phone-shell is more akin to starting a Launcher.apk than it is to starting /system/bin/surfaceflinger19:52
kgunnkdub: and i think racarr is talking about system start...not client start19:54
kgunnaltho i might be wrong19:54
=== kdub is now known as kdub^lunch
thomimorning all20:07
thomiI see nobody was brave enough to reply to my email on mir-devel?20:07
kgunnthomi: alf did actually20:07
kgunn( i thot)20:07
thomihmmmm, maybe my mail client is bring dumb then20:08
* thomi restarts thunderbird20:08
kgunnthomi: answer was...yes, it should be thread safe20:08
kgunnand he was able to repro20:08
kgunnso...hooray....plan worked! we found a bug20:09
kgunnwe = you :)20:09
kgunnso thank you20:09
thomihe == ?20:09
thomikgunn: ^20:11
kgunnthomi: he == alf20:12
thomiahhh20:12
kgunnthomi: i spoke with him earlier...he said not as frequent, but definitely seeing race cond of some sort20:12
thomikgunn: it could be because I have a pretty beefy laptop perhaps.20:12
kgunnthomi: yep20:13
thomikgunn: any idea when a fix is in the works? I'm wondering if it's worth postponing further development on mir-stress until this first issue is fixed20:13
thomisince I can't really exercise the mir erndering stuff until I can reliably connect...20:13
kgunnthomi: if he shows to the team meeting you might ask him20:14
kgunnotherwise i'll ping him in the morning20:14
thomigood point20:14
kgunnthomi: btw, are you on saucy or raring20:15
thomikgunn: both :)20:15
thomikgunn: my main laptop is on raring, I have a test laptop that's running saucy + mit-team staging PPA20:15
thomisince the PPA sometimes breaks the desktop20:16
kgunnthomi: yeah, i was curious....how is the saucy + mir ?20:16
thomikgunn: seems fine to me20:16
kgunnthomi: cool20:17
thomikgunn: it builds fine, tests all pass20:17
thomiwe need to get to the point where it's easy to start unity8 + mir though20:17
kgunnyeah, hopefully racarr can push some key platform-api changes through...then he & gerry can create their unity-mir project20:18
=== kdub^lunch is now known as kdub
racarrLunnnch!20:46
thomibrrrreakfast!20:59
racarrand back21:27
racarrEffective C++ said to provide raw access functions in your resource management classes so there can't be an ything dangerous about adding a .get()/.surface() to msh::Surface right? ;)23:14
kdubbetter cast to void and XOR it with a known constant first :P23:16
kdubjust kidding :)23:16
racarrerror: ‘void {anonymous}::FocusNotifyingInputTargeter::focus_changed(const std::shared_ptr<mir::input::SurfaceTarget>&)’ marked override, but does not override23:30
racarrgod I love that kekyword23:30
racarrkeyword*23:30

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!