02:03
<
sb0 >
whitequark, speaking of glitches, you get the copy loop into the instruction cache (never heard of this I$$ abbreviation) but how do you get it out?
03:40
rohitksingh has joined #m-labs
03:48
rohitksingh1 has joined #m-labs
03:50
rohitksingh has quit [Ping timeout: 240 seconds]
03:50
rohitksingh has joined #m-labs
03:52
rohitksingh1 has quit [Ping timeout: 260 seconds]
04:06
rohitksingh has quit [Ping timeout: 260 seconds]
04:35
<
whitequark >
sb0: it's actually I$ but the $ is escaped in inline assembly
04:37
<
whitequark >
sb0: anyway, crt0 does that
04:43
sb0 has quit [Quit: Leaving]
05:05
<
GitHub1 >
[smoltcp] little-dude opened pull request #11: implement IntoIterator for SliceCache (master...master)
https://git.io/vyRvR
05:11
kuldeep has quit [Remote host closed the connection]
05:13
kuldeep has joined #m-labs
06:00
AndChat|326081 has quit [Quit: Bye]
06:00
AndChat326081 has joined #m-labs
06:04
<
GitHub47 >
smoltcp/master bd9a6bf Corentin Henry: arp: use valid unicast ip addresses for tests
06:05
<
GitHub82 >
smoltcp/master eeaf7b6 Corentin Henry: arp: increment lru when inserting a new entry
06:06
<
travis-ci >
m-labs/smoltcp#91 (master - bd9a6bf : Corentin Henry): The build passed.
06:09
<
travis-ci >
m-labs/smoltcp#92 (master - eeaf7b6 : Corentin Henry): The build passed.
06:14
hedgeberg is now known as hedgeberg|away
06:22
rohitksingh has joined #m-labs
06:22
mumptai has joined #m-labs
06:26
<
GitHub106 >
smoltcp/master 4e364d8 whitequark: Trace eviction and fill in SliceArpCache.
06:28
<
travis-ci >
m-labs/smoltcp#93 (master - 4e364d8 : whitequark): The build passed.
06:33
<
GitHub148 >
smoltcp/master 15cf0cc whitequark: Don't put non-unicast (IP or Ethernet) addresses into ARP cache....
06:35
<
travis-ci >
m-labs/smoltcp#94 (master - 15cf0cc : whitequark): The build passed.
06:49
AndChat|326081 has joined #m-labs
06:52
AndChat326081 has quit [Ping timeout: 260 seconds]
07:02
AndChat|326081 has quit [Quit: Bye]
07:03
AndChat326081 has joined #m-labs
07:04
rohitksingh has quit [Ping timeout: 246 seconds]
07:23
AndChat|326081 has joined #m-labs
07:24
AndChat|326081 has quit [Client Quit]
07:24
AndChat|326081 has joined #m-labs
07:24
AndChat326081 has quit [Read error: Connection reset by peer]
07:26
FabM has quit [Ping timeout: 246 seconds]
07:28
kuldeep has quit [Remote host closed the connection]
07:28
kuldeep_ has joined #m-labs
07:41
AndChat326081 has joined #m-labs
07:41
FabM has joined #m-labs
07:45
AndChat|326081 has quit [Ping timeout: 240 seconds]
07:54
FabM has quit [Ping timeout: 246 seconds]
07:57
cedric has quit [Ping timeout: 260 seconds]
07:58
sandeepkr has quit [Ping timeout: 240 seconds]
08:02
cedric has joined #m-labs
08:02
cedric has joined #m-labs
08:02
cedric has quit [Changing host]
08:02
sandeepkr has joined #m-labs
08:08
FabM has joined #m-labs
08:14
rohitksingh has joined #m-labs
08:24
rohitksingh has quit [Quit: Leaving.]
08:28
FabM has quit [Ping timeout: 258 seconds]
08:42
FabM has joined #m-labs
08:47
AndChat326081 has quit [Ping timeout: 240 seconds]
08:49
AndChat326081 has joined #m-labs
08:54
AndChat326081 has quit [Ping timeout: 256 seconds]
08:56
AndChat326081 has joined #m-labs
09:24
mumptai has quit [Remote host closed the connection]
09:51
kuldeep_ has quit [Read error: Connection reset by peer]
09:51
kuldeep_ has joined #m-labs
09:57
kuldeep_ has quit [Remote host closed the connection]
09:57
kuldeep_ has joined #m-labs
10:18
<
GitHub147 >
smoltcp/master 293ea51 whitequark: Improve handling of TCP ACK packets in FIN-* states....
10:20
<
travis-ci >
m-labs/smoltcp#95 (master - 293ea51 : whitequark): The build passed.
10:45
sandeepkr has quit [Ping timeout: 268 seconds]
11:22
<
GitHub88 >
smoltcp/master 1622244 whitequark: Clamp TCP receive window to MSS multiplied by maximum burst size....
11:22
<
GitHub88 >
smoltcp/master 7381e7f whitequark: fn Device::mtu() -> usize → Device::limits() -> DeviceLimits
11:22
<
GitHub88 >
smoltcp/master 1874549 whitequark: Bump version....
11:26
<
travis-ci >
m-labs/smoltcp#96 (master - 1622244 : whitequark): The build passed.
11:44
<
whitequark >
sb0: I made smoltcp quite a bit more robust when receiving large amounts of data
12:05
AndChat326081 has quit [Quit: Bye]
12:05
AndChat326081 has joined #m-labs
12:10
AndChat326081 has quit [Ping timeout: 260 seconds]
12:11
AndChat326081 has joined #m-labs
12:18
<
whitequark >
sb0: now I can also swap the firmware in 12s
12:18
<
whitequark >
and not "an eternity" like before (somewhere around 70s)
12:19
<
whitequark >
no more reading reddit until the firmware loads, finally
12:27
FabM has quit [Quit: ChatZilla 0.9.93 [Firefox 45.7.0/20170125001729]]
12:29
<
whitequark >
if I enable incremental compilation in cargo, I can rebuild and swap a firmware in just 25s
12:55
FabM has joined #m-labs
13:42
sb0 has joined #m-labs
13:51
AndChat326081 has quit [Quit: Bye]
13:51
AndChat326081 has joined #m-labs
13:52
AndChat|326081 has joined #m-labs
13:55
AndChat326081 has quit [Ping timeout: 258 seconds]
13:58
AndChat|326081 has quit [Quit: Bye]
13:58
AndChat326081 has joined #m-labs
14:01
AndChat|326081 has joined #m-labs
14:03
AndChat326081 has quit [Ping timeout: 258 seconds]
14:24
<
whitequark >
sb0: I want some solution for this DMA reset issue
14:25
<
whitequark >
I see two options
14:25
<
whitequark >
1) also add the limit, like the analyzer DMA does
14:25
<
whitequark >
2) add an explict reset to the core
14:26
<
whitequark >
I don't know how to do 2) in migen (do I need an additional clock domain?) and 1) sounds like a lot of effort
14:26
<
whitequark >
possibly introducing more bugs in the process, that is.
14:28
<
whitequark >
(swap the firmware) wow, if I do it on a decent uplink, that's 1.5s
14:28
<
whitequark >
now
*this* is actually convenient
14:32
<
cr1901_modern >
what's wrong with using ResetSignal() and gating that with a manual reset?
14:33
<
whitequark >
I'm not sure how to propagate that through the implicit relationships migen builds
14:33
<
whitequark >
and only into the places where I need that
14:33
<
whitequark >
this should go into the migen FAQ once someone figures it
14:36
<
cr1901_modern >
IF you manually specify ClockDomains() in your design, reset signal is tied to 0 if you're not connecting it to anything IIRC.
14:41
<
whitequark >
hm, I found a work-around for doing this quickly
14:41
<
whitequark >
I reset an FPGA, let it load from flash then hotswap
14:55
kuldeep_ has quit [Remote host closed the connection]
14:55
kuldeep_ has joined #m-labs
15:08
<
sb0 >
the analyzer dma has a limit because it wraps around, it's a fifo
15:09
<
sb0 >
and you want an actual reset. if the DMA core is blocked on a RTIO FIFO that is full with timestamps far in the future, you want to interrupt it
15:19
<
whitequark >
right, an actual reset
15:20
<
whitequark >
sb0: so I tried swapping endianness etc
15:20
<
whitequark >
it's quite interesting
15:20
<
whitequark >
changing the data doesn't do anything
15:20
<
whitequark >
it's nonsense either way, same nonsense on every startup
15:20
<
whitequark >
as far as I see, I can replay the traces several times in one kernel, and that doesn't crash anything
15:21
<
whitequark >
that's regardless of whether they were recorded in this time or the previous time
15:21
<
whitequark >
but if I replay the traces once in one kernel run and another time in another kernel run, I get ~infinite output from the DMA core
15:23
<
sb0 >
did you get it to put anything in the analyzer?
15:24
<
whitequark >
it puts two identical nonsensical records into analyzer per DMA record
15:25
<
sb0 >
always the same content in the analyzer?
15:25
<
sb0 >
and by "DMA record", you mean event? i.e. a playback would contain many of them
15:26
<
whitequark >
it's called a record in the gateware
15:27
<
sb0 >
so the number of analyzer events matches the number of dma records?
15:28
<
whitequark >
doubled
15:28
<
whitequark >
let me try slightly different patterns, perhaps
15:28
<
sb0 >
and this holds true for different DMA sequences?
15:28
<
sb0 >
there is still this rtio_counter weirdness
15:30
<
sb0 >
interestingly, the difference between the rtio_counter values seem consistent
15:32
<
sb0 >
except for the 4th to 5th message, on both traces
15:32
<
whitequark >
that's because 5th message is the start of 2nd replay
15:33
<
whitequark >
sb0: that's bizarre
15:34
<
whitequark >
it looks like the number of analyzer messages doesn't depend on the DMA trace length
15:34
<
whitequark >
well, no.
15:34
<
whitequark >
if I push four DMA records there, there are still the same four OutputMessages
15:34
<
whitequark >
if I push six, there are
*none*
15:34
<
whitequark >
and, it doesn't crash the core
15:35
<
whitequark >
I can replay those six as many times as I want
15:35
<
whitequark >
same with five...
15:36
<
whitequark >
no, correction
15:36
<
whitequark >
three DMA records result in four OutputMessages
15:37
<
whitequark >
four DMA records result in no OutputMessages and a crash
15:37
<
whitequark >
five result in no OutputMessages and no crash
15:37
<
whitequark >
it seems like this behavior changes around SDRAM word size
15:39
<
sb0 >
do you still have crashes after changing the wishbone arbiter behavior?
15:39
<
whitequark >
it's not a SoC crash
15:39
<
whitequark >
it's a DMA core crash, and yes, I can recover the SoC afterwards
15:39
<
whitequark >
oh, that's interesting
15:40
<
sb0 >
and this, only after you made the arbiter change? before that it was a full SoC crash?
15:40
<
whitequark >
with four records, the core hangs but doesn't output any messages
15:40
<
sb0 >
and note that your coreboot tool doesn't reset the DMA core.
15:40
<
whitequark >
I
*think* it was a full SoC crash
15:40
<
whitequark >
at least I haven't encountered any full SoC crash after the arbiter change
15:40
<
whitequark >
and before, those were pretty common
15:40
<
whitequark >
as for coreboot, yes
15:41
<
whitequark >
I use $ artiq_devtool reset connect (another terminal)$ artiq_devtool build hotswap
15:41
<
GitHub >
artiq/master b391598 whitequark: artiq_devtool: add reset action.
15:44
<
cr1901_modern >
A core crashes by adding extra Records?
15:44
<
sb0 >
ah, so you're using the runtime as "bootloader" :)
15:44
<
sb0 >
what was wrong with TFTP?
15:45
<
sb0 >
no UDP over SSH?
15:45
<
whitequark >
sb0: too many moving parts
15:45
<
whitequark >
I have to first make it netboot
15:45
<
whitequark >
then I have to upload the runtime
*twice*
15:46
<
whitequark >
once to lab. another time to kc705.
15:46
<
whitequark >
ideally I would like to have ipv6, a separate core device management thread for logs and hotswap, and just get rid of `artiq_devtool connect` completely
15:46
<
whitequark >
and have it reboot with only the management thread enabled in case it crashes
15:47
<
whitequark >
sb0: also bios does some weird thing with network configuration
15:47
<
whitequark >
I think it's hardcoded?
15:47
<
whitequark >
I'm not even sure how that's supposed to work
15:50
<
whitequark >
okay, let me get to somewhere quieter and I'm just going to review the gateware
15:51
<
whitequark >
there's clearly some gateware bug that makes it read garbage
15:59
rohitksingh has joined #m-labs
15:59
rohitksingh has quit [Client Quit]
16:14
<
sb0 >
test_rpc_timing
16:24
<
whitequark >
sb0: that's expected
16:24
<
whitequark >
the log level is set to DEBUG
16:24
<
whitequark >
having the log level set in persistent config has this sort of unfortunate consequence. hm.
16:29
rjo has quit [Read error: Connection reset by peer]
16:30
rjo has joined #m-labs
16:38
bb-m-labs has quit [Quit: buildmaster reconfigured: bot disconnecting]
16:38
bb-m-labs has joined #m-labs
16:38
<
GitHub103 >
buildbot-config/master d31fa2b whitequark: Set log level to INFO before running tests.
16:42
<
whitequark >
bb-m-labs: force build artiq
16:42
<
bb-m-labs >
build #1383 forced
16:42
<
bb-m-labs >
I'll give a shout when the build finishes
16:58
kuldeep_ has quit [Remote host closed the connection]
16:58
kuldeep_ has joined #m-labs
17:13
sandeepkr has joined #m-labs
17:20
bb-m-labs has quit [Quit: buildmaster reconfigured: bot disconnecting]
17:20
bb-m-labs has joined #m-labs
17:20
<
GitHub18 >
buildbot-config/master 68aff8e whitequark: Use correct workdir for artiq_corelog step.
17:21
<
whitequark >
bb-m-labs: force build artiq
17:21
<
bb-m-labs >
build #1384 forced
17:21
<
bb-m-labs >
I'll give a shout when the build finishes
17:38
AndChat|326081 has quit [Quit: Bye]
17:38
AndChat326081 has joined #m-labs
17:54
bb-m-labs has quit [Quit: buildmaster reconfigured: bot disconnecting]
17:54
bb-m-labs has joined #m-labs
17:54
<
GitHub122 >
buildbot-config/master d08783b whitequark: Fix path screwup.
18:01
AndChat|326081 has joined #m-labs
18:03
AndChat326081 has quit [Ping timeout: 258 seconds]
18:13
Gurty has quit [Read error: Connection reset by peer]
18:18
<
whitequark >
sb0: sure enough if base_address is not 0 then tests don't pass
18:48
Gurty has joined #m-labs
18:53
<
whitequark >
sb0: ah no
18:53
<
whitequark >
I misunderstood the arguments to wishbone.SRAM
19:14
sandeepkr has quit [Ping timeout: 240 seconds]
19:18
sandeepkr has joined #m-labs
19:38
<
whitequark >
sb0: so what I'm doing is I'm submitting this data:
19:38
<
whitequark >
as you can see no zeroes
19:38
<
whitequark >
this is what I reliably get through the analyzer:
19:38
<
whitequark >
OutputMessage(channel=0, timestamp=0, rtio_counter=1117856969088, address=0, data=0)
19:41
<
whitequark >
(that's it, a single message)
20:02
<
whitequark >
sb0: hm, I have an idea of what might be happening
20:14
mumptai has joined #m-labs
20:18
<
whitequark >
aha, finally something useful!
20:29
<
whitequark >
scratch that, it's not useful.
20:29
<
whitequark >
I give up.
20:30
<
whitequark >
the DMA core clearly is influenced by the incoming data in some way, and is seemingly deterministic.
20:30
<
whitequark >
but that's all I can say. whatever transformation it performs is not guessable.
20:35
<
whitequark >
it does seem to read from the correct address, so WishboneReader/DmaReader seem to work
20:35
<
whitequark >
the slicer seems to be the most likely culprit?
20:38
<
whitequark >
why does a slicer synthesize a 256x1128 (!) ROM?!
20:38
<
whitequark >
and it goes to LUT, of course
21:05
sandeepkr has quit [Ping timeout: 246 seconds]
21:23
AndChat|326081 has quit [Quit: Bye]
21:23
AndChat326081 has joined #m-labs
22:24
AndChat|326081 has joined #m-labs
22:27
AndChat326081 has quit [Ping timeout: 240 seconds]
22:43
mumptai has quit [Quit: Verlassend]
23:23
zumbi has quit [Ping timeout: 260 seconds]
23:23
zumbi has joined #m-labs
23:26
acathla has quit [Ping timeout: 268 seconds]
23:29
acathla has joined #m-labs
23:30
acathla has quit [Changing host]
23:30
acathla has joined #m-labs
23:33
<
cr1901_modern >
"and it goes to LUT, of course" <-- one of the reasons I can't wait till Xilinx is RE'd is so I can figure out why the synthesizer does stupid shit like this when I have block RAM left over
23:34
<
cr1901_modern >
erm, I said that wrong... I mean open source PAR for Xilinx*