All of lore.kernel.org
 help / color / mirror / Atom feed
From: Markus Schneider-Pargmann <msp@baylibre.com>
To: Marc Kleine-Budde <mkl@pengutronix.de>,
	 Chandrasekar Ramakrishnan <rcsekar@samsung.com>,
	Wolfgang Grandegger <wg@grandegger.com>,
	 "David S . Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	 Jakub Kicinski <kuba@kernel.org>,
	Paolo Abeni <pabeni@redhat.com>,
	 Tony Lindgren <tony@atomide.com>, Judith Mendez <jm@ti.com>
Cc: Vincent MAILHOL <mailhol.vincent@wanadoo.fr>,
	 Simon Horman <horms@kernel.org>,
	linux-can@vger.kernel.org, netdev@vger.kernel.org,
	 linux-kernel@vger.kernel.org, Julien Panis <jpanis@baylibre.com>
Subject: Re: [PATCH 00/14] can: m_can: Optimizations for m_can/tcan part 2
Date: Wed, 7 Feb 2024 10:35:12 +0100	[thread overview]
Message-ID: <3rdpfjzahlcdxxszezxrk7vwvgwzpxxgsct32ydinki2xzbxz7@z2suuxtjnwjb> (raw)
In-Reply-To: <20240207093220.2681425-1-msp@baylibre.com>

Sorry, this is of course v7, forgot to add --reroll-count.

Best,
Markus

