Re: [PATCH net-next v1 02/13] net: wwan: tmi: Add buffer management

From: Sergey Ryazanov
Date: Sun Dec 04 2022 - 13:58:36 EST


On 22.11.2022 15:11, Yanchao Yang wrote:
From: MediaTek Corporation <linuxwwan@xxxxxxxxxxxx>

To malloc I/O memory as soon as possible, buffer management comes into being.
It creates buffer pools that reserve some buffers through deferred works when
the driver isn't busy.

The buffer management provides unified memory allocation/de-allocation
interfaces for other modules. It supports two buffer types of SKB and page.
Two reload work queues with different priority values are provided to meet
various requirements of the control plane and the data plane.

When the reserved buffer count of the pool is less than a threshold (default
is 2/3 of the pool size), the reload work will restart to allocate buffers
from the OS until the buffer pool becomes full. When the buffer pool fills,
the OS will recycle the buffer freed by the user.

Signed-off-by: Mingliang Xu <mingliang.xu@xxxxxxxxxxxx>
Signed-off-by: MediaTek Corporation <linuxwwan@xxxxxxxxxxxx>
---
drivers/net/wwan/mediatek/Makefile | 3 +-
drivers/net/wwan/mediatek/mtk_bm.c | 369 ++++++++++++++++++++++++++++
drivers/net/wwan/mediatek/mtk_bm.h | 79 ++++++
drivers/net/wwan/mediatek/mtk_dev.c | 11 +-
drivers/net/wwan/mediatek/mtk_dev.h | 1 +
5 files changed, 461 insertions(+), 2 deletions(-)
create mode 100644 drivers/net/wwan/mediatek/mtk_bm.c
create mode 100644 drivers/net/wwan/mediatek/mtk_bm.h

Yanchao, can you share some numbers, how this custom pool is outperform the regular kernel allocator?

--
Sergey