applet.benchmark: skip going through the MODE state.
This improves the throughput a bit.
(before)
I: glasgow.applet.benchmark: mode source: 16.999 MiB/s
I: glasgow.applet.benchmark: mode sink: 18.138 MiB/s
(after)
I: glasgow.applet.benchmark: mode source: 23.196 MiB/s
I: glasgow.applet.benchmark: mode sink: 23.840 MiB/s
by
Konrad Beckmann
6 years 3 weeks
firmware: update libfx2.
by
whitequark
6 years 3 weeks
access.direct.demultiplexer: auto-hint reads with length.
by
whitequark
6 years 3 weeks
support.logging: implement dump_hex, and use in USB and FIFO code.
Most of the time it is not necessary (and in fact is harmful) to
eagerly dump the complete packet at USB and FIFO layers. Instead,
lazily dump only some first bytes, which is sufficient for most
debugging. In any case, `glasgow -vvv` dumps the complete data.
by
whitequark
6 years 3 weeks
support.lazy: implement.
by
whitequark
6 years 3 weeks
applet.benchmark: hint reads to use total length.
When making very large reads, it is often possible to either predict
the total length exactly (e.g. the shugart-floppy applet) or to use
a "sufficiently large" buffer (e.g. the lpc applet). Thus, it seems
that a benchmark should not use an artificially small hint.
by
whitequark
6 years 3 weeks
firmware: add Device Qualifier request.
Necessary for USB compliance.
by
whitequark
6 years 3 weeks
access.direct.demultiplexer: use ChunkedFIFO.
This significantly improves `benchmark sink`:
(before)
I: glasgow.applet.benchmark: mode sink: 1.454 MiB/s
(after)
I: glasgow.applet.benchmark: mode sink: 16.420 MiB/s
On my system the sink rate asymptotically approaches around 20 MiB/s.
16 MiB/s is an approx 10x improvement, and uses 1/32 of the Linux
usbdevfs memory limit, which is acceptable for now.
Fixes #79.
by
whitequark
6 years 3 weeks
support.chunked_fifo: fix bool() with partial reads.
by
whitequark
6 years 3 weeks
support.chunked_fifo: implement.
Required for #79.
by
whitequark
6 years 3 weeks