Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
W
White Rabbit Trigger Distribution
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
White Rabbit Trigger Distribution
Commits
d11dc850
Commit
d11dc850
authored
Sep 07, 2018
by
Tristan Gingold
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wrtd-freqmeter: fix pasto in wrtd_ts_sub.
parent
0c39d7b3
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
6 deletions
+38
-6
libwrtd-common.c
software/lib/libwrtd-common.c
+1
-1
wrtd-freqmeter.c
software/stresstests/wrtd-freqmeter.c
+37
-5
No files found.
software/lib/libwrtd-common.c
View file @
d11dc850
...
...
@@ -287,7 +287,7 @@ int wrtd_ts_sub(struct wr_timestamp *res,
rticks
=
r
->
ticks
+
(
carry
?
1
:
0
);
carry
=
l
->
ticks
<
rticks
;
res
->
ticks
=
(
carry
?
125000000
:
0
)
+
l
->
ticks
-
r
->
ticks
;
res
->
ticks
=
(
carry
?
125000000
:
0
)
+
l
->
ticks
-
rticks
;
rsecs
=
r
->
seconds
+
(
carry
?
1
:
0
);
if
(
l
->
seconds
<
rsecs
)
...
...
software/stresstests/wrtd-freqmeter.c
View file @
d11dc850
...
...
@@ -90,7 +90,8 @@ static void print_ns(uint64_t ns)
static
void
print_ts
(
struct
wr_timestamp
ts
)
{
printf
(
"%lu:"
,
(
unsigned
long
)
ts
.
seconds
);
print_ns
(
ts
.
ticks
*
8ULL
);
print_ns
(
ts
.
ticks
*
8ULL
+
(
ts
.
frac
*
8
/
4096
));
printf
(
"+%03df"
,
ts
.
frac
&
0x1ff
);
}
static
void
disp_timing
(
int
count
)
...
...
@@ -197,6 +198,7 @@ static void disp_graph(int count)
uint64_t
max_period
;
uint64_t
period
;
uint64_t
bin_width
;
uint64_t
sum
;
#define CBINS 10
#define NBINS (2*CBINS + 1)
int
bins
[
NBINS
];
...
...
@@ -213,8 +215,9 @@ static void disp_graph(int count)
max_period
=
0
;
min_period
=
-
1
;
sum
=
0
;
for
(
i
=
1
;
i
<=
count0
;
i
++
)
{
for
(
i
=
0
;
i
<
count0
;
i
++
)
{
/* Get stats. */
do
AssertIntEquals
(
0
,
wrtd_in_state_get
(
wrtd
,
channel
,
&
sti
));
...
...
@@ -225,6 +228,27 @@ static void disp_graph(int count)
&
sti
.
last_pulse
,
&
last_ts
));
wrtd_ts_to_pico
(
&
d
,
&
pico
);
if
(
verbose
)
{
struct
wr_timestamp
d1
;
uint64_t
pico1
;
// Note: drifting due to rounding.
sum
+=
pico
;
printf
(
"Delay: %12"
PRIu64
"ps "
,
pico
);
print_ts
(
d
);
printf
(
", abs: "
);
print_ts
(
sti
.
last_pulse
);
printf
(
"
\n
"
);
AssertIntEquals
(
0
,
wrtd_ts_sub
(
&
d1
,
&
sti
.
last_pulse
,
&
first_ts
));
wrtd_ts_to_pico
(
&
d1
,
&
pico1
);
if
(
abs
(
pico1
-
sum
)
>
(
i
+
2
))
{
printf
(
"pico1: %12"
PRIu64
"ps, sum: %12"
PRIu64
"ps
\n
"
,
pico1
,
sum
);
break
;
}
}
if
(
pico
>
max_period
)
max_period
=
pico
;
if
(
pico
<
min_period
)
...
...
@@ -243,10 +267,18 @@ static void disp_graph(int count)
}
// Compute period.
AssertIntEquals
(
0
,
wrtd_ts_sub
(
&
d
,
&
sti
.
last_pulse
,
&
first_ts
));
AssertIntEquals
(
0
,
wrtd_ts_sub
(
&
d
,
&
last_ts
,
&
first_ts
));
wrtd_ts_to_pico
(
&
d
,
&
period
);
if
(
verbose
)
{
printf
(
"last ts: "
);
print_ts
(
last_ts
);
printf
(
", first ts: "
);
print_ts
(
first_ts
);
printf
(
"
\n
"
);
printf
(
"diff: "
);
print_ts
(
d
);
printf
(
" = %12"
PRIu64
"ps
\n
"
,
period
);
}
period
/=
count0
;
printf
(
"Mean period: %12"
PRIu64
"ps
\n
"
,
period
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment