Re: [RFC/RFT] calloutng

From: Davide Italiano <davide_at_freebsd.org>
Date: Sat, 15 Dec 2012 10:14:37 -0800
On Sat, Dec 15, 2012 at 10:05 AM, Adrian Chadd <adrian_at_freebsd.org> wrote:
> Hi,
>
> Can you please test with MIPS? David has a MIPS board now.
>

Quoting from my first mail -- "We tested the code on amd64, MIPS and arm."
I used the board you gave to me. I run only some "basic" tests, but I
can look forward running something more complicated in order to track
regressions (if any).

> Can you also test that various performance tests haven't been
> affected? Eg, do iperf tests through that MIPS board, configured up as
> an AP.
>

Can you be more specific? Do we need it configured as AP or this
situation can be in some way simulated?

> Please test with a bunch of disk IO activity too.
>

What benckmark/tool do you suggest? iozone? Do you think is better
attaching some external drive and run test on that rather than on the
flash present on the board?

> I know this is a lot to ask for, but I'd hate to see some driver /
> subsystem behaviour change because you didn't quite see the evil way
> the callout mechanism is used, or how the timer stuff is affecting
> driver pre-emption.
>

I understand your concerns. I'll try to do my best in order to heavily
test. Any kind of suggestion is obviously appreciated.

> Thanks,
>
>
> Adrian
>
> On 15 December 2012 08:55, Alexander Motin <mav_at_freebsd.org> wrote:
>> Hi.
>>
>> I'm sorry to interrupt review, but as usual good ideas came during the final
>> testing, causing another round. :)  Here is updated patch for HEAD, that
>> includes several new changes:
>> http://people.freebsd.org/~mav/calloutng_12_15.patch
>>
>> The new changes are:
>>  -- Precision and event aggregation code was reworked. Instead of previous
>> -prec/+prec representation, precision is now single-sided -- -0/+prec. It
>> allowed to significantly improve precision on long time intervals for APIs
>> which imply that event should not happen before the specified time.
>> Depending on CPU activity, mistake for long time intervals now will never be
>> more then 1-500ms, even if specified precision allows more.
>>  -- Some minor optimizations were made to reduce callout overhead and
>> latency by 1.5-2us. Now on Core2Duo amd64 system with LAPIC eventtimer and
>> TSC timecounter usleep(1) call from user-level executes in just 5-6us,
>> instead of 7-8us before. Now it can do 180K cycles per second on single CPU
>> with only partial CPU load.
>>  -- Number of kernel subsystems (dcons, syscons, yarrow, led, atkbd,
>> setrlimit) were modified to reduce number of interrupts, also with event
>> aggregation by explicit specification of the acceptable events precision.
>> Now my Core2Duo test system has only 30 interrupts per second in idle. If
>> not remaining syscons events, it could easily be 15. My IvyBridge ultrabook
>> first time in its history shown 5.5 hours of battery time with full screen
>> brightness and 10 hours with lid closed.
>>  -- Some kernel functions were added to make KPIs more complete.
>>
>> I've successfully tested this patch on amd64 and arm.
>>
>> --
>> Alexander Motin
>>
>> _______________________________________________
>> freebsd-arch_at_freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-arch
>> To unsubscribe, send any mail to "freebsd-arch-unsubscribe_at_freebsd.org"
Received on Sat Dec 15 2012 - 17:14:39 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:33 UTC