netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Marcin Wojtas <mw@semihalf.com>
To: David Miller <davem@davemloft.net>,
	Florian Fainelli <f.fainelli@gmail.com>
Cc: linux-kernel@vger.kernel.org,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	netdev@vger.kernel.org,
	"Thomas Petazzoni" <thomas.petazzoni@free-electrons.com>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Russell King - ARM Linux" <linux@arm.linux.org.uk>,
	"Jason Cooper" <jason@lakedaemon.net>,
	"Yair Mahalalel" <myair@marvell.com>,
	"Grzegorz Jaszczyk" <jaz@semihalf.com>,
	"Simon Guinot" <simon.guinot@sequanux.org>,
	"Evan Wang" <xswang@marvell.com>,
	nadavh@marvell.com, "Lior Amsalem" <alior@marvell.com>,
	"Tomasz Nowicki" <tn@semihalf.com>,
	"Gregory Clément" <gregory.clement@free-electrons.com>,
	nitroshift@yahoo.com,
	"Sebastian Hesselbarth" <sebastian.hesselbarth@gmail.com>
Subject: Re: [PATCH 00/13] mvneta Buffer Management and enhancements
Date: Mon, 30 Nov 2015 15:13:22 +0100	[thread overview]
Message-ID: <CAPv3WKcHnJHCvg63Vs79RboNOuESU8jCLouKPRW4NdptAd_hag@mail.gmail.com> (raw)
In-Reply-To: <20151129.210210.1777978635596463961.davem@davemloft.net>

Hi David and Florian,

2015-11-30 3:02 GMT+01:00 David Miller <davem@davemloft.net>:
> From: Marcin Wojtas <mw@semihalf.com>
> 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

  reply	other threads:[~2015-11-30 14:13 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-22  7:53 [PATCH 00/13] mvneta Buffer Management and enhancements Marcin Wojtas
2015-11-22  7:53 ` [PATCH 01/13] net: mvneta: add configuration for MBUS windows access protection Marcin Wojtas
2015-11-25 18:19   ` Gregory CLEMENT
2015-11-22  7:53 ` [PATCH 02/13] net: mvneta: enable IP checksum with jumbo frames for Armada 38x on Port0 Marcin Wojtas
2015-11-22 20:00   ` Arnd Bergmann
2015-11-22 21:04     ` Marcin Wojtas
2015-11-22 21:32       ` Arnd Bergmann
2015-11-22 21:55         ` Marcin Wojtas
2015-11-22  7:53 ` [PATCH 03/13] net: mvneta: fix bit assignment in MVNETA_RXQ_CONFIG_REG Marcin Wojtas
2015-11-25 18:25   ` Gregory CLEMENT
2015-11-22  7:53 ` [PATCH 04/13] net: mvneta: enable suspend/resume support Marcin Wojtas
2015-11-25 18:35   ` Gregory CLEMENT
2015-11-26 17:39     ` Marcin Wojtas
2015-11-22  7:53 ` [PATCH 05/13] net: mvneta: add xmit_more support Marcin Wojtas
2015-11-22  7:53 ` [PATCH 06/13] net: mvneta: enable mixed egress processing using HR timer Marcin Wojtas
2015-11-26 16:45   ` Simon Guinot
2015-11-30 15:57     ` Marcin Wojtas
2015-12-02 10:03       ` Marcin Wojtas
2015-11-22  7:53 ` [PATCH 07/13] bus: mvebu-mbus: provide api for obtaining IO and DRAM window information Marcin Wojtas
2015-11-22 20:02   ` Arnd Bergmann
2015-11-22 21:24     ` Marcin Wojtas
2015-11-23 16:58       ` Arnd Bergmann
2015-11-22  7:53 ` [PATCH 08/13] ARM: mvebu: enable SRAM support in mvebu_v7_defconfig Marcin Wojtas
2016-02-16 10:51   ` Gregory CLEMENT
2015-11-22  7:53 ` [PATCH 09/13] net: mvneta: bm: add support for hardware buffer management Marcin Wojtas
2015-11-22  7:53 ` [PATCH 10/13] ARM: mvebu: add buffer manager nodes to armada-38x.dtsi Marcin Wojtas
2015-11-22  9:41   ` Sergei Shtylyov
2015-11-22  7:53 ` [PATCH 11/13] ARM: mvebu: enable buffer manager support on Armada 38x boards Marcin Wojtas
2015-11-22  7:53 ` [PATCH 12/13] ARM: mvebu: add buffer manager nodes to armada-xp.dtsi Marcin Wojtas
2015-11-22  7:53 ` [PATCH 13/13] ARM: mvebu: enable buffer manager support on Armada XP boards Marcin Wojtas
2015-11-22 20:06 ` [PATCH 00/13] mvneta Buffer Management and enhancements Arnd Bergmann
2015-11-22 21:37   ` Marcin Wojtas
2015-11-24 16:22 ` David Miller
2015-11-24 16:47   ` Marcin Wojtas
2015-11-25 18:34 ` Florian Fainelli
2015-11-29 13:21   ` Marcin Wojtas
2015-11-30  2:02     ` David Miller
2015-11-30 14:13       ` Marcin Wojtas [this message]
2015-11-30 16:25         ` David Miller
2015-12-02  8:26           ` Marcin Wojtas
2015-12-04 20:15             ` Florian Fainelli
2015-12-08 10:56               ` Marcin Wojtas
2015-12-08 16:57                 ` David Miller
2015-11-30 17:16 ` Gregory CLEMENT
2015-11-30 19:53   ` Marcin Wojtas
2015-12-01 13:12     ` Gregory CLEMENT
2015-12-01 21:40       ` Marcin Wojtas
2015-12-01 23:34         ` Marcin Wojtas
2015-12-02 10:40           ` Gregory CLEMENT
2015-12-02 16:21             ` Gregory CLEMENT
2015-12-02 22:15               ` Marcin Wojtas
2015-12-02 22:56                 ` Gregory CLEMENT

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPv3WKcHnJHCvg63Vs79RboNOuESU8jCLouKPRW4NdptAd_hag@mail.gmail.com \
    --to=mw@semihalf.com \
    --cc=alior@marvell.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=f.fainelli@gmail.com \
    --cc=gregory.clement@free-electrons.com \
    --cc=jason@lakedaemon.net \
    --cc=jaz@semihalf.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@arm.linux.org.uk \
    --cc=myair@marvell.com \
    --cc=nadavh@marvell.com \
    --cc=netdev@vger.kernel.org \
    --cc=nitroshift@yahoo.com \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=simon.guinot@sequanux.org \
    --cc=thomas.petazzoni@free-electrons.com \
    --cc=tn@semihalf.com \
    --cc=xswang@marvell.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).