All of lore.kernel.org
 help / color / mirror / Atom feed
* Non-Preempt Test v1.01
@ 2013-10-14 19:05 Raphaël Beamonte
  2013-10-14 22:04 ` Aaron Fabbri
  0 siblings, 1 reply; 4+ messages in thread
From: Raphaël Beamonte @ 2013-10-14 19:05 UTC (permalink / raw)
  To: linux-rt-users, lttng-dev; +Cc: lwn

[-- Attachment #1: Type: text/plain, Size: 1308 bytes --]

Hi all !

I just released the Non-Preempt Test (npt) version 1.01 which is
available here: http://git.dorsal.polymtl.ca/?p=npt.git

The purpose of this tool is to simulate a small real-time system that
runs with a high priority without being stopped or preempted. To do so,
it first sets its environment (cpu affinity, RT scheduler, memory locked
into RAM with mlockall) and can optionally disable the local IRQs if
compiled with the right options (not defined by default).

The core of the application is a loop that calculates the time gap
between the start of two consecutive loops using the rdtsc asm
instruction, thus a similarity with the hwlat_detector kernel module for
kernel analysis. At the end of its execution, npt computes latencies
statistics for each loop and generates a histogram showing the different
latencies reached and the number of time it reached each one.

This tool can be used to analyse and identify overhead of different
realtime applications as we can compare the latencies in each loops and
thus identify the added latency from a "blank" run. It is released
LTTng-ready and can thus be easily traced. Next versions could include
other userspace tracers ability.

Feedback, collaborations and contributions are welcome!

Regards,
Raphaël Beamonte


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Non-Preempt Test v1.01
  2013-10-14 19:05 Non-Preempt Test v1.01 Raphaël Beamonte
@ 2013-10-14 22:04 ` Aaron Fabbri
  2013-10-15 18:46   ` Raphaël Beamonte
  0 siblings, 1 reply; 4+ messages in thread
From: Aaron Fabbri @ 2013-10-14 22:04 UTC (permalink / raw)
  To: Raphaël Beamonte; +Cc: linux-rt-users, lttng-dev, lwn

Thanks for sharing this, will check it out if I get a chance.  Do you
have a http git url that I can clone?  I'm behind a firewall.

On Mon, Oct 14, 2013 at 12:05 PM, Raphaël Beamonte
<raphael.beamonte@gmail.com> wrote:
> Hi all !
>
> I just released the Non-Preempt Test (npt) version 1.01 which is
> available here: http://git.dorsal.polymtl.ca/?p=npt.git
>
> The purpose of this tool is to simulate a small real-time system that
> runs with a high priority without being stopped or preempted. To do so,
> it first sets its environment (cpu affinity, RT scheduler, memory locked
> into RAM with mlockall) and can optionally disable the local IRQs if
> compiled with the right options (not defined by default).
>
> The core of the application is a loop that calculates the time gap
> between the start of two consecutive loops using the rdtsc asm
> instruction, thus a similarity with the hwlat_detector kernel module for
> kernel analysis. At the end of its execution, npt computes latencies
> statistics for each loop and generates a histogram showing the different
> latencies reached and the number of time it reached each one.
>
> This tool can be used to analyse and identify overhead of different
> realtime applications as we can compare the latencies in each loops and
> thus identify the added latency from a "blank" run. It is released
> LTTng-ready and can thus be easily traced. Next versions could include
> other userspace tracers ability.
>
> Feedback, collaborations and contributions are welcome!
>
> Regards,
> Raphaël Beamonte
>
--
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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Non-Preempt Test v1.01
  2013-10-14 22:04 ` Aaron Fabbri
@ 2013-10-15 18:46   ` Raphaël Beamonte
  2013-10-16  0:10     ` Aaron Fabbri
  0 siblings, 1 reply; 4+ messages in thread
From: Raphaël Beamonte @ 2013-10-15 18:46 UTC (permalink / raw)
  To: Aaron Fabbri; +Cc: linux-rt-users, lttng-dev, lwn

