Dave Taht schrieb: > I applied these patch series, and either I goofed (possible), or subsequent > updates to the various trees since the time it came out and the time > I started trying it, broke it again. > > It fails on linux 3.0.9, 3.1.3, 3.1.4 with errors applying stuff to various > mtd partitions. A typical error (3.0.9) > > Applying patch platform/416-mtd_api_tl_mr3x20.patch > patching file arch/mips/ar71xx/mach-tl-mr3x20.c > Hunk #1 FAILED at 34. > Hunk #2 FAILED at 61. > 2 out of 2 hunks FAILED -- rejects in file arch/mips/ar71xx/mach-tl-mr3x20.c > Patch platform/416-mtd_api_tl_mr3x20.patch does not apply (enforce with -f) > make[4]: *** > [/home/cero1/src/cerowrt/build_dir/linux-ar71xx_generic/linux-3.0.9/.quilt_checked] > Error 1 > make[4]: Leaving directory `/home/cero1/src/cerowrt/target/linux/ar71xx' > make[3]: *** [compile] Error 2 > make[3]: Leaving directory `/home/cero1/src/cerowrt/target/linux' > make[2]: *** [target/linux/compile] Error 2 > make[2]: Leaving directory `/home/cero1/src/cerowrt' > make[1]: *** > [/home/cero1/src/cerowrt/staging_dir/target-mips_r2_uClibc-0.9.32/stamp/.target_compile] > Error 2 > make[1]: Leaving directory `/home/cero1/src/cerowrt' > make: *** [world] Error 2 juhosg made some changes during the last week, relating mtd code in ar71xx. I guess, this is the reason for the above problems, but I still need to check on this as soon as I find some time. > > > > On Sun, Nov 27, 2011 at 7:36 PM, Dave Taht <dave.t...@gmail.com> wrote: >> On Sun, Nov 27, 2011 at 6:17 PM, Outback Dingo <outbackdi...@gmail.com> >> wrote: >>> On Sun, Nov 27, 2011 at 11:52 AM, Otto Solares Cabrera <so...@guug.org> >>> wrote: >>>> On Sat, Nov 26, 2011 at 10:37:33PM -0500, Outback Dingo wrote: >>>>> On Sat, Nov 26, 2011 at 10:13 PM, Hartmut Knaack <knaac...@gmx.de> wrote: >>>>>> This patch brings support for kernel version 3.1 to the ar71xx platform. >>>>>> It is based on Otto Estuardo Solares Cabreras linux-3.0 patches, with >>>>>> some changes to keep up with recent filename changes in the kernel. >>>>>> Minimum kernel version seems to be 3.1.1, otherwise one of the generic >>>>>> patches will fail. Successfully tested with kernel 3.1.2 on a WR1043ND. >>>>>> Kernel version in the Makefile still needs to be adjusted manually. >>>>> ill get onto testing these also >>>> It works for me on the wrt160nl with Linux-3.1.3. Thx Hartmut! >>> Also working on WNDR3700v2 and a variety of Ubiquiti gear.... nice.... >>> Thanks both of you. >> My thanks as well, although I haven't had time to do a build yet. IF >> anyone is interested in >> byte queue limits, the patches I was attempting to backport to 3.1 >> before taking off for the holiday, >> including a modified ag71xx driver, are at: >> >> http://huchra.bufferbloat.net/~cero1/bql/ >> >> Regettably they didn't quite compile before I left for holiday, and >> I'm going to have to rebase cerowrt and rebuild, (I'm still grateful!) >> and I figure (hope!) one of you folk will beat me to getting BQL working >> before I get back to the office tuesday. >> >> A plug: >> >> Byte queue limits hold great promise for beating bufferbloat, and getting >> tc's shapers and schedulers to work properly again, at least >> on ethernet. >> >> Byte Queue limits, by holding down the amount of outstanding data that >> the device driver >> has in it, all the QoS and shaping tools that we know and love finally >> get a chance to work again. You can retain high hw tx queue rings - so, as >> an example, you could have a 6k byte queue limit and 4 large packets >> in the buffer, >> or 93 ack packets in the buffer - and this let you manage the bandwidth via >> tools higher in the stack, as either take about the same amount of >> time to transmit, >> without compromising line level performance... >> >> The current situation is: we often have hw tx rings of 64 or higher, >> which translates out to >> 96k in flight, meaning that (as already demonstrated) with this patch >> working, >> you can improve network responsiveness by a factor of at least ten, perhaps >> as >> much as 100. (TCP's response to buffering is quadratic, not linear, >> but there are other >> variables, so... factor 10 sounds good, doesn't it?) >> >> From Tom Herbert's announcement (there was much feedback on netdev, I >> would expect >> another revision to come by) >> >> >> Changes from last version: >> - Rebase to 3.2 >> - Added CONFIG_BQL and CONFIG_DQL >> - Added some cache alignment in struct dql, to split read only, writeable >> elements, and split those elements written on transmit from those >> written at transmit completion (suggested by Eric). >> - Split out adding xps_queue_release as its own patch. >> - Some minor performance changes, use likely and unlikely for some >> conditionals. >> - Cleaned up some "show" functions for bql (pointed out by Ben). >> - Change netdev_tx_completed_queue to do check xoff, check >> availability, and then check xoff again. This to prevent potential >> race conditions with netdev_sent_queue (as Ben pointed out). >> - Did some more testing trying to evaluate overhead of BQL in the >> transmit path. I see about 1-3% degradation in CPU utilization >> and maximum pps when BQL is enabled. Any ideas to beat this >> down as much as possible would be appreciated! >> - Added high versus low priority traffic test to results below. >> >> ---- >> >> This patch series implements byte queue limits (bql) for NIC TX queues. >> >> Byte queue limits are a mechanism to limit the size of the transmit >> hardware queue on a NIC by number of bytes. The goal of these byte >> limits is too reduce latency (HOL blocking) caused by excessive queuing >> in hardware (aka buffer bloat) without sacrificing throughput. >> >> Hardware queuing limits are typically specified in terms of a number >> hardware descriptors, each of which has a variable size. The variability >> of the size of individual queued items can have a very wide range. For >> instance with the e1000 NIC the size could range from 64 bytes to 4K >> (with TSO enabled). This variability makes it next to impossible to >> choose a single queue limit that prevents starvation and provides lowest >> possible latency. >> >> The objective of byte queue limits is to set the limit to be the >> minimum needed to prevent starvation between successive transmissions to >> the hardware. The latency between two transmissions can be variable in a >> system. It is dependent on interrupt frequency, NAPI polling latencies, >> scheduling of the queuing discipline, lock contention, etc. Therefore we >> propose that byte queue limits should be dynamic and change in >> accordance with networking stack latencies a system encounters. BQL >> should not need to take the underlying link speed as input, it should >> automatically adjust to whatever the speed is (even if that in itself is >> dynamic). >> >> Patches to implement this: >> - Dynamic queue limits (dql) library. This provides the general >> queuing algorithm. >> - netdev changes that use dlq to support byte queue limits. >> - Support in drivers for byte queue limits. >> >> The effects of BQL are demonstrated in the benchmark results below. >> >> --- High priority versus low priority traffic: >> >> In this test 100 netperf TCP_STREAMs were started to saturate the link. >> A single instance of a netperf TCP_RR was run with high priority set. >> Queuing discipline in pfifo_fast, NIC is e1000 with TX ring size set to >> 1024. tps for the high priority RR is listed. >> >> No BQL, tso on: 3000-3200K bytes in queue: 36 tps >> BQL, tso on: 156-194K bytes in queue, 535 tps >> No BQL, tso off: 453-454K bytes int queue, 234 tps >> BQL, tso off: 66K bytes in queue, 914 tps >> >> --- Various RR sizes >> >> These tests were done running 200 stream of netperf RR tests. The >> results demonstrate the reduction in queuing and also illustrates >> the overhead due to BQL (in small RR sizes). >> >> 140000 rr size >> BQL: 80-215K bytes in queue, 856 tps, 3.26% >> No BQL: 2700-2930K bytes in queue, 854 tps, 3.71% cpu >> >> 14000 rr size >> BQL: 25-55K bytes in queue, 8500 tps >> No BQL: 1500-1622K bytes in queue, 8523 tps, 4.53% cpu >> >> 1400 rr size >> BQL: 20-38K in queue bytes in queue, 86582 tps, 7.38% cpu >> No BQL: 29-117K 85738 tps, 7.67% cpu >> >> 140 rr size >> BQL: 1-10K bytes in queue, 320540 tps, 34.6% cpu >> No BQL: 1-13K bytes in queue, 323158, 37.16% cpu >> >> 1 rr size >> BQL: 0-3K in queue, 338811 tps, 41.41% cpu >> No BQL: 0-3K in queue, 339947 42.36% cpu >> >> So the amount of queuing in the NIC can be reduced up to 90% or more. >> Accordingly, the latency for high priority packets in the prescence >> of low priority bulk throughput traffic can be reduced by 90% or more. >> >> Since BQL accounting is in the transmit path for every packet, and the >> function to recompute the byte limit is run once per transmit >> completion-- there will be some overhead in using BQL. So far, Ive see >> the overhead to be in the range of 1-3% for CPU utilization and maximum >> pps. >> >> >> >> >> -- >> Dave Täht >> SKYPE: davetaht >> US Tel: 1-239-829-5608 >> FR Tel: 0638645374 >> http://www.bufferbloat.net > >
_______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel