#linuxcnc-devel Logs

Jun 02 2019

#linuxcnc-devel Calendar

10:27 AM seb_kuzminsky: hello mozmck, i'm working on the buildbot & deb archive changes for the 2.8 release branch this morning
10:52 AM JT-Shop: thanks seb
11:05 AM seb_kuzminsky: sure thing -- and thanks to you all who keep carrying the flag after i laid down by the side of the road
11:05 AM seb_kuzminsky: linuxcnc-build: force build --branch=master 0000.checkin
11:05 AM linuxcnc-build: build forced [ETA 1h25m01s]
11:05 AM linuxcnc-build: I'll give a shout when the build finishes
12:02 PM linuxcnc-build: build #4736 of 4008.deb-precise-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4008.deb-precise-amd64/builds/4736
12:05 PM linuxcnc-build: build #4736 of 4007.deb-precise-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4007.deb-precise-i386/builds/4736
12:12 PM linuxcnc-build: build #5944 of 0000.checkin is complete: Failure [4failed] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/0000.checkin/builds/5944
12:16 PM linuxcnc-build: build #4737 of 4007.deb-precise-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4007.deb-precise-i386/builds/4737
12:19 PM linuxcnc-build: build #4737 of 4008.deb-precise-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4008.deb-precise-amd64/builds/4737
12:21 PM linuxcnc-build: build #3566 of 4009.deb-precise-rtai-i386 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4009.deb-precise-rtai-i386/builds/3566
12:26 PM seb_kuzminsky: master is broke on precise
12:26 PM seb_kuzminsky: the most recent merge broke it
12:26 PM seb_kuzminsky: only packaging is broken, linuxcnc itself is fine
12:26 PM jthornton: rut row
12:27 PM seb_kuzminsky: it's the debian/configure file that broke things
12:27 PM seb_kuzminsky: wonder if it works in 2.7, where the merge came from?
12:28 PM seb_kuzminsky: yeah, 2.7 is fine
12:48 PM seb_kuzminsky: the structure of debian/configure is kind of complicated, because we have to support lots of different distros, from ancient to modern
12:48 PM seb_kuzminsky: there was a cleanup effor in master, and a smallish tweak in 2.7, and the merge conflicted in a big complicated way
12:50 PM seb_kuzminsky: i just pushed a commit to master that i think fixes it
12:51 PM seb_kuzminsky: hmm, i'd forgotten we no longer get github notifications in this channel, since you have to have a registered name to say anything here
12:51 PM seb_kuzminsky: :-(
12:55 PM Tom_L: spammers kinda won that round
12:56 PM seb_kuzminsky: i wonder if there's some way to teach the github irc robot to authenticate itself with the nickserv
12:57 PM seb_kuzminsky: ok, most of the buildbot stuff is done, there's a little more to do...
12:58 PM seb_kuzminsky: i'm going to take off for a while, i'll be back later hopefully in several hours to finish up (assuming this current buildbot build of master finishes successfully)
01:40 PM linuxcnc-build: build #760 of 4031.deb-stretch-rtpreempt-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4031.deb-stretch-rtpreempt-amd64/builds/760
02:22 PM JT-Shop is now known as jt-shop-b
02:23 PM jt-shop-b is now known as JT-Shop
02:24 PM JT-Shop2 is now known as jt-shop-b
02:26 PM jt-shop-b is now known as JT-Shop2
03:43 PM linuxcnc-build: build #761 of 4031.deb-stretch-rtpreempt-amd64 is complete: Failure [4failed shell_3] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4031.deb-stretch-rtpreempt-amd64/builds/761 blamelist: Sebastian Kuzminsky <seb@highlab.com>
04:36 PM seb_kuzminsky: that's not a real failure:
04:36 PM seb_kuzminsky: install: error writing '/build/linuxcnc-2.8.0~pre1.4783.gbb3717c73/src/../debian/tmp/usr/share/doc/linuxcnc/LinuxCNC_Integrator_Manual_fr.pdf': No space left on device
04:49 PM seb_kuzminsky: linuxcnc-build: force build --branch=master 4031.deb-stretch-rtpreempt-amd64
04:49 PM linuxcnc-build: build #762 forced
04:49 PM linuxcnc-build: I'll give a shout when the build finishes
04:49 PM linuxcnc-build: Hey! build 4031.deb-stretch-rtpreempt-amd64 #762 is complete: Exception [6exception shell_1]
04:49 PM linuxcnc-build: Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4031.deb-stretch-rtpreempt-amd64/builds/762
04:50 PM seb_kuzminsky: oh right
06:32 PM -!- #linuxcnc-devel mode set to +v by ChanServ
06:36 PM seb_kuzminsky: ok, we're getting close
06:36 PM jthornton: SWEET!
06:36 PM seb_kuzminsky: i just pushed a new branch named 2.8, ready to use for stabilizing 2.8 in preparation for the next major release
06:36 PM jthornton: thanks seb_kuzminsky
06:37 PM seb_kuzminsky: i'm going to let that run through the buildbot, and if it all works as expected i'll push a couple of commits to master that renumber it to 2.9~pre, for future feature work
06:37 PM jthornton: thanks again
06:37 PM jthornton: I see your push on travis
06:38 PM seb_kuzminsky: the 2.8 release manager (mozmck) should make a 2.8.0~pre2 pre-release soon, i'll help with the process as needed but i won't be able to do the actual work
06:38 PM jthornton: ok
06:38 PM jthornton: is there a guide somewhere as to what has to be done?
06:38 PM seb_kuzminsky: jthornton: i'm super glad you all are still so active in the project - i love linuxcnc, i just can't make it fit into my life as much any more
06:39 PM seb_kuzminsky: yes, there are some notes on how to make releases:
06:39 PM jthornton: I understand
06:39 PM seb_kuzminsky: http://wiki.linuxcnc.org/cgi-bin/wiki.pl?ReleaseCheckList
06:39 PM jthornton: ah ok mozmck linked that the other day
06:40 PM seb_kuzminsky: in keeping with the wiki style, it's a jumble of mismatched, out-of-date notes that various people have added/deleted/edited over the years
06:40 PM jthornton: time to slip on my chef hat and fire up the grill
06:40 PM seb_kuzminsky: ooh, good idea
06:40 PM seb_kuzminsky: i'm grilling beef & chorizo burgers with onions and cheese, and a slab of salmon for my vegetarian friend
06:41 PM cradek: fish is not a vegetable
06:41 PM seb_kuzminsky: i'll be back later tonight to check on the build and push master-aka-2.9 forward a bit
06:41 PM seb_kuzminsky: hi cradek !
06:41 PM cradek: hi you
06:41 PM cradek: :-)
06:41 PM seb_kuzminsky: aren't vegetarians the ones who eat fish? or did i mean a different sect?
06:41 PM seb_kuzminsky: pescetarians?
06:42 PM cradek: maybe you mean veterinarian?
06:42 PM cradek: some of them eat fish
06:42 PM cradek: sorry, I'm in a silly mood
06:42 PM seb_kuzminsky: lol
06:43 PM cradek: pastatarian
06:43 PM cradek: pestotarian
06:55 PM memfrob: seb_kuzminsky, cradek you guys still here? I'm having an issue building LinuxCNC on Debian sid
06:55 PM memfrob: I'm guessing this is due to a change in mainline python-yapps
06:55 PM cradek: sorry, in that case, no, I already left
06:56 PM memfrob: cradek, when you see yourself later, tell him I say hi.
06:57 PM cradek: ok, we will
06:59 PM CaptHindsight: https://github.com/smurfix/yapps/pull/6 think this is still having problems
06:59 PM CaptHindsight: he got it working but....
07:00 PM memfrob: So this commit should solve it: https://github.com/santazhang/yapps/commit/c37de058bba389ce3459a8169d6545c300b97a77
07:00 PM memfrob: And maybe this one: https://github.com/santazhang/yapps/commit/684e3ca146a6320fe3a6d5c65e4db982b83afb4c
07:00 PM CaptHindsight: I got to build but this isn't right. Current combination of hacks and tricks: Set GCC and G++ to 7, use Python 2.7, wait for the error: SyntaxError: from __future__ imports must occur at the beginning of the file
07:00 PM CaptHindsight: After that error occurs, modify halcompile.py, remove the 2nd instance of "from __future__ import print_function" and install a package called python-yapps
07:01 PM CaptHindsight: Run make again, and it works.
07:01 PM memfrob: If this was for Gentoo, I could add those two commits in quite easily.
07:02 PM memfrob: Ah, 2nd comment in that link you posted says: "A better solution could probably be to provide print() function for this snippet from a separate python module."
07:02 PM cradek: is this some python 2/3 compatibility hackery?
07:02 PM cradek: ffs.
07:02 PM memfrob: I'm on python 2.
07:02 PM memfrob: Not touching 3 yet..
07:03 PM cradek: but yeah this import is to get a python3-like print() in python2
07:03 PM memfrob: Separate python module.. Like python-print (which probably doesn't exist yet)
07:03 PM memfrob: Move print out of python-yapps into a new project that just handles the print function?
07:05 PM memfrob: Or by "module" do they mean an "import" ? i.e. import python2to3.print.fix
07:06 PM memfrob: Another question.. #!/usr/bin/python functionality breaks, but the proper syntax is #!/usr/bin/env python .. Or is the 2nd syntax also broken by that?
07:11 PM seb_kuzminsky: i have a branch somewhere to make linuxcnc build on buster (but not package, alas)
07:11 PM seb_kuzminsky: hold on, i'll push it
07:13 PM seb_kuzminsky: oh funny, it's a yapps fix
07:14 PM seb_kuzminsky: https://github.com/LinuxCNC/linuxcnc/tree/build-on-buster
07:14 PM seb_kuzminsky: don't know if it'll work on sid, but it works for me on buster
07:15 PM seb_kuzminsky: oh wait, there's more, i forgot
07:15 PM CaptHindsight: IIRC Buster is Sid from a few months ago
07:16 PM seb_kuzminsky: that's about right, yeah
07:16 PM seb_kuzminsky: buster is testing that forked off from sid (unstable) some time ago, and has been feature-frozen and stabilizing ever since
07:16 PM seb_kuzminsky: it's my daily driver and i'm well happy with it
07:16 PM CaptHindsight: we have to rebuild this system properly so we can give your branch a try
07:19 PM seb_kuzminsky: here's the buster branch: https://github.com/LinuxCNC/linuxcnc/tree/2.7-buster
07:19 PM CaptHindsight: I going to use M-codes to display SVG layers on 4K projects
07:20 PM CaptHindsight: sync motion with image layers
07:20 PM CaptHindsight: projects/projectors
07:23 PM seb_kuzminsky: that sounds cool - for a 3d printer
07:23 PM seb_kuzminsky: ?
07:23 PM CaptHindsight: yes, resin printers SLA/DLP and also sand mold printers
07:24 PM CaptHindsight: fancier version of this https://www.youtube.com/watch?v=FscYq5uCys0
07:26 PM CaptHindsight: 10-100x faster version of this https://youtu.be/mxdWaxOoXs8?t=27
07:28 PM linuxcnc-build: build #764 of 4031.deb-stretch-rtpreempt-amd64 is complete: Failure [4failed shell_1] Build details are at http://buildbot.linuxcnc.org/buildbot/builders/4031.deb-stretch-rtpreempt-amd64/builds/764 blamelist: Sebastian Kuzminsky <seb@highlab.com>
07:40 PM memfrob: seb_kuzminsky, I just cherry-picked your commit locally, I'll give it a shot, thank you!
07:42 PM memfrob: New kernel brb
07:54 PM memfrob: seb_kuzminsky, it works, want to merge that branch into master?
08:28 PM seb_kuzminsky: i want it in 2.7, then we can merge up to the brand new 2.8 branch, then master
08:28 PM seb_kuzminsky: let me clean it up a bit
08:48 PM memfrob: I thought development and new changes are supposed to happen in master before stable?
08:49 PM memfrob: It doesn't matter to me, just wondering.
08:58 PM memfrob: So CPU isolation (isolcpus) has been added to PREEMPT_RT and you can also offload RCU callbacks on certain CPU cores.
08:58 PM memfrob: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/7/html/tuning_guide/offloading_rcu_callbacks
08:59 PM memfrob: Would it be best to use isolcpus on any cores that are not doing the RCU offloading?
09:02 PM memfrob: Ah, there's nohz_full as well.
09:06 PM memfrob: In every example I found online, they use the same cores for each (nohz, rcu_nocbs and isolcpus)
09:13 PM memfrob: Which CPU core does LinuxCNC want to use again?
09:14 PM memfrob: Think the answer might be in src/rtapi/uspace_rtapi_app.cc -- digging..
09:15 PM memfrob: Got it -- static int find_rt_cpu_number :)
09:22 PM memfrob: Looks like it's the first core, so isolcpus nohz_full and rcu_nocbs should all be set to 0
09:34 PM memfrob: new kernel!
10:29 PM memfrob: So nohz_full doesn't work if it's set to CPU 0, it uses the first CPU for time keeping. So for best latency the real-time thread should run on the last core instead of the first. How would I change this?
10:30 PM memfrob: kernel timekeeping and linuxcnc should be on different cores ideally.
11:10 PM memfrob: Figured out how to change the core LinuxCNC runs on. CPU_SET(rt_cpu_number, &cpuset);
11:11 PM memfrob: Change rt_cpu_number to a specific value I want.. Now the right way to do this would be to have find_rt_cpu_number() run on the last core instead of the first one.
11:11 PM memfrob: This way kernel timekeeping tasks and LinuxCNC can run on two different cores, if it's an SMP system.
11:42 PM memfrob: I got latency down from 220,000 microseconds to 12,000 by moving LinuxCNC to use CPU 3 then using `rcu_nocbs=1,2,3 isolcpus=1,2,3 nohz_full=1,2,3 idle=poll` on the kernel command line.
11:44 PM memfrob: LinuxCNC patch: http://dpaste.com/1874J3H
11:45 PM memfrob: Most important kernel options: http://dpaste.com/20SC115
11:46 PM memfrob: That's it for today!