#qi-hardware IRC log for Tuesday, 2012-04-10

qi-bot[commit] Werner Almesberger: m1/xbrd/: reduced CB from 25 mm to 22 mm, reducing overall length to 82.08 mm (master) http://qi-hw.com/p/wernermisc/5bf0b3002:54
xian9fukristianpaul, Hi I tried milkyminer some days ago. 04:59
xian9futhis one: http://fidelio.qi-hardware.com/~xiangfu/build-milkymist/milkyminer-firmware-20120401-0837/05:00
xian9fuI flash the soc.fpg by 'm1nor soc.fpg' then05:00
xian9fuit's only worked once. spend 5 minutes for get the result.  then what even I send to milkyminer. nothing return.05:01
xian9fudo you think we should build the 'soc' branch?05:01
kyakxian9fu: do you have an idea why this error happens from time to time (ERROR: "irq_set_chip_and_handler_name" [drivers/ieee802154/spi_atusb.ko] undefined!)?06:26
kyaki mean, during the build, which has failed06:26
kyakxian9fu: also, what's the difference between ~xiangfu/build-nanonote/ and ~xiangfu/building/Nanonote/Ben/ ?06:27
xian9fuwhen build was success it will move to ~xiangfu/building/Nanonote/Ben/ 06:28
kyakit seems like the minimal build always fails06:28
xian9fusorry. all success will move to ~xiangfu/build-nanonote/06:28
kyakperhaps we miss something from config-minimal06:28
xian9fukyak, we should not build atusb.ko under config.minimal. I think I already disable that.06:29
kyakok.. is it building in a loop or you start it manually?06:30
xian9fubuilding in a loop06:32
xian9fuhttp://fidelio.qi-hardware.com/~xiangfu/bin/qi-hardware-build.sh and http://fidelio.qi-hardware.com/~xiangfu/bin/compile.sh06:32
kyakcool, so it started the full build now06:35
xian9fuyes. 06:35
xian9fuI think the at_usb.h miss the irq.h06:37
xian9fus/at_usb.h/at_usb.c06:40
xian9fuspi_atusb.c06:40
Action: xian9fu testing the spi_atusb now... (by add irq.h)06:44
kyaklooks like this.. wonder why it works in full image06:44
xian9fukyak, full image don't build spi_atusb06:45
xian9fudisabled under config.full06:45
kyakah!06:46
qi-bot[commit] Xiangfu: nanonote: config.minimal: disable spi_atusb since we don't have usb host (master) http://qi-hw.com/p/openwrt-packages/e702c8707:57
xian9fukyak, I just disable the atusb under minimal config. I cannot find out the root cause faster. disable it first. when I work on WPAN patches. will try to make it working. 07:57
kyakxian9fu: atusb doesn't make sense for Ben anyway, right?07:58
xian9furight. we don't ahve usb host. 07:58
wpwrakkyak: you'd have to implement USB host first :)10:15
wpwraknow, that's marketing: (in german, sorry) http://www.heise.de/newsticker/meldung/Raspberry-Pi-erhaelt-CE-Kennzeichnung-1517687.html10:15
wpwrakperhaps we should make a press release whenever Milkymist creator and chief architect Sebastien had a good morning dump ? ;-)10:17
lekernelchief architect has better plans, like turning the patch editor into something a bit like the first parts of this: http://vimeo.com/3657936610:22
wolfspraulhere's hoping that migen gives an upside in several directions10:28
lekernelwell this will come after migen. migen is about making the SoC more featureful, faster and more portable.10:30
wpwraklekernel: (immediate feedback) sounds nice10:33
viricSo, there is a working linux on milkymist SoC already?12:03
lekerneluclinux12:04
viricah ok, no mmu12:04
lekernelFallenou is working on a MMU12:04
viricok12:04
lekernelyou can, too. that's the beauty of MM SoC.12:04
viric:) clear12:04
viricIf you want to be well served, make the bed yourself.12:04
wolfspraulviric: we can get you interested in Milkymist? :-)12:35
viricI'm interested in seeing some information about its software performance and power usage.12:41
wolfspraulright now it runs an RTEMS realtime/minikernel, and a specific app on top of that for the video synthesis12:42
viricaha12:42
wolfspraulpower consumption is about 5W total12:42
viricwith how much ram?12:42
wolfspraul128 megabytes ddr112:42
wolfspraulI don't think the ram's power consumption matters much at all btw12:42
wolfspraulbut I have no exact number right now12:42
viricok12:42
viricCould you publish a run of "openssl speed" in it?12:43
wolfspraulsorry don't understand. what exactly do you want to execute?12:43
viric"openssl speed"12:43
viricI imagine you can run openssl there. :)12:44
viricI don't know much about benchmarking... I use 'openssl speed' everywhere, when I want to compare performances.12:45
wolfspraulactually I don't think openssl is ported to m1 today12:45
viricit should be ansic code12:45
wolfspraulsure someone could do it12:46
viricok12:46
viricwell, I mean it's a benchmark quite broad and easy to build :)12:46
wolfspraulit's not very 'meaningful' for m1, but I 100% agree we should first publish any benchmark, so people have a starting point for their thinking12:47
wolfspraulyou could then proceed to a hardware accelerated openssl speed benchmark :-)12:47
wolfspraulI'm trying to build a mobile & rechargeable battery pack for an m1 setup13:03
wolfspraulso basically I need 12V and 5V out of it13:04
wolfspraulI found nice little battery packs like this one http://www.iphonemili.com/products_detail/&productId=8f5df92b-03a0-441f-91bb-d444f512a769&comp_stats=comp-FrontProducts_list01-1311553918454.html13:06
wolfspraulso that works well, but I would like to use standard batteries, something more flexible13:07
wolfspraulI was hoping to find teeny tiny dc-dc converters that just allow me to put some wide voltage in, and get a stable 12V or 5V DC out, but cannot find them13:07
wolfspraulthey have a lot of nice dc-dc chips, someone should make breakout boards for them :-)13:09
wpwrakwolfspraul: you may be able to find some development boards. even for such simple things, they often make some. not sure how cost-effective they are, though13:16
wolfspraulwell there are suppliers of battery packs, like that mili one13:17
wolfspraulbut it's amazing how expensive they are, and of course no standard batteries13:17
wolfspraulthey tend to use charging ics from TI like bqxxxx13:18
wolfspraulbut in general I find the situation a little unflexible13:18
wpwrakthat pack looks very stylish. maybe that explains the price :)13:20
rohwhat unit is that? 99 foo?13:20
rohus$?13:20
wolfspraulyes13:21
rohwell... there are cheaper ones for sure... but will they do what you want and have a case?13:21
wolfspraulcase not needed13:21
rohthere is no standard in user serviceable lithium cells without packaging and security circuit, so they get integrated like in that pack13:22
wolfspraulhow about every normal rechargeable aa battery?13:22
rohhow many do you need? i think if its only for prototyping, just buy that thing13:22
wolfspraulsure, already done13:23
wolfspraulbut don't tell me I shouldn't dig deeper :-)13:23
rohaa etc sucks. doesnt allow for lithium based cells13:23
wolfspraulwhy couldn't you fit a lithium-ion polymer into an aa case?13:27
rohwrong voltage, bad ratio of weight/case/power13:28
wolfspraulI didn't pay attention to battery chemicals yet indeed13:28
rohli based stuff has between 2.9 and 4.4V per cell, depending on chemistry and charge state13:29
rohmostly its between 3.9 and 4.2 or 3.0 and 3.4V... the first for li-ion and li-po based stuff, the latter for li-fe and similars13:29
rohand you need a balancing circuit for keeping proper care which has one line to every cell when used in series. parallel is doable, but needs low manufacturing tolerances in cell chemistry. so its much easier to just use one of the typical used 'plastic bag' packges and add standard industry charge control and safety chips (or outsource that)13:31
wolfspraulthat's what those mili guys are doing (and similar vendors)13:32
rohsure. they buy cells and package them with some circuit i bet is very similar to the appnotes of the chips used13:33
rohor the reference design13:33
wolfspraulsure13:33
rohsparkfun and similars, some arduino boards and stuff watterott has also uses simple li-chargecontrollers and dc-dc switchers. not that complicated to use/design with. mostly its just some caps, some inductivity and a fast diode in addition to the chip13:35
rohbut they use 'prepackged' cells, mostly single ones, but also small packs which then include the security and balancing chips13:35
wolfspraulinteresting, ok. that's helpful!13:36
rohvery similar (basically identical) to what one gets for cellphones, just with a hard shell there13:36
rohi can name you a book if you like to read up on more details on battery chemistry13:37
wolfspraulplease, always13:37
roh'moderne akkumulatoren richtig einsetzen' von andreas jossen und wolfgang weydanz im reichardt verlag13:38
wolfspraulthanks!13:38
wolfspraulwill take a little time to get it and read, but it's queued :-)13:38
roh;)13:39
rohits worth having when one has some detail question.. and rare indeed13:39
rohwe got a copy in our raumfahrtagentur-library13:39
kyakjow_laptop: it just caught my eye that OpenWrt-Toolchain-* doesn't have "for-Linux-x86_64/i686" in its name any more (unlike SDK). What does it mean?16:39
jow_laptopnothing, it was just forgotten I suppose16:41
kyakah, so it's a bug then :)16:42
jow_laptoplikely16:43
mthkyak: I can reproduce the gmenu2x problem now17:59
LunaVoraxHello everyone!18:05
kyakmth: using Ben?18:06
mthno, using Dingoo18:07
kyakso you couldn't reproduce it before?18:09
viricDo you think linux 2.4 could run in the ben using less resources than 2.6?18:14
viricor 318:15
viricor the configuration granularity still allows to achieve similar results, in relation to the features provided?18:15
mthkyak: no, but I was probably testing a binary from the wrong location then, so an older version instead of the one I just compiled18:17
kyakviric: i think you would spend more time porting 2.4 to Ben18:18
viricwell I agree18:19
viricI just thought if in general linux is becoming too big.18:19
viricor the compile time configuration puts all in a good place.18:19
Aylaviric: it's becoming big because it have more drivers18:20
kyakviric: we could measure performance between 2.6 and 3.2.. probably you will not notice any changes, but who knows?18:21
viricbut drivers can be disabled at build time18:22
viricMaybe linux is forgetting a bit the uniprocessor systems nowadays .)18:22
viric:)18:22
viricI always thought linux 2.2 was the fastest since 2.0 ;)18:23
viricand 2.4 the slowest.18:23
viricbut I can't prove it :)18:23
kyakyou are old! :) i barely touched 2.418:23
viricI started at 2.0.34 :)18:24
kyakoooold! :)18:24
virichaha18:24
viricRH 5.2 it was. 5 is a big number.18:24
zrafa_kyak: viric is as old like me I guess :)18:33
viric:)18:36
viricWe went to the magazine store to get updates ;)18:36
viric"Mama, can you bring me the latest kernel, at the time you buy your yellow press magazines? Thank you"18:37
qi-bot[commit] Maarten ter Huurne: Fixed GCC warning about initialization order. (master) http://qi-hw.com/p/gmenu2x/92d221a18:39
qi-bot[commit] Maarten ter Huurne: Don't overwrite link action provided to constructor. (master) http://qi-hw.com/p/gmenu2x/ed8b0c318:39
mthkyak: that second commit should fix it18:39
mthviric: compile time configs help a lot, for example a lot of locking ops are reduced to nothing if you have 1 CPU and no kernel preemption18:40
mthbut I do see the OpenDingux kernel growing over time and we're not writing that much code18:41
mthstill, it's probably less effort to optimize 3.x than to backport to 2.418:41
viricmth: that would mean using a non-SMP kernel, right?18:42
viricmth: or it's dynamically set?18:42
mthyes18:42
mthyou can make a non-SMP kernel by config18:42
viricI know18:42
viricbut there is the "nosmp" commandline, or "cpu=1", I can't recall... it isn't equivalent enough?18:42
viricI remember in 2.2 that preemption never helped me.18:43
mthI don't think so: checking that option might be slower than just doing the lock18:43
jow_laptopkyak: since a toolchain is not bound to a particular target it might also make sense to replace BOARD with ARCH18:43
jow_laptopkyak: so it reads OpenWrt-Toolchain-mipsel-for-Linux-x86_64-gcc-4.6-linaro_uClibc-0.9.33.tar.bz218:43
viricmth: I should try in my nonsmp systems.18:43
viricIn fact I don't own any SMP.18:43
mthmy desktop is a Core 2 quad-core18:44
mthit's very using when doing big compiles18:44
mth*useful18:44
viric:)18:44
viricI don't doubt it18:44
jow_laptopkyak: and maybe replace -for- with -on-18:44
viricthe 7h of battery of mine are very useful too ;)18:44
viricmth: 'perf' won't show me anything about the locks, right?18:45
mthit's connected to the wall socket and power outages are rare here, fortunately18:45
jow_laptopkyak: and prepend the -for- before the ARCH (toolchain-for-mipsel-on-linux-x86...)18:45
viric:)18:45
mthI've got a laptop with an i7 and that battery lasts about 7h as well, but not when doing make -j8 ;)18:45
viricmth: ah very good18:45
mthI don't know 'perf'18:45
viricI'll try about the preemption and all that...18:46
mthkernel preemption will likely make things slower, not faster18:46
mthit only helps if drivers are doing too much work in big chunks18:46
viricaha18:47
viricuserspace preemption will still be there, right?18:47
mthyes, that's always there18:47
mththe kernel preemption is about whether a syscall or kernel thread can be preempted18:48
viricclera18:48
mthI guess it could protect against a user doing a denial of service attack by calling lots of expensive syscalls in a row18:48
mthbut that's not very likely on single-user systems18:48
viricaha18:49
viricand what do you think of NO_HZ?18:49
mthit's good, but it's not perfect yet18:49
mthit only turns off the timer ticks when the CPU is idle, we recently found out18:49
viricand how is it bad?18:50
viricas for performance, may it be bad?18:50
mthit's not bad, it's just not always good enough18:50
mthin the sense that if you're running for example mplayer, the CPU won't be idle much18:50
mthbut since there is only 1 process that wants to run, you could omit the timer ticks18:51
viricmth: PREEMPT_NONE/PREEMPT_VOLUNTARY/PREEMPT18:51
mthbut the current kernel does not do that18:51
viricah clear.18:51
mthsomeone is working on a patch to change that, but last time I checked it was still very experimental18:52
viricI imagine it's some kind of variable rate scheduler18:52
mthin OpenDingux we originally switched to HZ=1000 + NO_HZ, but that increased the overhead significantly18:52
mthso now we're using HZ=250 + NO_HZ18:52
mththe advantage is that sleep accuracy is now 4 ms instead of 10 ms18:52
viricok18:52
mtha lot of emulators want 60 Hz output, so 10 ms is over half a frame,  not fine grained enough18:53
virichm18:54
viricOk, I'll go 250 for my desktop too18:54
mthhmm, we're using PREEMPT_VOLUNTARY at the moment, maybe we should try PREEMPT_NONE instead18:54
mthalthough the description of PREEMPT_VOLUNTARY says it only preempts at selected places, so maybe that's not so often18:56
AylaPREEMPT_NONE means a much higher latency18:58
viricbut it's the *kernel* preemption, no?18:59
viriclatency in what?18:59
mthyes, but kernel preemption includes syscalls, so it's not fully independent of user space19:00
mthAyla: according to the docs or measured on OD?19:00
viricbut if the syscalls wait...19:00
viricthey go away of the scheduler19:01
viricI don't know. I'll try PREEMPT_NONE in my desktop.19:01
Aylamth: I did test it on OD, I honestly didn't see the difference19:01
mthif a syscall cannot get a semaphore for example, the process will be put in a wait state indeed19:01
Aylabut on OD, we rarely have more than one program running19:01
mthbut with PREEMPT_VOLUNTARY even if the semaphore is available, other processes will get a chance at that point19:02
mthAyla: and was there a different in throughput? (gpmark)19:02
AylaI don't remember the details, that was a long time ago19:03
Aylawhen we switched to 1000Hz19:03
viricwhat is gpmark?19:03
Aylait's a program we use to benchmark the video driver19:03
viricok19:03
viricDo you know any piece that, given a result of 'lsmod', would tell me the kernel options to enable? :)19:04
viriclocalmodconfig19:06
viricincredible19:06
Aylamake localmodconfig19:06
viricand it still keeps them as modules.19:10
virichm interesting19:10
qi-bot[commit] Maarten ter Huurne: SettingsDialog: Code layout cleanup. (master) http://qi-hw.com/p/gmenu2x/fd642ff20:58
qi-bot[commit] Maarten ter Huurne: Surface cleanup. (master) http://qi-hw.com/p/gmenu2x/b248aaf20:58
qi-bot[commit] Maarten ter Huurne: Touchscreen: Avoid constructing an SDL_Rect for is-inside tests. (master) http://qi-hw.com/p/gmenu2x/58d607720:58
qi-bot[commit] Maarten ter Huurne: BrowseDialog: Code layout cleanup. (master) http://qi-hw.com/p/gmenu2x/46f2edb20:58
qi-bot[commit] Maarten ter Huurne: Explicitly convert 32-bit integers to 16-bit. (master) http://qi-hw.com/p/gmenu2x/8f57afc20:58
Aylawhohooo!20:59
mthwe're back at 0 warnings :)21:03
wpwrakmth: so how do you know that the mechanism that generates warnings isn't broken ? :)21:05
mthI'm hoping GCC has unit tests for that21:06
wpwrakheh :)21:07
whitequarkviric: openssl is in openwrt, isn't? and I'm pretty sure it is a requirement for some pretty basic apps21:49
Aylamth: with binutils 2.20.1, uClibc 0.9.31 (so, old versions) and GCC 4.7.0 *without* LTO, the libdl bug is still present21:50
mthok, interesting21:51
viricwhitequark: I hoped so, but we talked about the milkymist21:53
viricdoes the milkymist run owrt?21:53
whitequarkah. no idea.22:05
whitequarkI misread your message then22:05
viric:)22:14
virichm using flashplayer... makes my cs/s go to 4000...22:14
viricha, 1000 came from firefox.22:15
viricvimprobable2 the same22:15
viricmth: if a software makes the cpu go to 4000/5000 cs/s....22:16
viricI better blame the sw, no?22:16
mthcs/s?22:28
Aylacontext switch per second, I guess22:29
viricyes22:30
mthI don't know what a normal amout is, but 4000 does sound very high22:30
mths/amout/amount/22:30
Aylait should be equal to HZ, if the program never sleeps22:31
viricI've no idea why this happens. maybe some preemption22:31
mthflash player is the easiest way to drain your battery in any case22:31
viricit's firefox with its multiples threads22:31
Aylaa context switch will occur if the thread waits for some I/O to finish, is blocked on a mutex, or calls usleep()22:31
viricAyla: this is HZ_250 + NO_HZ, PREEMPT_NONE22:31
mthsometimes I'm not doing anything CPU intensive and notice the laptop getting slightly warn... then it's probably a flash ad in a web page that's still open22:31
Aylaso the number of context switches is HZ minimum, but can be much higher22:32
viricAyla: due to NO_HZ?22:32
mthwith NO_HZ the number of switches can be lower as well22:32
viricok22:32
Aylaviric: no, due to the fact that < Ayla> a context switch will occur if the thread waits for some I/O to finish, is blocked on a mutex, or calls usleep()22:32
viricyes, clear22:32
mthmaybe flash uses a lot of threads that block on semaphores or something22:33
Aylathat's the case for Firefox at least22:33
viricyes22:33
viricthen you get firefox+flash...22:33
mthor is a different thread in the same process the same context?22:33
viricwhich adds up22:33
viricmth: no, not the same context22:33
mthmost browsers just take up a lot of memory, but not CPU if you're not interacting with them22:34
viricha.22:34
mthwhile flash keeps consuming CPU even in the background22:34
viricthere is javascript, flash, ...22:34
mthpoorly written javascript can also be a problem, yes22:34
viricanimated gifs22:35
viricin firefox, even downloading files takes a lot of cpu22:35
Aylamth: a "context" is just the state of the CPU registers, so two threads of the same process don't have the same context22:36
mthanimated gifs don't have to be updated unless the animation is currently visible22:36
viric"dont have to"... :)22:36
mthyeah, theory and practice are often not the same22:37
viricwith elinks, my cs/s average goes ~ 100/s :)22:37
viricmplayer playing a flash video, 500/s22:38
viricall looks like too much for me22:38
viricit only gets reasonable when doing nothing nothing.22:38
Aylawhy should it be "too much"?22:39
Aylagetting a lower number of context switches won't make your system faster22:39
mthwell, a context switch is overhead, so it does help to reduce the count, the question is when it's significant and when not22:40
mthspeaking of context switches, we should add register saving for MXU22:42
Aylagood idea22:43
mthwith a check whether MXU is enabled for the current context: no need to save/restore it if it's not in use22:44
Aylait'd be useful to add the MXU instructions to binutils too22:44
dvdkcould somebody please remove the spambot user "Bailey Helton" who spammed some qi-hw wiki pages last week?  can his changes be reverted automatically?22:56
dvdkkristianpaul^ wolfspraul^22:59
Aylamth: do you know a practical way to make the MXU instructions visible?23:20
AylaI mean something like a lib23:20
mthvisible in what way?23:20
Aylaso that they could be used by several apps or libs, like libpng or mplayer23:22
wolfsprauldvdk: a spammer went through unnoticed? wait I check23:23
mthI don't think we need a lib for that, just inline asm support23:24
mthor maybe intrinsics23:24
dvdkwolfspraul: ha, good to meet you here.  just wanted to drop a mail; sharims.cc/blog has problems with recent iceweasel webbrowser (i.e. debian's firefox)23:25
mthMXU will only be used in performance critical code and it's not easy to write code that is both very efficient and generic23:25
wolfsprauloops23:25
wolfspraulthanks!23:25
wolfsprauljust blocked helton23:25
wolfspraulI think you reverted the edits already, no?23:25
dvdkwolfspraul: wrt shop website, see screenshot im mail23:26
wolfspraulyes will do, thanks a lot!23:27
dvdkwolfspraul: yes found out how to revert.23:30
dvdkwolfspraul: just sent mail.  hope you remember your GPG password :)23:30
dvdkthink website problem is certificate-related.  CSS is accessed via https://?23:30
wolfspraulmaybe the cert just expired? :-) I'll check23:31
dvdkwolfspraul: riht, on april 1st.  ha that was simple23:31
dvdkbtw typo above it's sharism.cc/shop, not /blog23:32
--- Wed Apr 11 201200:00

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