applet.benchmark: skip going through the MODE stat...
by Konrad Beckmann 7 years 3 weeks
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
f3338173
firmware: update libfx2.
by whitequark 7 years 3 weeks
2a1a1a69
access.direct.demultiplexer: auto-hint reads with ...
by whitequark 7 years 3 weeks
access.direct.demultiplexer: auto-hint reads with length.
29021bfd
support.logging: implement dump_hex, and use in US...
by whitequark 7 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.
c1fcb271
support.lazy: implement.
by whitequark 7 years 3 weeks
794b521e
applet.benchmark: hint reads to use total length.
by whitequark 7 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.
950d2f63
firmware: add Device Qualifier request.
by whitequark 7 years 3 weeks
firmware: add Device Qualifier request.

Necessary for USB compliance.
bfcb376a
access.direct.demultiplexer: use ChunkedFIFO.
by whitequark 7 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.
48aefee4
support.chunked_fifo: fix bool() with partial read...
by whitequark 7 years 3 weeks
support.chunked_fifo: fix bool() with partial reads.
2ebe314d
support.chunked_fifo: implement.
by whitequark 7 years 3 weeks
support.chunked_fifo: implement.

Required for #79.
fed42691
Report a bug