[OpenWrt-Devel] speed up ath10k-caldata extraction for non-ipq40xx
Christian Lamparter
chunkeey at gmail.com
Fri Feb 22 05:08:51 EST 2019
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 || \
>
> […]
>
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
More information about the openwrt-devel
mailing list