On Mon, Jul 15, 2019 at 01:59:33PM +0300, Artem Bityutskiy wrote:
> From: Artem Bityutskiy <artem.bityuts...@linux.intel.com>
> 
> Decode 'RR2DCDELAY' register which Linux kernel provides starting from version
> 5.3. The corresponding commit in the Linux kernel is:
>     cd502a7f7c9c igb: add RR2DCDELAY to ethtool registers dump
> 
> The RR2DCDELAY register is present in I210 and I211 Intel Gigabit Ethernet
> chips and it stands for "Read Request To Data Completion Delay". Here is how
> this register is described in the I210 datasheet:
> 
> "This field captures the maximum PCIe split time in 16 ns units, which is the
> maximum delay between the read request to the first data completion. This is
> giving an estimation of the PCIe round trip time."
> 
> In practice, this register can be used to measure the time it takes the NIC to
> read data from the host memory.
> 
> Signed-off-by: Artem Bityutskiy <artem.bityuts...@linux.intel.com>
> ---
>  igb.c | 12 ++++++++++++
>  1 file changed, 12 insertions(+)
> 
> Changelog:
> v2: Fixed a typo in the commentary.
> v1: Initial pach version.
> 
> 
> diff --git a/igb.c b/igb.c
> index e0ccef9..cb24877 100644
> --- a/igb.c
> +++ b/igb.c
> @@ -859,6 +859,18 @@ igb_dump_regs(struct ethtool_drvinfo *info, struct 
> ethtool_regs *regs)
>               "0x03430: TDFPC       (Tx data FIFO packet count)      
> 0x%08X\n",
>               regs_buff[550]);
>  
> +     /*
> +      * Starting from kernel version 5.3 the registers dump buffer grew from
> +      * 739 4-byte words to 740 words, and word 740 contains the RR2DCDELAY
> +      * register.
> +      */
> +     if (regs->len < 740)
> +             return 0;
> +
> +     fprintf(stdout,
> +             "0x05BF4: RR2DCDELAY  (Max. DMA read delay)            
> 0x%08X\n",
> +             regs_buff[739]);
> +
>       return 0;
>  }
>  

Reviewed-by: Michal Kubecek <mkube...@suse.cz>

Reply via email to