Date: Mon, 26 Sep 2011 22:10:27 +0800 From: Adrian Chadd <adrian@freebsd.org> To: John Baldwin <jhb@freebsd.org> Cc: Alexander Motin <mav@freebsd.org>, freebsd-current@freebsd.org Subject: Re: ath / 802.11n performance issues and timer code Message-ID: <CAJ-Vmom721ndMmSihA=58Fux-JBWHo1rA82FXYa__mmaRMW=tQ@mail.gmail.com> In-Reply-To: <201109260917.44236.jhb@freebsd.org> References: <CAJ-VmomZyDJV62yCQOvG=UB6H4wfz9=3_cWzEL7vWAA14TCyYA@mail.gmail.com> <4E7D6700.4080302@FreeBSD.org> <CAJ-Vmo=kScoove4_dvj_-LS%2BWnWhF4aWU9FrWF4=5kYr06-AoA@mail.gmail.com> <201109260917.44236.jhb@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 26 September 2011 21:17, John Baldwin <jhb@freebsd.org> wrote: > On Sunday, September 25, 2011 5:48:31 am Adrian Chadd wrote: >> Nope, it has the opposite effect: >> >> * Increased latency may make aggregation better (for TX) but it limits >> throughput because TCP senses a latency increase; > > I suspect this matters more. =A0Have you tried comparing UDP throughput i= n the > two cases? Yes, UDP performance from the MIPS boards (running iperf) is just plain silly and low. It's better from the i386 based eeepc (I can get around 200mbit before things croak it, but I _should_ be able to schedule ~ 250mbit with maximum aggregation and no airtime errors / retries, which I _can_ achieve in controlled conditions.) I haven't yet dug into that. It may be related. > One behavioral difference of a periodic timer vs a deadline timer is that= if > you ask to delay for "1 clock tick", that can be anywhere from 0us to 100= 0us > (with hz =3D=3D 1000) when using the periodic timer (because you can set = the > callout at any time within a tick, but the callout will fire at the start= of > the next tick). =A0However, for a deadline timer, the TCP timer will alwa= ys fire > 1000us after you set the timer. Right. Hm, what about scheduling in general though? Ie, if I'm scheduling a taskqueue run, the taskqueue caller does: * lock queue * schedule next task queue * call wakeup_one Which should wake up a/the taskqueue thread in question and have it immediately run the next task on the queue. The taskqueue doesn't have any form of timer/callout; it's just a "submit this to get run." When will it be run? I hope not at the next tick, not if the CPU is free. Adrian
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmom721ndMmSihA=58Fux-JBWHo1rA82FXYa__mmaRMW=tQ>