From: "Max Müller" <mxmr@gmx.net>
To: Clark Williams <williams@redhat.com>
Cc: linux-rt-users@vger.kernel.org
Subject: Re: Tweak Latency on Intel ATOM
Date: Mon, 15 Feb 2010 10:32:54 +0100 [thread overview]
Message-ID: <4B7914C6.8080005@gmx.net> (raw)
In-Reply-To: <20100211093447.3c0a97cd@torg>
Clark Williams schrieb:
> On Thu, 11 Feb 2010 08:54:29 +0100
> Max Müller <mxmr@gmx.net> wrote:
>
>
>> Clark Williams schrieb:
>>
>>> On Tue, 9 Feb 2010 07:41:58 +0000 (UTC)
>>> Max Miller <mxmr@gmx.net> wrote:
>>>
>>>
>>>
>>>> Hello,
>>>>
>>>> im am using the PREEMPT-RT patch on linux 2.6.29.6. It runs on a MSI965GSE
>>>> industial board with Intel ATOM CPU (N270, 1,6GHz) and i945GSE Northbridge.
>>>>
>>>> I got about 45µs as maximum and 13µs as average latency when hyperthreading is
>>>> disabled. With enabled Hyperthreading the maximum latency increses to about
>>>> 100µs. I measured the latency with cyclictest.
>>>>
>>>> What can i do to get better maximum latency? Can I do somthing in the kernel
>>>> configuration or are there some kernel bootoptions? Or is it still impossible
>>>> with this CPU to get better results?
>>>>
>>>> Thanks in advance,
>>>> Max Miller
>>>>
>>>>
>>>>
>>>>
>>> Make sure you turn off any power management settings in the BIOS and
>>> turn off the irqbalance and cpuspeed services on the Linux side.
>>>
>>> What cyclictest command are you using to measure latency?
>>>
>>> Clark
>>>
>>>
>> I run cyclictest as follows:
>>
>> cyclictest -n -t3 -p99
>>
>
> You might want to try the new cyclictest option --smp (which is really
> the options -t, -a -n) and I'd back the priority down to -p95 just to
> keep out of the way of watchdog and migration threads. In general, when
> I run it on a multi-core box I use:
>
> $ cyclictest --smp -m -p95 -d0
>
> Lately on AMD boxes I use --numa, which makes calls into libnuma to
> allocated memory on local nodes for the measurement threads.
>
> If you want to get fancy and look at at the history of the run, you can
> use the -h <n> option to keep a histogram of <n> buckets (1 bucket == 1
> microsecond).
>
>
>> For generating additional system load i run (one to several instances):
>>
>> while true; do echo "blah" > /dev/null; done &
>>
>> Then i watch the max. latency from the thread with the highest priority.
>> Sometimes i add the parameter '-h' to generate a history. In this
>> history i can
>> see that the most latency times are under 20µs, only about 5ppm are
>> worse than 30µs.
>> Am i doing this correctly?
>>
>
> You're seeing some nice numbers there (any max latency under 100us is
> pretty good).
>
> I have a python program I've been developing named 'rteval' which kicks
> off a kernel compile and a scheduler benchmark called 'hackbench', then
> runs cyclictest with the histogram option. After the run it generates a
> report on how well cyclictest did with the loads in place. If you're
> interested, you can get rteval from my kernel.org git repo:
>
> $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rteval.git
>
> It's not 100% complete, but it's getting there.
>
>
>> The only powersave setting in the BIOS is "Intel speedstep" which i
>> disabled.
>>
>>
>> I will check with disabled "irqbalance and cpuspeed services" disabled
>> and will report later.
>>
>>
>> What should the adequate max. latency on this system?
>>
>>
>>
>
> I'd say you're doing pretty good keeping under 50us. You might want to
> try it under a heavier load than the shell script you've been running.
> If you don't want to fool with rteval, try kicking off a kernel compile
> in another window like this:
>
> $ while true; do make -j4 clean bzImage modules; done
>
> and then run cyclictest. A kernel compile with parallel jobs (-j) is a
> good overall load of computation and I/O.
>
>
I tested now like you told me with irqbalance and cpuspeed services
disabled. I hope i made the right for disabling irqbalance, i used the
kernel parameter acpi_no_irqbalance. Is this correct? Unfortunately the
results were nearly equal as before.
For measureing latency i did now the following:
-compile kernel (for high system load)
-running cyclictest -n -m -t3 -p94 (for having some running high
priority threads)
-running cyclictest -n -m -h80 -p95 -l6000000 (for latency measurement)
I will also test your python program the next days.
I have now about 50µs worst case latency and about 15µs average latency.
Greetings,
Max
--
To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-02-15 9:32 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-09 7:41 Tweak Latency on Intel ATOM Max Miller
2010-02-10 22:38 ` Clark Williams
2010-02-11 7:54 ` Max Müller
2010-02-11 15:34 ` Clark Williams
2010-02-15 9:32 ` Max Müller [this message]
2010-02-15 14:38 ` Clark Williams
2010-02-16 6:50 ` Max Müller
2010-02-16 12:18 ` Luis Claudio R. Goncalves
2010-02-17 6:26 ` Max Müller
2010-02-12 20:54 ` mapping of PCI memory to user space not working with uio.c ? Armin Steinhoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B7914C6.8080005@gmx.net \
--to=mxmr@gmx.net \
--cc=linux-rt-users@vger.kernel.org \
--cc=williams@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.