Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754548AbbK3ON2 (ORCPT ); Mon, 30 Nov 2015 09:13:28 -0500 Received: from mail-ob0-f170.google.com ([209.85.214.170]:35109 "EHLO mail-ob0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754330AbbK3ONX (ORCPT ); Mon, 30 Nov 2015 09:13:23 -0500 MIME-Version: 1.0 In-Reply-To: <20151129.210210.1777978635596463961.davem@davemloft.net> References: <1448178839-3541-1-git-send-email-mw@semihalf.com> <5655FF36.20202@gmail.com> <20151129.210210.1777978635596463961.davem@davemloft.net> Date: Mon, 30 Nov 2015 15:13:22 +0100 Message-ID: Subject: Re: [PATCH 00/13] mvneta Buffer Management and enhancements From: Marcin Wojtas To: David Miller , Florian Fainelli Cc: linux-kernel@vger.kernel.org, "linux-arm-kernel@lists.infradead.org" , netdev@vger.kernel.org, Thomas Petazzoni , Andrew Lunn , Russell King - ARM Linux , Jason Cooper , Yair Mahalalel , Grzegorz Jaszczyk , Simon Guinot , Evan Wang , nadavh@marvell.com, Lior Amsalem , Tomasz Nowicki , =?UTF-8?Q?Gregory_Cl=C3=A9ment?= , nitroshift@yahoo.com, Sebastian Hesselbarth Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2393 Lines: 55 Hi David and Florian, 2015-11-30 3:02 GMT+01:00 David Miller : > From: Marcin Wojtas > Date: Sun, 29 Nov 2015 14:21:35 +0100 > >>> Looking at your patches, it was not entirely clear to me how the buffer >>> manager on these Marvell SoCs work, but other networking products have >>> something similar, like Broadcom's Cable Modem SoCs (BCM33xx) FPM, and >>> maybe Freescale's FMAN/DPAA seems to do something similar. >>> >>> Does the buffer manager allocation work by giving you a reference/token >>> to a buffer as opposed to its address? If that is the case, it would be >>> good to design support for such hardware in a way that it can be used by >>> more drivers. >> >> It does not operate on a reference/token but buffer pointers (physical >> adresses). It's a ring and you cannot control which buffer will be >> taken at given moment. > > He understands this, he's asking you to make an "abstraction". I assumed that Florian is not familiar with how the HW works, otherwise why did he ask about the details of operation and the buffer representation in ring (token vs. address)? Nevertheless, let's talk about the "abstraction" itself. > > FWIW, I know of at least one more chip that operates this way too and > the code I wrote for it, particularly the buffer management, took a > while to solidify. Common helpers for this kind of situation would > have helped me back when I wrote it. What kind of abstraction and helpers do you mean? Some kind of API (e.g. bm_alloc_buffer, bm_initialize_ring bm_put_buffer, bm_get_buffer), which would be used by platform drivers (and specific aplications if one wants to develop on top of the kernel)? In general, what is your top-view of such solution and its cooperation with the drivers? I'm also wondering how to satisfy different types of HW. For example buffer managers used by mvneta and mvpp2 are similar, but the major difference is the way of accessing the buffers (via SRAM in mvneta vs indirectly via registers in mvpp2) - do you think some kind of callbacks is a solution, also with other vendors taken into consideration? Best regards, Marcin -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/