On Wed, Feb 07, 2024 at 10:32:06AM +0100, Markus Schneider-Pargmann wrote:
> Hi Marc, Simon, Martin and everyone,
> 
> v7 is a rebase on v6.8. During my am62 tests I discovered some problems
> which are fixed with this update.
> 
> @Simon: I had to remove most of your reviews again, due to a few
> fixes I made.
> 
> The series implements many small and bigger throughput improvements and
> adds rx/tx coalescing at the end.
> 
> Based on v6.8-rc1. Also available at
> https://gitlab.baylibre.com/msp8/linux/-/tree/topic/mcan-optimization/v6.8?ref_type=heads
> 
> Best,
> Markus
> 
> Changes in v7:
> - Rebased to v6.8-rc1
> - Fixed NULL pointer dereference in m_can_clean() on am62 that happened
>   when doing ip link up, ip link down, ip link up
> - Fixed a racecondition on am62 observed with high throughput tests.
>   netdev_completed_queue() was called before netdev_sent_queue() as the
>   interrupt was processed so fast. netdev_sent_queue() is now reported
>   before the actual sent is done.
> - Fixed an initializing issue on am62 where active interrupts are
>   getting lost between runs. Fixed by resetting cdev->active_interrupts
>   in m_can_disable_all_interrupts()
> - Removed m_can_start_fast_xmit() because of a reordering of operations
>   due to above mentioned racecondition
> 
> Changes in v6:
> - Rebased to v6.6-rc2
> - Added two small changes for the newly integrated polling feature
> - Reuse the polling hrtimer for coalescing as the timer used for
>   coalescing has a similar purpose as the one for polling. Also polling
>   and coalescing will never be active at the same time.
> 
> Changes in v5:
> - Add back parenthesis in m_can_set_coalesce(). This will make
>   checkpatch unhappy but gcc happy.
> - Remove unused fifo_header variable in m_can_tx_handler().
> - Rebased to v6.5-rc1
> 
> Changes in v4:
> - Create and use struct m_can_fifo_element in m_can_tx_handler
> - Fix memcpy_and_pad to copy the full buffer
> - Fixed a few checkpatch warnings
> - Change putidx to be unsigned
> - Print hard_xmit error only once when TX FIFO is full
> 
> Changes in v3:
> - Remove parenthesis in error messages
> - Use memcpy_and_pad for buffer copy in 'can: m_can: Write transmit
>   header and data in one transaction'.
> - Replace spin_lock with spin_lock_irqsave. I got a report of a
>   interrupt that was calling start_xmit just after the netqueue was
>   woken up before the locked region was exited. spin_lock_irqsave should
>   fix this. I attached the full stack at the end of the mail if someone
>   wants to know.
> - Rebased to v6.3-rc1.
> - Removed tcan4x5x patches from this series.
> 
> Changes in v2:
> - Rebased on v6.2-rc5
> - Fixed missing/broken accounting for non peripheral m_can devices.
> 
> previous versions:
> v1 - https://lore.kernel.org/lkml/20221221152537.751564-1-msp@baylibre.com
> v2 - https://lore.kernel.org/lkml/20230125195059.630377-1-msp@baylibre.com
> v3 - https://lore.kernel.org/lkml/20230315110546.2518305-1-msp@baylibre.com/
> v4 - https://lore.kernel.org/lkml/20230621092350.3130866-1-msp@baylibre.com/
> v5 - https://lore.kernel.org/lkml/20230718075708.958094-1-msp@baylibre.com
> v6 - https://lore.kernel.org/lkml/20230929141304.3934380-1-msp@baylibre.com
> 
> Markus Schneider-Pargmann (14):
>   can: m_can: Start/Cancel polling timer together with interrupts
>   can: m_can: Move hrtimer init to m_can_class_register
>   can: m_can: Write transmit header and data in one transaction
>   can: m_can: Implement receive coalescing
>   can: m_can: Implement transmit coalescing
>   can: m_can: Add rx coalescing ethtool support
>   can: m_can: Add tx coalescing ethtool support
>   can: m_can: Use u32 for putidx
>   can: m_can: Cache tx putidx
>   can: m_can: Use the workqueue as queue
>   can: m_can: Introduce a tx_fifo_in_flight counter
>   can: m_can: Use tx_fifo_in_flight for netif_queue control
>   can: m_can: Implement BQL
>   can: m_can: Implement transmit submission coalescing
> 
>  drivers/net/can/m_can/m_can.c          | 551 ++++++++++++++++++-------
>  drivers/net/can/m_can/m_can.h          |  34 +-
>  drivers/net/can/m_can/m_can_platform.c |   4 -
>  3 files changed, 439 insertions(+), 150 deletions(-)
> 
> -- 
> 2.43.0
> 

      parent reply	other threads:[~2024-02-07  9:35 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-07  9:32 [PATCH 00/14] can: m_can: Optimizations for m_can/tcan part 2 Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 01/14] can: m_can: Start/Cancel polling timer together with interrupts Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 02/14] can: m_can: Move hrtimer init to m_can_class_register Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 03/14] can: m_can: Write transmit header and data in one transaction Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 04/14] can: m_can: Implement receive coalescing Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 05/14] can: m_can: Implement transmit coalescing Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 06/14] can: m_can: Add rx coalescing ethtool support Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 07/14] can: m_can: Add tx " Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 08/14] can: m_can: Use u32 for putidx Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 09/14] can: m_can: Cache tx putidx Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 10/14] can: m_can: Use the workqueue as queue Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 11/14] can: m_can: Introduce a tx_fifo_in_flight counter Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 12/14] can: m_can: Use tx_fifo_in_flight for netif_queue control Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 13/14] can: m_can: Implement BQL Markus Schneider-Pargmann
2024-02-07  9:32 ` [PATCH 14/14] can: m_can: Implement transmit submission coalescing Markus Schneider-Pargmann
2024-02-07  9:35 ` Markus Schneider-Pargmann [this message]

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=3rdpfjzahlcdxxszezxrk7vwvgwzpxxgsct32ydinki2xzbxz7@z2suuxtjnwjb \
    --to=msp@baylibre.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=horms@kernel.org \
    --cc=jm@ti.com \
    --cc=jpanis@baylibre.com \
    --cc=kuba@kernel.org \
    --cc=linux-can@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mailhol.vincent@wanadoo.fr \
    --cc=mkl@pengutronix.de \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rcsekar@samsung.com \
    --cc=tony@atomide.com \
    --cc=wg@grandegger.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.