Kernel Driver ============= The Linux driver allows dealing with all the hardware platforms at once. It offers different functional modes depending on the type of hardware it controls. Modes ----- There exist 3 different modes: performance, safe, and hybrid. Each type of hardware has its own set of capabilities, meaning that it supports a certain number of those modes. - **Safe** mode: all rank accesses go through the driver and are then protected from other applications. To set this mode, use ``"regionMode=safe"`` profile option. - **Hybrid** mode: only some hardware provides this capability, it allows the userspace backend to mmap either the control interfaces or the MRAMs, providing then a significant speedup (~20% performance increase for control interfaces accesses). To set this mode, use ``"regionMode=hybrid"`` profile option. - **Performance** mode: this mode allows the userspace backend to mmap in one memory region the whole MRAMs and control interfaces, allowing to completely bypass the driver. Note that this mode mmaps the entire region (ie dpu_region) which possibly encompasses multiple interleaved ranks, so this mode grants access to all the ranks of a region to any application. To set this mode, use ``"regionMode=perf"`` profile option. The default mode is **performance** if supported by the hardware, **safe** otherwise. Verbosity --------- The driver can output more messages by activating the dynamic debug traces using the following command:: $ sudo bash -c 'echo "module dpu +p" > /sys/kernel/debug/dynamic_debug/control'