On 2013-10-14 18:04, Aaron Fabbri wrote:
> Thanks for sharing this, will check it out if I get a chance.  Do you
> have a http git url that I can clone?  I'm behind a firewall.

Hello Aaron,

Thanks for your interest!
It is now possible to clone the repository using http:
	git clone http://git.dorsal.polymtl.ca/git/npt.git

Regards,
Raphaël
--
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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Non-Preempt Test v1.01
  2013-10-15 18:46   ` Raphaël Beamonte
@ 2013-10-16  0:10     ` Aaron Fabbri
  0 siblings, 0 replies; 4+ messages in thread
From: Aaron Fabbri @ 2013-10-16  0:10 UTC (permalink / raw)
  To: Raphaël Beamonte; +Cc: linux-rt-users, lttng-dev, lwn

Cool.  Just FYI, did a quick run on two machines and got sane results
(maximums near what I'd expect).  First is generic kernel, second is
-RT w/ NO_HZ_FULL & CPU isolation.

1. Desktop (Ivy Bridge , default 3.8.0-31-generic ubuntu 13 kernel)
$ sudo ./npt -n 100 -l 5234567890 -p 80 -e
# CPU affinity set on CPU 1
# Application priority set to 80
# CPU frequency (evaluation): 2594.10 MHz
# Running for 5234567890 loops.. Please wait.
5234567890 loops done.
Loops duration:
        min:            0.004626 us
        max:            303.812622 us
        mean:           0.031345 us
        sum:            164075829.870756 us
        variance:       0.00079042 us
        std dev:        0.028114 us
--------------------------
duration (us)   nb. loops
--------------------------
0               5234494969
1               3629
2               8119
3               15105
4               4112
5               5200
6               1013
7               2176
8               29702
9               1929
10              910
11              309
12              241
13              179
14              47
15              23
16              26
17              22
18              13
19              18
20              31
21              48
22              20
23              6
24              3
25              5
26              3
27              4
28              2
29              4
30              2
31              4
32              2
33              2
34              5
35              1
36              1
39              1
41              1
48              1
56              1
303             1
--------------------------
Overruns (1000000+): 0


2. Server (3.10.10-rt7, isolcpus / NO_HZ_FULL / rcu thread offloading
/ ftrace built, not enabled)

$ sudo ./npt -n 100 -a 10 -l 5234567890 -p80
# CPU affinity set on CPU 10
# Application priority set to 80
# CPU frequency (/proc/cpuinfo): 1995.18 MHz
# Running for 5234567890 loops.. Please wait.
5234567890 loops done.
Loops duration:
        min:            0.014034 us
        max:            31.275311 us
        mean:           0.024035 us
        sum:            125811537.493472 us
        variance:       0.000198279 us
        std dev:        0.014081 us
--------------------------
duration (us)   nb. loops
--------------------------
0               5234536424
1               9870
2               7926
3               2048
4               200
5               30
6               22
7               1491
8               8666
9               307
10              330
11              31
12              1
14              5
15              19
16              103
17              308
18              11
22              7
23              25
24              63
25              1
31              2
--------------------------
Overruns (1000000+): 0


To generate a little load I just did this during both tests:
$ sudo find / -type f -exec md5sum "{}" \; > /dev/null 2>&1

As well as
$ sudo ping -i 0.001 localhost


On Tue, Oct 15, 2013 at 11:46 AM, Raphaël Beamonte
<raphael.beamonte@gmail.com> wrote:
> On 2013-10-14 18:04, Aaron Fabbri wrote:
>> Thanks for sharing this, will check it out if I get a chance.  Do you
>> have a http git url that I can clone?  I'm behind a firewall.
>
> Hello Aaron,
>
> Thanks for your interest!
> It is now possible to clone the repository using http:
>         git clone http://git.dorsal.polymtl.ca/git/npt.git
>
> Regards,
> Raphaël
--
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

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-10-16  0:10 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-14 19:05 Non-Preempt Test v1.01 Raphaël Beamonte
2013-10-14 22:04 ` Aaron Fabbri
2013-10-15 18:46   ` Raphaël Beamonte
2013-10-16  0:10     ` Aaron Fabbri

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.