[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