diff mbox series

[net-next,1/9] devlink: add documentation for hns3 driver

Message ID 1626053698-46849-2-git-send-email-huangguangbin2@huawei.com (mailing list archive)
State Superseded
Delegated to: Netdev Maintainers
Headers show
Series net: hns3: add support devlink | expand

Checks

Context Check Description
netdev/cover_letter success Link
netdev/fixes_present success Link
netdev/patch_count success Link
netdev/tree_selection success Clearly marked for net-next
netdev/subject_prefix success Link
netdev/cc_maintainers warning 2 maintainers not CCed: linux-doc@vger.kernel.org corbet@lwn.net
netdev/source_inline success Was 0 now: 0
netdev/verify_signedoff success Link
netdev/module_param success Was 0 now: 0
netdev/build_32bit success Errors and warnings before: 0 this patch: 0
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/verify_fixes success Link
netdev/checkpatch warning WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
netdev/build_allmodconfig_warn success Errors and warnings before: 0 this patch: 0
netdev/header_inline success Link

Commit Message

Guangbin Huang July 12, 2021, 1:34 a.m. UTC
From: Hao Chen <chenhao288@hisilicon.com>

Add a file to document devlink support for hns3 driver.

Now support devlink param and devlink info.

Signed-off-by: Hao Chen <chenhao288@hisilicon.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
---
 Documentation/networking/devlink/hns3.rst  | 51 ++++++++++++++++++++++++++++++
 Documentation/networking/devlink/index.rst |  1 +
 2 files changed, 52 insertions(+)
 create mode 100644 Documentation/networking/devlink/hns3.rst

Comments

Jakub Kicinski July 12, 2021, 6:32 p.m. UTC | #1
On Mon, 12 Jul 2021 09:34:50 +0800 Guangbin Huang wrote:
> +Parameters
> +==========
> +
> +The ``hns3`` driver implements the following driver-specific
> +parameters.
> +
> +.. list-table:: Driver-specific parameters implemented
> +   :widths: 10 10 10 70
> +
> +   * - Name
> +     - Type
> +     - Mode
> +     - Description
> +   * - ``rx_buf_len``
> +     - U32
> +     - driverinit
> +     - Set rx BD buffer size.
> +       * Now only support setting 2048 and 4096.

Can you elaborate further? If I was a user reading this I'd still have
little confidence what this does. Does it change the size of each
buffer put on the Rx ring between 2k and 4k? Why is that a devlink
feature, we configure rings via ethtool.

> +   * - ``tx_buf_size``
> +     - U32
> +     - driverinit
> +     - Set tx spare buf size.
> +
> +       * The size is setted for tx bounce feature.

... and what is the tx bounce feature?
Guangbin Huang July 13, 2021, 12:34 p.m. UTC | #2
On 2021/7/13 2:32, Jakub Kicinski wrote:
> On Mon, 12 Jul 2021 09:34:50 +0800 Guangbin Huang wrote:
>> +Parameters
>> +==========
>> +
>> +The ``hns3`` driver implements the following driver-specific
>> +parameters.
>> +
>> +.. list-table:: Driver-specific parameters implemented
>> +   :widths: 10 10 10 70
>> +
>> +   * - Name
>> +     - Type
>> +     - Mode
>> +     - Description
>> +   * - ``rx_buf_len``
>> +     - U32
>> +     - driverinit
>> +     - Set rx BD buffer size.
>> +       * Now only support setting 2048 and 4096.
> 
> Can you elaborate further? If I was a user reading this I'd still have
> little confidence what this does. Does it change the size of each
> buffer put on the Rx ring between 2k and 4k? Why is that a devlink
> feature, we configure rings via ethtool.
> 
Yes, we can add more detailed descriptions about this feature and tx_buf_size
in V2. This devlink feature is to change the buffer size of each BD of Rx ring
between 2KB and 4KB.

Now ethtool -G paramter supports setting some ring configurations such as
queue depth and so on,but not supports setting rx BD buffer size. And
devlink can support this function.

For another thing, setting rx BD buffer size needs to reload resource
pool(for resource pool details, see the link: [1]) to take effect, so
even if ethtool support this function, it still needs next reload to
take effect. Now devlink supports reload operation(patch 6/9), so we can
set rx BD buffer size via devlink, then do devlink reload operation to
make it take effect.

To sum up, we choose devlink to set rx BD buffer size.

>> +   * - ``tx_buf_size``
>> +     - U32
>> +     - driverinit
>> +     - Set tx spare buf size.
>> +
>> +       * The size is setted for tx bounce feature.
> 
> ... and what is the tx bounce feature?
> .
> 
Tx bounce buffer feature is used for small size packet or frag. It adds a queue
based tx shared bounce buffer to memcpy the small packet when the len of xmitted
skb is below tx_copybreak(value to distinguish small size and normal size), and
reduce the overhead of dma map and unmap when IOMMU is on. For more details, see
link: [2], this devlink feature is setting tx bounce buffer size for it.


1.  https://lore.kernel.org/patchwork/cover/816549/
2.  https://patchwork.kernel.org/project/netdevbpf/patch/1623825377-41948-4-git-send-email-huangguangbin2@huawei.com/
diff mbox series

Patch

diff --git a/Documentation/networking/devlink/hns3.rst b/Documentation/networking/devlink/hns3.rst
new file mode 100644
index 000000000000..798158eb96ee
--- /dev/null
+++ b/Documentation/networking/devlink/hns3.rst
@@ -0,0 +1,51 @@ 
+.. SPDX-License-Identifier: GPL-2.0
+
+====================
+hns3 devlink support
+====================
+
+This document describes the devlink features implemented by the ``hns3``
+device driver.
+
+Parameters
+==========
+
+The ``hns3`` driver implements the following driver-specific
+parameters.
+
+.. list-table:: Driver-specific parameters implemented
+   :widths: 10 10 10 70
+
+   * - Name
+     - Type
+     - Mode
+     - Description
+   * - ``rx_buf_len``
+     - U32
+     - driverinit
+     - Set rx BD buffer size.
+
+       * Now only support setting 2048 and 4096.
+   * - ``tx_buf_size``
+     - U32
+     - driverinit
+     - Set tx spare buf size.
+
+       * The size is setted for tx bounce feature.
+
+The ``hns3`` driver supports reloading via ``DEVLINK_CMD_RELOAD``
+
+Info versions
+=============
+
+The ``hns3`` driver reports the following versions
+
+.. list-table:: devlink info versions implemented
+   :widths: 10 10 80
+
+   * - Name
+     - Type
+     - Description
+   * - ``fw``
+     - running
+     - Used to represent the firmware version.
diff --git a/Documentation/networking/devlink/index.rst b/Documentation/networking/devlink/index.rst
index b3b9e0692088..03f56ed2961f 100644
--- a/Documentation/networking/devlink/index.rst
+++ b/Documentation/networking/devlink/index.rst
@@ -34,6 +34,7 @@  parameters, info versions, and other features it supports.
    :maxdepth: 1
 
    bnxt
+   hns3
    ionic
    ice
    mlx4