/srv/irclogs.ubuntu.com/2014/03/13/#ubuntu-mir.txt

racarr_Yes sounds good00:01
mterryracarr_, it still seems fine without the unity-mir change...  It may still be a good change to make.  But the screen doesn't seem to come on at least even without it00:14
racarr_mterry: -.- ok well I will see if I can come up with a theory00:16
racarr_on that00:16
racarr_yay testing :D00:17
RAOFduflu: Actually, I think sequence numbers would be a superior solution all 'round.02:14
RAOFAlso, how did operation: All The Documents go? :)02:15
dufluRAOF: Yeah, possibly. You need to have a good story for wrapping though02:15
RAOFMy story for wrapping is uint64_t.02:15
dufluRAOF: Heh, I have thought the same before02:16
dufluRAOF: All the documents only turned out to be half the work I expected. And keeping a discussion in google doc comments helps to keep everyone on the same page (literally)02:17
RAOFThat means you need to care about wrap around in ~30,000 milenia, given a client that makes 1000 requests/sec.02:17
dufluRAOF: I'm concerned that also assumes Mir won't be around when the next major jumps in computing power arrive02:19
RAOFIn what way?02:19
dufluRAOF: The wrap around could still feasibly happen if someone runs the same code on a super machine 10 years from now02:20
duflu10 years isn't much02:20
RAOFI don't think that's true.02:20
dufluBut it does defer the problem nicely02:20
dufluHah. We could just move to 128-bit numbers between now and then02:21
RAOFIf a client makes 1×10⁶ requests/sec, wraparound is still in 30,000 years.02:21
dufluRAOF: You said 10^3 before02:21
dufluoh02:21
dufluyears not millenia02:21
RAOFYeah.02:21
RAOFAnd 1×10⁹ is wraparound in ~30 years.02:22
dufluWe will need to build a pyramid to store the code and the computer in. They last kind of well02:22
dufluRAOF: There is a validation problem with 64-bit ints still. You need to know which values are valid handles. So to avoid the known set of valid handles growing unbounded you need to break the client API and introduce explicit handle destruction02:24
RAOFWhy do you need to know which values are valid handles?02:24
dufluRAOF: Error checking so someone can't accidentally wait on an invalid one?02:25
dufluAlso, you never know how many waits there will be on the same handle.02:25
RAOFIt's not a handle now.02:25
RAOFI'm not sure that we need to validate wait handles; it'd be nice, sure, but it'd be a pretty obvious code bug.02:26
dufluRAOF: Each one still needs some state (signalled or not), even in the single-threaded waiter case. Otherwise you'd be racing waiter against signaller02:26
RAOFAh, sorry. Let me clarify:02:26
RAOFmir_{connection,surface,whatever}_wait_sync_point(thing, sync);02:27
RAOFNeeds no state other than a single integer in the object.02:27
RAOFIt's signalled iff sync <= last_seen_seqnum.02:28
RAOFAnd MirSurface/MirConnection/MirWhatever can maintain the last_seen_seqnum internally.02:28
RAOFWe don't even need to change protocol (although this does assume things about our protocol; namely that requests are processed in-order)02:29
dufluRAOF: That appears to only work for objects that are signalled in order. In reality you don't know the order they will be signalled in so need to store state with each one02:31
dufluOh, the state is in MirSurface/MirConnection etc02:31
RAOFWhat objects are not signalled in order?02:31
RAOFYeah. At the moment the state could be solely in MirConnection, but I think we'll want to have at least two request streams at some point, so they might as well be in the objects of interest.02:32
dufluRAOF: I'm thinking about a generic wait handle system. I guess there's no good reason why mirclient could not become explicitly ordered02:32
dufluRAOF: So actually each MirWaitHandle just gets its own counter02:33
dufluOr not.02:33
dufluAnyway, this is consuming my morning.02:33
RAOF:)02:33
dufluJolly good luck improving all the things02:34
RAOFDear valgrind: If you're going to exit claiming an error, it's polite if you make some attempt to inform me what the goddamned error is!06:22
dufluRAOF: I feel your pain from here06:50
RAOFI _think_ I've finally got _all_ the errors ironed out.06:50
RAOFSome by fixing honest leaks in our tests, some by adding more suppressions, and some by telling glib not to confuse valgrind with its memory management.06:51
dufluRAOF: Ah glib. It would be nice if we didn't have hard dependencies on big pieces like that07:00
RAOFOnly the tests do.07:02
dufluRAOF: Indirectly from *umockdev* right?07:06
dufluThat's a build-dep only07:07
RAOFRight07:07
dufluRAOF, mlankhorst: I notice some time in the past few months intel drm likes randomly losing vsync and tearing. Anyone else seen that?07:16
duflu-likes +"has started"07:17
mlankhorstnope :s07:17
mlankhorstthink there might be a bug ab out it though07:17
dufluAFAIK, the page flip scheduling Mir uses should mean that Mir can't be responsible for causing it... (?)07:18
hikikohello07:42
RAOFHey!07:42
hikikohi RAOF :)07:42
RAOFHas someone managed to figure out your nouveau problem yet?07:43
hikikono :/07:43
hikikobut no prob, I had to remove nouveau anyway to debug something else with the proprietary driver07:44
hikikobtw could you tell me where I could find the most recent instructions on how to build mir and unity8 on the phone?07:45
hikiko(is nexus galaxy still supported?)07:45
RAOFI think it still works.07:46
hikikocool :D07:46
hikikoso, are there any instructions on how to build everything on android?07:47
RAOFAs for building for the phone, I always use cross-compile-chroot.sh in the Mir source tree to build Mir; I've not yet had to do a unity8 build, though.07:47
hikikoI'd like to test brandon's branch (an sdl demo), maybe I don't really need unity807:48
hikikobut I'd probably need to do a fresh ubuntu installation07:49
anpokhikiko: AlbertA recently added a cross-compile-chroot.sh to unity-mir - which fixes the Qt cmake configuration files. I believe with that script unity8 should also build, when you update the build dependencies..07:50
anpokhmm .. maybe you also have to change some of the cmake library variables used from discovered build dependencies07:50
hikikoanpok, if I just follow these steps: https://wiki.ubuntu.com/Touch/Install07:51
hikikoI will only have unity8 and not mir?07:51
anpokboth07:52
hikikothen since my phone is totally outdated I can "just" follow the instructions? I mean they are recent isn't it?07:53
anpokhm dunno, I tend to have all kinds of fun due broken usb cables07:55
hikikohaha :)07:57
hikikolet's confirm it in #ubuntu-touch then07:58
dufluhikiko, RAOF: Is that just Mir on nouveau? I can dig up a video card or two and test fairly easily08:05
hikikoduflu, I have a GeForce GT 440 with nouveau08:08
dufluhikiko: I should still have a couple of Nvidia cards around. But what am I testing?08:09
hikikoduflu, when I run the mir server basic or shell08:09
* duflu also wants to see nouveau *still works*08:09
hikikoeverything gets stuck (cant switch tty) and I get a message that gbm cant load the nouveau driver08:10
hikikoand this happens right after i start it so I dont have enough time to attach the process to gdb from ssh08:10
hikikoI ve seen that the error comes from mesa08:10
hikikolibgbm08:10
hikikowhen we create the device08:11
hikikobut didn't search further08:11
dufluhikiko: OK, I'll try to test some cards soon.08:11
hikikothanks duflu08:11
dufluhikiko: Got a bug number yet?08:12
hikikono I will fill a bug report08:13
hikikohttps://bugs.launchpad.net/mir/+bug/1210646 <- this might be relevant08:15
ubot5Ubuntu bug 1210646 in Mir "XMir doesn't work with Nouveau" [Medium,Incomplete]08:15
hikikoalthough in his case mir detects the driver08:16
dufluhikiko: I'm not sure that would be the same issue. Please log a new one: https://bugs.launchpad.net/mir/+filebug08:18
hikikohttps://bugs.launchpad.net/mir/+bug/1291851 duflu08:27
ubot5Ubuntu bug 1291851 in Mir "Mir server can't load the nouveau driver when it's starts." [Undecided,New]08:27
dufluhikiko: Cool, thanks08:27
RAOFHow much do we care that the memcheck test is garbage on the CI hardware?09:07
RAOF(As in: the test always passes, because the command is malformed)09:07
alf__RAOF: How do you mean? We know we don't catch leaks, but at least memory errors were reported.09:08
dufluRAOF: Depends if we can actually make it pass. For armhf that may be nontrivial09:08
alf__RAOF: (don't catch leak = don't fail on leaks)09:09
RAOFalf__: I mean that “3/9 Test #3: memcheck-test .......................   Passed    0.01 sec” passes because the command is malformed.09:09
RAOFThe test of our memchecker :)09:09
alf__RAOF: We care :) How is it malformed?09:10
RAOFalf__: Build locally, enable memcheck and disable gtest detection. The test log will show that valgrind doesn't run, because the commandline is malformed. But, happily, we're checking for failure, so that passes.09:11
RAOFduflu: Also, https://code.launchpad.net/~raof/mir/udevify-eventhub/+merge/210348 shows that we _can_ make it pass on armhf with fail-on-leak. :)09:12
RAOFalf__: See http://paste2.org/6UP8wzIY09:16
alf__RAOF: Hmm, where does all this come from? Changes by a CI script?09:18
alf__RAOF: (probably judging by /home/chris/...)09:19
RAOFalf__: It comes from cmake/MirCommon.cmake, mir_add_memcheck_test() being broken09:19
RAOFSpecifically, because CMake's variable handling is a legion of fail.09:20
RAOF${VALGRIND_ARGS} is a list, which expands to a semicolon-delimited list in some circumstances, such as when we're trying to pass them to sh -c.09:21
alf__RAOF: We don't have many of the options from that output in our pristine codebase in VALGRIND_ARGS09:21
RAOFIt works in the other codepath because it's cmake interpreting the list, and it does it correctly.09:21
RAOFOh, that's true.09:21
RAOFI think we have enough options to trigger the problem though. Let me check!09:22
alf__RAOF: that's why I think it's probably some CI script changing something09:22
alf__RAOF: but yeah, I think you are right, we do have that problem even with just our own options09:24
alf__RAOF: how can cmake be so broken...09:25
RAOFBuildsystems.09:26
RAOFMess with people's brains.09:27
alf__RAOF: please file a bug then and I can take a look if you don't have a solution yet09:27
RAOFalf__: Sure. I've bashed my head on this one enough I think :/09:27
anpokhm in one case VALGRIND_ARGS is meant to be a list is, in the other case we want it to be have as a string09:29
RAOFYes.09:29
anpok-is09:29
anpokso string (REPLACE ";" " " VALGRIND_ARGS_AS_STRING "${VALGRIND_ARGS}")09:31
anpokshould work09:31
anpokof course only when the args dont have ; inside :)09:32
RAOF:)09:32
RAOFalf__, anpok: Enjoy 129187609:35
RAOFOr even bug# 129187609:36
RAOFbug #129187609:36
ubot5bug 1291876 in Mir "memcheck-test doesn't test anything when DISABLED_GTEST_DISCOVERY is enabled" [Undecided,New] https://launchpad.net/bugs/129187609:36
alf__RAOF: anpok: cmake => "string types ought to be enough for everybody" (but let's hack lists in them too!)09:40
RAOFWell, either string types or lists would be fine.09:41
anpokhm internally I believe they treat them as separate types..09:42
RAOFBut they've managed to make it so that ADD_TEST(foo "String of stuff") doesn't work, because "String of stuff" is attempted to be run as an executable verbatim, and you can't trivially escape "s.09:42
RAOF(For some absolutely bizzare reason, when I tried "\\\"" it ended up in the CTest file as "/""09:43
anpokhehe09:43
alf__anpok: I don't know: "In CMake all variables are of the type string. Nevertheless CMake can deal also with lists. If a string contains semicolons, these semicolons can be interpreted as separators of string values. "09:44
anpokah09:44
RAOFOh!09:44
RAOFYou know how we could fix this?09:44
RAOFBy not trying to use cmake here!09:45
anpokthe issue is only on armhf, because append items to the string?09:47
RAOFNo, the issue is everywhere.09:48
RAOFOk.09:52
RAOFI think I know what to do.09:52
RAOFI'll take Zoe out to the park for a bit, come back, and see if I really do.09:53
anpokhm why dont I see leak-check=full09:56
anpokhave fun09:58
* anpok crawls back into his cave09:58
RAOFYES! I (finally) win a CI run of udevify-eventhub that would fail on leaks but doesn't, because we don't leak. And passes on all our architectures. And doesn't have glib confuse valgrind seven ways to Sunday.12:48
mlankhorstor are you certain of that?13:07
mlankhorstyou probably sneaked a 'void *malloc(size_t sz) { static char buf[8 * 1024 * 1024]; return buf; }' in somewhere13:08
mlankhorst:P13:08
RAOFI'm surprised how much glib confuses valgrind.13:11
=== pete-woods1 is now known as pete-woods
=== dandrader is now known as dandrader|lunch
=== dandrader|lunch is now known as dandrader
=== TheDrums is now known as DalekSec
=== dandrader is now known as dandrader|afk
=== dandrader|afk is now known as dandrader

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