[OpenWrt-Devel] speed up ath10k-caldata extraction for non-ipq40xx
Etienne Champetier
champetier.etienne at gmail.com
Fri Feb 22 13:59:40 EST 2019
Hi All,
Le ven. 22 févr. 2019 à 03:33, Dmitry Tunin <hanipouspilot at gmail.com> a écrit :
>
> This is useful for ath9k extraction as well.
>
> пт, 22 февр. 2019 г. в 13:09, Christian Lamparter <chunkeey at gmail.com>:
> >
> > Hello,
> >
> > On Wednesday, February 20, 2019 7:26:55 PM CET Adrian Schmutzler wrote:
> > > just saw the commit “ipq40xx: speed up ath10k-caldata extraction”:
> > >
> > > https://github.com/openwrt/openwrt/commit/a69e101ed1169f562fc030a783cd997d3f066b16
> > >
> > > Is this specific to ipq40xx for some reason not obvious to me or can other targets like ath79/ar71xx be “enhanced” similarly:
> > >
> > > https://github.com/openwrt/openwrt/blob/master/target/linux/ath79/base-files/etc/hotplug.d/firmware/11-ath10k-caldata#L45
> > >
> > > https://github.com/openwrt/openwrt/blob/master/target/linux/ar71xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata#L33
> > >
> > > (at least two affected lines in each file)
> > >
> > > […]
> > >
> > > dd if=$mtd of=/lib/firmware/$FIRMWARE bs=1 skip=$offset count=$count 2>/dev/null || \
> > >
> > > […]
> > >
> > > changed to
> > >
> > > […]
> > >
> > > dd if=$mtd of=/lib/firmware/$FIRMWARE bs=$count skip=$offset count=1 iflag=skip_bytes 2>/dev/null || \
If you don't have skip_bytes option, you can also do something like:
tail -c +$offset $mtd | head -c $count
(maybe i'm of by 1 bytes for the tail, to be tested)
Regards
Etienne
>
> > >
> > > […]
> > >
> >
> > No this isn't specific to the ipq40xx. In fact as you said on a the
> > ath79 device it can make a bigger difference.
> >
> > For example on my ath79 WD MyNet Range Extender (AR9344-like, s25fl064k)
> > it goes from:
> >
> > strace -c dd if=/dev/mtd6 of=/lib/firmware/test-slow bs=1 count=4096 skip=4096
> > 4096+0 records in
> > 4096+0 records out
> > % time seconds usecs/call calls errors syscall
> > ------ ----------- ----------- --------- --------- ----------------
> > 99.37 15.695454 3831 4096 write
> > 0.63 0.098808 24 4097 read
> > 0.00 0.000050 50 1 writev
> > 0.00 0.000044 8 5 close
> > 0.00 0.000000 0 4 1 open
> > 0.00 0.000000 0 1 execve
> > 0.00 0.000000 0 1 getuid
> > 0.00 0.000000 0 2 dup2
> > 0.00 0.000000 0 2 mprotect
> > 0.00 0.000000 0 1 _llseek
> > 0.00 0.000000 0 1 prctl
> > 0.00 0.000000 0 1 rt_sigaction
> > 0.00 0.000000 0 1 rt_sigprocmask
> > 0.00 0.000000 0 2 mmap2
> > 0.00 0.000000 0 1 fstat64
> > 0.00 0.000000 0 1 fcntl64
> > 0.00 0.000000 0 1 set_tid_address
> > 0.00 0.000000 0 1 set_thread_area
> > ------ ----------- ----------- --------- --------- ----------------
> > 100.00 15.794356 8219 1 total
> >
> > compared to:
> >
> > strace -c dd if=/dev/mtd6 of=/lib/firmware/test-fast bs=4096 count=1 skip=4096 iflag=skip_bytes
> > 1+0 records in
> > 1+0 records out
> > % time seconds usecs/call calls errors syscall
> > ------ ----------- ----------- --------- --------- ----------------
> > 87.12 0.014953 14953 1 write
> > 5.29 0.000908 454 2 read
> > 3.02 0.000518 129 4 1 open
> > 1.42 0.000244 122 2 mprotect
> > 1.32 0.000226 113 2 mmap2
> > 0.42 0.000072 14 5 close
> > 0.31 0.000053 53 1 writev
> > 0.22 0.000037 18 2 brk
> > 0.15 0.000025 25 1 set_thread_area
> > 0.13 0.000022 11 2 dup2
> > 0.10 0.000017 17 1 execve
> > 0.09 0.000016 16 1 fstat64
> > 0.09 0.000015 15 1 prctl
> > 0.07 0.000012 12 1 _llseek
> > 0.06 0.000011 11 1 rt_sigprocmask
> > 0.06 0.000010 10 1 fcntl64
> > 0.05 0.000009 9 1 rt_sigaction
> > 0.05 0.000008 8 1 set_tid_address
> > 0.04 0.000007 7 1 getuid
> > ------ ----------- ----------- --------- --------- ----------------
> > 100.00 0.017163 31 1 total
> >
> >
> > So, this should help to speed up the initial installation tremendously.
> > Especially if the overlay the device uses jffs2 it seems. If you want
> > to provide patches, please do so (and please add some performance
> > numbers too).
> >
> > Cheers,
> > Christian
> >
> >
> >
> > _______________________________________________
> > openwrt-devel mailing list
> > openwrt-devel at lists.openwrt.org
> > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
>
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel
More information about the openwrt-devel
mailing list