Date: Sat, 16 May 2015 20:58:13 +0900 From: "Daisuke Aoyama" <aoyama@peach.ne.jp> To: "Andreas Andersson" <aandersson@tappsi.co>, <freebsd-arm@freebsd.org> Subject: Re: Performance issues with raspberry pi 2 Message-ID: <B74C9AF8E1FD4AA596BBF09292FE52B4@ad.peach.ne.jp> In-Reply-To: <CAOx9_ZiZmmrSBkf1quzW-zkbW0nNg08rAAV__7FHRdCbTCzt-g@mail.gmail.com> References: <CAOx9_ZiUw5nkBK=Bsumb=K2W1hv0P%2BNAwT7OXE7VAz_96awqOw@mail.gmail.com> <3AB5ECCF20894591B4DF5FCBA8CA49BB@ad.peach.ne.jp> <CAOx9_Zg5WGUAvmmhAkUsgUM-H%2Bp9MWzmWjHnXfKAAxFoEuwrLg@mail.gmail.com> <CAOx9_ZiZmmrSBkf1quzW-zkbW0nNg08rAAV__7FHRdCbTCzt-g@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi, FreeBSD cant get faster than Linux driver because we use IRQ on dwc_otg.c. Linux driver use FIQ instead. However, there is many problems in dwc_otg.c. I don't like polling solution used in dwc_otg.c which prevent urgent interrupt but you may need this patch. http://www.peach.ne.jp/archives/rpi/patch/dwc_otg-rpi2-20150516.patch This patch is subset of my USB patch of ODROID-C1 4x faster version on 1Gbps. http://lists.freebsd.org/pipermail/freebsd-arm/2015-March/010783.html It will provide about 1.5-2.0x faster than unpached dwc_otg.c on SMP kernel. I think it's not best on SMP kernel but enough to test on 100Mbps. It improves network performance because RPi2 use USB Ether. Try it. -------------------------------------------------- From: "Andreas Andersson" <aandersson@tappsi.co> Sent: Friday, May 15, 2015 5:25 PM To: <freebsd-arm@freebsd.org> Subject: Re: Performance issues with raspberry pi 2 > Still getting very low results > > ab -n 10000 -c 100 -T "application/json" -p postfile > http://172.16.0.9:8888/api/v1/alarm/ > This is ApacheBench, Version 2.3 <$Revision: 655654 $> > Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ > Licensed to The Apache Software Foundation, http://www.apache.org/ > > Benchmarking 172.16.0.9 (be patient) > Completed 1000 requests > Completed 2000 requests > Completed 3000 requests > Completed 4000 requests > Completed 5000 requests > Completed 6000 requests > Completed 7000 requests > Completed 8000 requests > Completed 9000 requests > Completed 10000 requests > Finished 10000 requests > > > Server Software: TornadoServer/4.1 > Server Hostname: 172.16.0.9 > Server Port: 8888 > > Document Path: /api/v1/alarm/ > Document Length: 16 bytes > > Concurrency Level: 100 > Time taken for tests: 123.976 seconds > Complete requests: 10000 > Failed requests: 0 > Write errors: 0 > Total transferred: 1590000 bytes > Total POSTed: 2650000 > HTML transferred: 160000 bytes > Requests per second: 80.66 [#/sec] (mean) > Time per request: 1239.759 [ms] (mean) > Time per request: 12.398 [ms] (mean, across all concurrent requests) > Transfer rate: 12.52 [Kbytes/sec] received > 20.87 kb/s sent > 33.40 kb/s total > > Connection Times (ms) > min mean[+/-sd] median max > Connect: 1 17 225.3 1 6205 > Processing: 17 1218 461.1 1057 2782 > Waiting: 17 1214 460.8 1053 2761 > Total: 26 1235 521.9 1059 7131 > > Percentage of the requests served within a certain time (ms) > 50% 1059 > 66% 1194 > 75% 1294 > 80% 1495 > 90% 2006 > 95% 2164 > 98% 2428 > 99% 2621 > 100% 7131 (longest request) > > The corresponding result for raspbian is around 250 req/s. > > > One thing I've noticed when comparing the consumer for the same project > > (reads from rabbitmq, gets and acks the messages and then discards them) it > works perfectlly with raspbian. The number of get's corresponds with the > number of acks from the queue in rabbitmq. Whereas freebsd 11 on rpi2 does > not do this. It has a rather high number of rabbitmq (4-500 get/s), but > almost no ACKs (1-1.5 ACK/s). on raspbian this number is ~250/s for both > GET and ACK. > > I am running powerd with these settings: > > powerd_flags="-M 900" > > > > > 2015-05-15 8:27 GMT+02:00 Andreas Andersson <aandersson@tappsi.co>: > >> I just set debug.cpufreq.lowest=900 in sysctl.conf (Would it be better to >> have this set in /boot/loader.conf?) and enabled powerd. INVARIANTS is also >> disabled in this kernel. >> >> Will come back with results. >> >> 2015-05-15 4:38 GMT+02:00 Daisuke Aoyama <aoyama@peach.ne.jp>: >> >>> Hi, >>> >>> But freebsd 11 on rpi2 suffers permance issues. Severely. >>>> >>>> For instance, the same code I am running (tornado project which inserts >>>> stuff to rabbitmq) is running at ~190 req/s or 190 publishments/sec (to >>>> rabbitmq) on raspbian. >>>> >>>> On FreeBSD 11 this is at around 85/s. >>>> >>> >>> Did you enable powerd? >>> RPi2 firmware boot up with 600MHz(power saved mode). It's slower than >>> RPi1 such as model B+. >>> The maximum rated frequency(900MHz in RPi2 case) can be used when you >>> enable powerd or set sysctl value. >>> powerd is requirement on RPi2, not an option like RPi1 anymore. >>> >>> I suggest that you enable powerd in FreeBSD official image and/or crochet >>> for RPi2. >>> >>> Regards, >>> -- >>> Daisuke Aoyama >>> >>> >>> >> > _______________________________________________ > freebsd-arm@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-arm > To unsubscribe, send any mail to "freebsd-arm-unsubscribe@freebsd.org"
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?B74C9AF8E1FD4AA596BBF09292FE52B4>