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

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

Required for #79.
fed42691
Report a bug