00:00
<
alyssa >
Oh, and I'm up to date according to git branch
00:05
<
alyssa >
"This example is based on a Java algorithm for finding the gcd. (It is not important to understand what this function does.)
00:05
<
alyssa >
Thanks wikipedia.
00:06
<
alyssa >
Actually that whole section is problematic but I shouldn't edit wikipedia on worktime :p
00:13
davidlt has quit [Remote host closed the connection]
00:14
davidlt has joined #panfrost
00:50
unoccupied has joined #panfrost
02:05
davidlt has quit [Ping timeout: 272 seconds]
02:29
_whitelogger has joined #panfrost
02:44
davidlt has joined #panfrost
03:47
megi has quit [Ping timeout: 268 seconds]
04:12
davidlt has quit [Ping timeout: 248 seconds]
07:22
<
tomeu >
alyssa: when I saw "Job's log exceeded limit of 16777216 bytes" it was because we were stuck running once and again the same tests
07:22
<
tomeu >
I'm not looking at it because hopefully we are moving to a proper runner soon
07:55
<
tomeu >
Prf_Jakob: any luck with the arm* deqp runner?
08:08
<
Prf_Jakob >
tomeu: Yupp, I can make a "release" and upload a binary.
08:10
<
Prf_Jakob >
I found out that GDC doesn't support va_args on AArch64, so it's not a Volt issue that stops you from using the virgl approach but a D issue.
08:14
<
tomeu >
Prf_Jakob: but even with that issue, deqp will work?
08:26
<
Prf_Jakob >
tomeu: Yupp
08:27
<
tomeu >
Prf_Jakob: would armhf be much additional work?
08:29
<
Prf_Jakob >
tomeu: I can look into it on the weekend, I know all the simple mechanical work now. Just don't know if I will run into any more hairy armhf is crazy and expect the compiler to do a lot of work.
08:29
<
tomeu >
will give it a try here as soon as you pass me the aarch64 binary
08:30
<
tomeu >
maybe alyssa will let me extend coverage if it's fast enough :)
08:36
<
Prf_Jakob >
Hehe :D
08:59
Elpaulo has quit [Quit: Elpaulo]
09:18
<
Prf_Jakob >
tomeu: Hmm looks like it failed, can't see anything in the log :-/
09:18
<
tomeu >
Prf_Jakob: it failed with:
09:18
<
tomeu >
2019-08-15T09:01:39 Test names file not supplied, use:
09:18
<
tomeu >
2019-08-15T09:01:39 Result file not supplied, use:
09:19
<
tomeu >
wonder how I should generate those
09:19
<
Prf_Jakob >
It's just those long lists of test names
09:29
_whitelogger has joined #panfrost
09:31
<
tomeu >
Prf_Jakob: what about the results file, can I omit one to get the initial results?
09:35
<
Prf_Jakob >
/dev/null ?
09:36
<
Prf_Jakob >
Should work
09:36
<
tomeu >
Prf_Jakob: oh, that's the output results?
09:39
<
tomeu >
nice, let's see
09:41
<
tomeu >
Prf_Jakob: has it been considered omitting passing tests from the results file? to make it more git-friendly
09:41
<
Prf_Jakob >
tomeu: That's a good idea, no I haven't thought about that :)
09:42
<
Prf_Jakob >
tomeu: Can add it if you like
09:42
<
tomeu >
would be awesome :)
09:42
<
Prf_Jakob >
Btw --results-file /dev/null works
09:42
<
tomeu >
I'm outputting to a local file that I cat afterwards
09:42
<
tomeu >
I initially thought that it was the previous results file for comparison
09:45
<
Prf_Jakob >
So there is a couple of things I can do.
09:45
<
Prf_Jakob >
"--results-file -" can output the results to stdout
09:45
<
Prf_Jakob >
And then have a "--log-file <log>" for what usualy goes to stdout.
09:46
<
tomeu >
I think for now things are fine
09:47
raster has joined #panfrost
09:47
<
Prf_Jakob >
Just pruning the results for passing?
09:48
<
tomeu >
Prf_Jakob: oh, i meant that outputting results to a file and having the logs in stdout is fine for me
09:49
<
tomeu >
Prf_Jakob: omitting passes from the results file would be great to have
09:49
<
tomeu >
2019-08-15T09:44:24 /home/jakob/Volt/watt/src/watt/io/file.volt:404: panic: Uncaught exception
09:49
<
tomeu >
2019-08-15T09:44:24 C4watt2io4file13FileException
09:49
<
tomeu >
2019-08-15T09:44:24 couldn't change to path '/deqp/external/openglcts/modules'
09:49
<
tomeu >
I remove a lot of stuff from the deqp install dir, as we're short on ramdisk space
09:49
<
tomeu >
is that needed?
09:49
<
Prf_Jakob >
Yes, I'm pretty sure the deqp runner expects to be launched from that directory
09:50
megi has joined #panfrost
09:50
<
tomeu >
currently I only leave modules/gles2 and it works fine for that
09:50
<
tomeu >
I do have to run deqp-gles2 from /deqp/modules/gles2 though
09:51
<
tomeu >
but not from /deqp/external/openglcts/modules
09:51
<
Prf_Jakob >
Let me check
09:52
<
Prf_Jakob >
So /deqp is the build dir?
09:52
<
Prf_Jakob >
So modules/gles2 is in /deqp/modules/gles2 ?
09:55
<
Prf_Jakob >
Yupp that seems to work
09:56
<
Prf_Jakob >
As long as you don't have any Khr OpenGL tests, as those seems to want a binary from 'external/openglcts/modules'
10:09
<
Prf_Jakob >
tomeu: Looks like I got everything working now. The flag/option will be --no-passed-results / noPassedResults
10:11
<
tomeu >
Prf_Jakob: awesome, are you going to upload a new binary?
10:12
<
Prf_Jakob >
Tiding up the code, committing it and doing a new release
10:16
<
tomeu >
Prf_Jakob: btw, the tag was 0.1.1 but the tarball had 0.0.1
10:17
<
Prf_Jakob >
Yeah I noticed, I'll just remove the old binary.
10:19
<
tomeu >
let's see :) 56553
10:21
<
Prf_Jakob >
*crosses fingers*
10:21
<
Prf_Jakob >
tomeu: Ops, wrong file you tried to unpack :)
11:40
<
tomeu >
oops indeed
11:55
<
tomeu >
looks like it hung towards the end, I think there's some very slow tests
11:55
<
tomeu >
we were skipping them, so I have gone back to it so we can compare pears to pears
12:01
unoccupied has quit [Ping timeout: 268 seconds]
12:06
<
Prf_Jakob >
tomeu: It only took about 4 minutes to run the tests
12:06
<
Prf_Jakob >
If the timestamps are right
12:06
<
tomeu >
yep, and I think with more tests the gains will be bigger
12:07
<
tomeu >
I'm adding regressiona nalysis
12:11
<
Prf_Jakob >
tomeu: Don't forget the --no-passed-results :)
12:11
<
Prf_Jakob >
Ah you did add it :)
12:11
<
tomeu >
yep, should be there
12:27
unoccupied has joined #panfrost
12:36
<
tomeu >
when calculating regressions
12:37
<
Prf_Jakob >
Hmm not really sure
12:38
<
tomeu >
:: Checking for regressions.
12:38
<
tomeu >
Reading file /deqp/expected-failures.txt.
12:38
<
tomeu >
No change(s) found.
12:38
<
tomeu >
:: Printing changes and failing tests.
12:38
<
Prf_Jakob >
Hmm yeah
12:38
<
tomeu >
so there's no regressions but a lot of changes because all(?) tests are marked as incomplete?
12:38
<
tomeu >
or maybe that's all the passing tests?
12:39
<
Prf_Jakob >
Let me check something
12:39
<
Prf_Jakob >
Ooh yeah, when a test isn't listed in the file it's marked as incomplete by default
12:40
<
tomeu >
ok, I think I don't care about the changes, just about regressions
12:40
<
Prf_Jakob >
Well technically it could be seen as a fix
12:40
<
Prf_Jakob >
But yeah I will just ignore that
12:45
<
tomeu >
oh, I'm interested in treating fixes as regressions
12:45
<
tomeu >
Prf_Jakob: so we keep the failures list updated
12:45
<
Prf_Jakob >
But this is a case of the test not being in the regression file
12:45
<
tomeu >
otherwise, if it regresses later, we won't notice
12:45
<
Prf_Jakob >
But being run
12:46
<
tomeu >
yep, that's a passing test
12:46
<
Prf_Jakob >
But is it a "fix"?
12:46
<
Prf_Jakob >
That should fail?
12:47
davidlt has joined #panfrost
12:49
<
Prf_Jakob >
tomeu: What do you think?
12:49
<
tomeu >
Prf_Jakob: yep, if a test passes that we have in the failures list, it should fail the job
12:49
<
tomeu >
because we have a bug in the failures list :p
12:49
<
Prf_Jakob >
tomeu: But if it wasn't in the failure list?
12:50
<
tomeu >
no, that should be the normal case
12:50
davidlt_ has joined #panfrost
12:50
<
tomeu >
almost all tests will pass and won't be in the failures list
12:50
<
Prf_Jakob >
So that shouldn't be treated as a improvement?
12:51
<
tomeu >
Prf_Jakob: hmm, what do you mean by improvement?
12:51
<
Prf_Jakob >
Should it flag the test as a improvement?
12:51
<
Prf_Jakob >
The oposite as regression
12:52
<
tomeu >
a test that passes and isn't in the failures list is the normal case
12:53
<
tomeu >
a test that passes and is in the failures list is considered in practical terms as a regression
12:53
<
tomeu >
a test that fails and is in the failures list isn't reported whatsoever
12:53
davidlt has quit [Ping timeout: 272 seconds]
12:53
<
tomeu >
a test that fails and isn't in the failures list is a regression
12:53
<
Prf_Jakob >
Internally dEQP tracks, improements, regressions.
12:54
<
Prf_Jakob >
Having it print regression when the test improves will confuse people
12:54
<
tomeu >
in 2 and 4, we'd like for deqp to return an error code
12:54
<
tomeu >
ah, what happens currently in virgl? the CI run doesn't fail when a test starts passing unexpectedly?
12:54
<
Prf_Jakob >
Sure, but that's not seperate to if a test has improved or regressed.
12:55
<
Prf_Jakob >
but that is separate...
12:55
<
tomeu >
well, I don't mind much how we call it, as long as the CI run fails in 2 and 4
12:55
davidlt_ is now known as davidlt
12:55
<
Prf_Jakob >
Sure :)
12:55
<
Prf_Jakob >
Just so we get the terminology down :)
12:55
<
tomeu >
ah, improvement sounds great to me
12:57
<
Prf_Jakob >
So a test that fails and that isn't in the regression-file is just a regular failure?
12:58
<
Prf_Jakob >
Yah I guess
13:00
davidlt has quit [Remote host closed the connection]
13:01
davidlt has joined #panfrost
13:01
<
tomeu >
Prf_Jakob: yep
13:01
<
tomeu >
a regular regression
13:04
davidlt has quit [Read error: Connection reset by peer]
13:06
davidlt has joined #panfrost
13:08
davidlt has quit [Remote host closed the connection]
13:13
davidlt_ has joined #panfrost
13:15
davidlt_ has quit [Remote host closed the connection]
13:17
davidlt has joined #panfrost
13:43
<
Prf_Jakob >
tomeu: Also why are you catting the results file? That just spams the log, isn't it better to just use the status printing that dEQP-Volt already does?
13:44
<
tomeu >
Prf_Jakob: already stopped doing that, I just wanted to look at it
13:44
<
tomeu >
now I'm just using the return code
13:49
<
Prf_Jakob >
Ok cool
13:49
<
alyssa >
tomeu: Fair enough, yeah.
13:50
davidlt has quit [Remote host closed the connection]
13:50
davidlt has joined #panfrost
13:52
davidlt has quit [Remote host closed the connection]
13:53
davidlt has joined #panfrost
13:58
<
Prf_Jakob >
tomeu: Ops it's not counting the failing NotListed tests as regression let me fix that.
14:02
<
tomeu >
2019-08-15T13:55:03 + [ 0 -ne 0 ]
14:02
<
tomeu >
2019-08-15T13:55:03 + echo No regressions detected
14:02
<
tomeu >
Prf_Jakob: I thought deqp would return an error code if there's regressions or improvements?
14:03
<
Prf_Jakob >
tomeu: There is two parts of the code, one that counts, and one that prints :)
14:04
<
Prf_Jakob >
tomeu: Cheated and just updated the binary on github :)
14:09
<
Prf_Jakob >
tomeu: You should be able to just re run it
14:10
davidlt has quit [Ping timeout: 248 seconds]
14:17
<
Prf_Jakob >
tomeu: The output is captured over serial right? It looks like it actually take some time to print things to stdout.
14:18
<
Prf_Jakob >
Maybe we should hide the FLIP_FLOP printing as well.
14:18
<
tomeu >
yep, serial can be very slow
14:18
<
tomeu >
well, not that slow, I hope :)
14:19
<
tomeu >
yeah, I think it adds 1s
14:20
<
tomeu >
guess I could remove +x and add some logging
14:20
<
tomeu >
but hopefully that list of flip-flops will disappear once somebody starts caring strongly about compliance
14:24
<
tomeu >
Prf_Jakob: nice, this part is fixed:
14:24
<
tomeu >
2019-08-15T14:23:19 + [ 1 -ne 0 ]
14:24
<
tomeu >
2019-08-15T14:23:19 + echo Regressions detected
14:25
<
Prf_Jakob >
tomeu: Oh right, read it wrong, it adds like two seconds. Thought it added 2 minutes :p
14:25
<
Prf_Jakob >
But removing it would clean up the log :)
14:25
<
tomeu >
looks like a bunch of tests fail under this runner
14:25
<
tomeu >
probably due to concurrency
14:25
<
Prf_Jakob >
At least to me the interesting bits is the dEQP volt output
14:25
<
tomeu >
(and I'm using --no-rerun-tests)
14:26
<
tomeu >
yeah, would be cool to do that
14:26
<
Prf_Jakob >
Also if one test crash in a group the rest of them are not rerun
14:27
<
Prf_Jakob >
But I'm not seeing any bad terminate
14:32
<
tomeu >
robher: with 2G, I see some shrinker activity with 33 instances of glmark
14:33
<
tomeu >
and after a while I started getting the bad page warnings
14:36
<
robher >
tomeu: locking is hard... :(
14:37
<
tomeu >
robher: btw, what did you mean by "might need to check the page count when purging"?
14:40
<
robher >
tomeu: Ensuring pages_use_count is 1. I think that would be redundant, but maybe not. See drm_gem_shmem_is_purgeable().
14:41
<
Prf_Jakob >
tomeu: So it probably is concurrency issues
14:42
<
Prf_Jakob >
I really should do something about the color output as well. The log is hard to read.
14:46
<
robher >
tomeu: we should be able to fix the above locking issue using mutex_trylock instead in panfrost_gem_purge.
14:52
<
tomeu >
Prf_Jakob: we still fail those when running individually
14:54
<
Prf_Jakob >
tomeu: Okay, yeah they should be listed as BadTerminate then
14:55
<
tomeu >
Prf_Jakob: oh, why?
14:55
<
tomeu >
I thought they were normal failures
14:59
<
Prf_Jakob >
tomeu: So BadTerminate means that the deqp-runner crashed and didn't complete the tests.
15:00
<
Prf_Jakob >
Where as Fail means deqp-runner terminated normally but it reported failure.
15:03
JaceAlvejetti has quit [Ping timeout: 250 seconds]
15:03
JaceAlvejetti has joined #panfrost
15:13
<
tomeu >
Prf_Jakob: but we don't have any BadTerminates here, right?
15:13
<
tomeu >
we're just failing the tests, afaics
15:26
<
alyssa >
Anyone know of fancy macro magic so that:
15:26
<
alyssa >
blah(..) { ... }
15:27
<
alyssa >
expands to:
15:27
<
alyssa >
foo(..) { stmt; ... }
15:27
<
alyssa >
without the stmt, I can easily do
15:27
<
alyssa >
#define blah(..) foo(..)
15:27
<
alyssa >
With the statement, I'm at a loss.
15:29
* alyssa
managed by expanding foo itself but gr
15:33
<
Prf_Jakob >
tomeu: Exactly, I just miss understood the output. :)
15:35
<
tomeu >
Prf_Jakob: tomorrow will run one of those tests under valgrind and see if there's anythign interesting
15:47
<
alyssa >
tomeu: Prf_Jakob: The Z/S tests may be legitimately failing
15:47
<
alyssa >
Our older CI just didn't catch it because we were rendering to a window and here I guess we're doing an FBO
15:48
<
alyssa >
So actually the log seems right to me
15:53
davidlt has joined #panfrost
15:59
raster has quit [Remote host closed the connection]
16:07
<
alyssa >
Okay, I have CFG helpers and stuff
16:07
<
alyssa >
so I should be able to actually do this algorithm. I think.
16:28
<
alyssa >
Woahhhhhhhhhhhhh
16:28
<
alyssa >
I'm playing with liveness analysis (done the right way) and it's
16:28
<
alyssa >
starting to make sense??
16:28
<
robher >
alyssa: I think you need (): "({ stmt; ... })"
16:29
<
alyssa >
robher: Hm?
16:30
<
robher >
alyssa: and maybe enclosed in a "do {} while(0)"
16:30
<
robher >
lot's of macro magic in the kernel...
16:34
<
shadeslayer >
688M /tmp/log
16:50
<
alyssa >
Update: I got liveness analysis (the right way) working in the single block case.
16:50
<
alyssa >
Now for real CF..
16:51
<
alyssa >
The good news is that this is, like, making sense?!
16:55
<
alyssa >
Well, onwards, let's do this for multiblock.
17:26
adjtm has joined #panfrost
17:42
Elpaulo has joined #panfrost
17:49
<
robher >
tomeu: can't repro your crashes, but found 2 other bugs...
18:34
stikonas has joined #panfrost
20:58
stikonas has quit [Remote host closed the connection]
21:02
herbmilleriw has joined #panfrost
21:05
<
HdkR >
alyssa: hah, silly const-prop failures
21:06
stikonas has joined #panfrost
21:08
robert_ancell has joined #panfrost
21:25
<
alyssa >
HdkR: \shrug/
21:25
<
alyssa >
HdkR: So I've spent all day trying to wrap my head around liveness analysis
21:25
<
alyssa >
I'm kind of getting there. Maybe.
21:25
<
alyssa >
Loops make things hard.
21:27
<
HdkR >
Yea, loops can make things difficult
21:28
<
alyssa >
Like I've been making progress in places and improving MIR
21:28
<
alyssa >
5 files changed, 99 insertions(+), 22 deletions(-)
21:28
<
alyssa >
of fixes checked in
21:28
<
alyssa >
4 files changed, 241 insertions(+), 64 deletions(-)
21:28
<
alyssa >
of what I have not checked in on top of that and banging my head on
21:29
<
alyssa >
I'm getting a good picture of what actually needs to happen though
21:29
<
alyssa >
And seeing as this morning I knew next to nothing, I mean... that's the speed things happen at
21:46
herbmilleriw has quit [Remote host closed the connection]
21:46
<
alyssa >
Can't tell if I have a regression or I'm just colourblind
21:47
<
alyssa >
No defn regressions in places.
21:48
herbmilleriw has joined #panfrost
22:03
<
alyssa >
I'm reading the shader manually
22:03
<
alyssa >
and i don't see how the new compile is wrong
22:03
<
alyssa >
I suspect vector shenanigans
22:10
<
alyssa >
Vector shenanigan indeeed, uuuuuuuuuuuuuuuuuuugh
22:13
herbmilleriw has quit [Remote host closed the connection]
22:18
Depau has joined #panfrost
22:26
herbmilleriw has joined #panfrost
22:46
herbmilleriw has quit [Remote host closed the connection]
23:25
herbmilleriw has joined #panfrost
23:35
stikonas has quit [Remote host closed the connection]
23:38
<
alyssa >
Bugs. Bugs all the way down.
23:38
<
alyssa >
Okay, need to fix texture ops the right way.