All of lore.kernel.org
 help / color / mirror / Atom feed
From: Marc Kleine-Budde <mkl@pengutronix.de>
To: Rhett Aultman <rhett.aultman@samsara.com>
Cc: linux-can@vger.kernel.org,
	Vasanth Sadhasivan <vasanth.sadhasivan@samsara.com>
Subject: Re: [PATCH 1/1] can: gs_usb: remove dma allocations
Date: Sun, 18 Sep 2022 23:31:26 +0200	[thread overview]
Message-ID: <20220918213126.jl3vqvn6yjwrltj7@pengutronix.de> (raw)
In-Reply-To: <20220913204110.89730-2-rhett.aultman@samsara.com>

[-- Attachment #1: Type: text/plain, Size: 2118 bytes --]

On 13.09.2022 16:41:10, Rhett Aultman wrote:
> From: Vasanth Sadhasivan <vasanth.sadhasivan@samsara.com>
> 
> DMA allocated buffers are a precious resource. If there is no need for DMA
> allocations, then it might be worth to use non-dma allocated buffers.
> After testing the gs_usb driver with and without DMA allocation, there
> does not seem to be a significant change in latency or cpu utilization
> either way. Therefore, DMA allocation is not necessary and removed.
> 
> Co-developed-by: Rhett Aultman <rhett.aultman@samsara.com>
> Signed-off-by: Rhett Aultman <rhett.aultman@samsara.com>
> Signed-off-by: Vasanth Sadhasivan <vasanth.sadhasivan@samsara.com>
> ---
>  drivers/net/can/usb/gs_usb.c | 38 ++++++++++--------------------------
>  1 file changed, 10 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/net/can/usb/gs_usb.c b/drivers/net/can/usb/gs_usb.c
> index baf749c8cda3..1bfc775c62c5 100644
> --- a/drivers/net/can/usb/gs_usb.c
> +++ b/drivers/net/can/usb/gs_usb.c
> @@ -269,7 +269,6 @@ struct gs_can {
>  	struct usb_anchor tx_submitted;
>  	atomic_t active_tx_urbs;
>  	void *rxbuf[GS_MAX_RX_URBS];
> -	dma_addr_t rxbuf_dma[GS_MAX_RX_URBS];
>  };
>  
>  /* usb interface struct */
> @@ -587,9 +586,7 @@ static void gs_usb_xmit_callback(struct urb *urb)
>  
>  	if (urb->status)
>  		netdev_info(netdev, "usb xmit fail %u\n", txc->echo_id);
> -
> -	usb_free_coherent(urb->dev, urb->transfer_buffer_length,
> -			  urb->transfer_buffer, urb->transfer_dma);
> +	devm_kfree(&urb->dev->dev, urb->transfer_buffer);

Consider using the URB_FREE_BUFFER flag:

| https://elixir.bootlin.com/linux/v5.19/source/include/linux/usb.h#L1330

and standard kmalloc() (i.e. not devm_kmalloc()). The USB stack will
take care of kfree()ing the buffer associated with each URB.

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  reply	other threads:[~2022-09-18 21:31 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-09-13 20:41 [PATCH 0/1] can: gs_usb: remove dma allocations Rhett Aultman
2022-09-13 20:41 ` [PATCH 1/1] " Rhett Aultman
2022-09-18 21:31   ` Marc Kleine-Budde [this message]
2022-09-20 15:47 ` [PATCH 0/1] " Rhett Aultman
2022-09-20 15:47   ` [PATCH v2] " Rhett Aultman
2022-09-23 12:11     ` Marc Kleine-Budde
2022-09-23 12:12       ` Marc Kleine-Budde
2022-09-20 15:50   ` [PATCH 0/1] " Rhett Aultman

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=20220918213126.jl3vqvn6yjwrltj7@pengutronix.de \
    --to=mkl@pengutronix.de \
    --cc=linux-can@vger.kernel.org \
    --cc=rhett.aultman@samsara.com \
    --cc=vasanth.sadhasivan@samsara.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.