mmt: - huge cleanup of nvidia ioctl tracing - it does not try to decode ioctls when it's not needed (it's demmt/mmt_bin2dedma job now) - when it must decode something (eg for embedded pointers) it does it in a much cleaner way - text output removed - it was (always) broken in some subtle ways - binary mode is up to 10 times faster (yes, real world examples, like xonotic) - decoding on mmt side is just plain wrong - all data found by pointers embedded in ioctl structures are now dumped (and demmt uses it) - stdout/stderr output of an application can now be recorded in mmt stream (enabled by --mmt-trace-stdout-stderr) and demmt handles it - NVRM_MTHD_SUBDEVICE_GET_CHIPSET injection - in the future demmt will autodetect chipset id based on this information - there's some utility code for REing sizes of structures passed to ioctls and a code for automatic verification/detection of object sizes for "create" and "call" ioctls (--mmt-ioctl-create-fuzzer, --mmt-object-ctr, --mmt-ioctl-call-fuzzer) demmt: - nvidia ioctl decoding: - all fields before and after ioctl are dumped, a lot of them have sensible names - _pad fields are hidden, but only if they are equal to 0 - major methods for CALL ioctl are decoded - ioctl statuses are translated to names - some ioctl queries are decoded - object handles are annotated with class information - classes in create ioctls are annotated with names - driver classes now have names - output cleanup - most of the internal demmt messages are now hidden - nve4_compute support - command line options cleanup - extensive filtering system (see https://github.com/envytools/envytools/commit/cf1e19047a6795eabe0622baa8584e0af18ff51a) - color output is now enabled by default - logs are not indented by default - lots of fixes