netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Duyck <alexander.duyck@gmail.com>
To: Tony Nguyen <anthony.l.nguyen@intel.com>
Cc: "David Miller" <davem@davemloft.net>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Maciej Fijalkowski" <maciej.fijalkowski@intel.com>,
	Netdev <netdev@vger.kernel.org>,
	"Stefan Assmann" <sassmann@redhat.com>,
	"Björn Töpel" <bjorn.topel@intel.com>,
	"Karlsson, Magnus" <magnus.karlsson@intel.com>,
	"Tony Brelinski" <tonyx.brelinski@intel.com>
Subject: Re: [PATCH net-next 02/11] i40e: drop misleading function comments
Date: Fri, 12 Feb 2021 17:21:20 -0800	[thread overview]
Message-ID: <CAKgT0Uf+f5+MdN0c0uiHByRCXD_mAiQQOC5W9+TgPxuwo3zLsg@mail.gmail.com> (raw)
In-Reply-To: <20210212223952.1172568-3-anthony.l.nguyen@intel.com>

On Fri, Feb 12, 2021 at 2:46 PM Tony Nguyen <anthony.l.nguyen@intel.com> wrote:
>
> From: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
>
> i40e_cleanup_headers has a statement about check against skb being
> linear or not which is not relevant anymore, so let's remove it.
>
> Same case for i40e_can_reuse_rx_page, it references things that are not
> present there anymore.
>
> Reviewed-by: Björn Töpel <bjorn.topel@intel.com>
> Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
> Tested-by: Tony Brelinski <tonyx.brelinski@intel.com>
> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
> ---
>  drivers/net/ethernet/intel/i40e/i40e_txrx.c | 33 ++++-----------------
>  1 file changed, 6 insertions(+), 27 deletions(-)
>
> diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
> index 3d24c6032616..5f6aa13e85ca 100644
> --- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
> +++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
> @@ -1963,9 +1963,6 @@ void i40e_process_skb_fields(struct i40e_ring *rx_ring,
>   * @skb: pointer to current skb being fixed
>   * @rx_desc: pointer to the EOP Rx descriptor
>   *
> - * Also address the case where we are pulling data in on pages only
> - * and as such no data is present in the skb header.
> - *
>   * In addition if skb is not at least 60 bytes we need to pad it so that
>   * it is large enough to qualify as a valid Ethernet frame.
>   *
> @@ -1998,33 +1995,15 @@ static bool i40e_cleanup_headers(struct i40e_ring *rx_ring, struct sk_buff *skb,
>  }
>
>  /**
> - * i40e_can_reuse_rx_page - Determine if this page can be reused by
> - * the adapter for another receive
> - *
> + * i40e_can_reuse_rx_page - Determine if page can be reused for another Rx
>   * @rx_buffer: buffer containing the page
>   * @rx_buffer_pgcnt: buffer page refcount pre xdp_do_redirect() call
>   *
> - * If page is reusable, rx_buffer->page_offset is adjusted to point to
> - * an unused region in the page.
> - *
> - * For small pages, @truesize will be a constant value, half the size
> - * of the memory at page.  We'll attempt to alternate between high and
> - * low halves of the page, with one half ready for use by the hardware
> - * and the other half being consumed by the stack.  We use the page
> - * ref count to determine whether the stack has finished consuming the
> - * portion of this page that was passed up with a previous packet.  If
> - * the page ref count is >1, we'll assume the "other" half page is
> - * still busy, and this page cannot be reused.
> - *
> - * For larger pages, @truesize will be the actual space used by the
> - * received packet (adjusted upward to an even multiple of the cache
> - * line size).  This will advance through the page by the amount
> - * actually consumed by the received packets while there is still
> - * space for a buffer.  Each region of larger pages will be used at
> - * most once, after which the page will not be reused.
> - *
> - * In either case, if the page is reusable its refcount is increased.
> - **/
> + * If page is reusable, we have a green light for calling i40e_reuse_rx_page,
> + * which will assign the current buffer to the buffer that next_to_alloc is
> + * pointing to; otherwise, the DMA mapping needs to be destroyed and
> + * page freed
> + */
>  static bool i40e_can_reuse_rx_page(struct i40e_rx_buffer *rx_buffer,
>                                    int rx_buffer_pgcnt)
>  {

So this lost all of the context for why or how the function works.

You should probably call out that for 4K pages it is using a simple
page count where if the count hits 2 we have to return false, and if
the page is bigger than 4K we have to check the remaining unused
buffer to determine if we will fail or not.

  reply	other threads:[~2021-02-13  1:22 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-12 22:39 [PATCH net-next 00/11][pull request] 40GbE Intel Wired LAN Driver Updates 2021-02-12 Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 01/11] i40e: drop redundant check when setting xdp prog Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 02/11] i40e: drop misleading function comments Tony Nguyen
2021-02-13  1:21   ` Alexander Duyck [this message]
2021-02-12 22:39 ` [PATCH net-next 03/11] i40e: adjust i40e_is_non_eop Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 04/11] ice: simplify ice_run_xdp Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 05/11] ice: move skb pointer from rx_buf to rx_ring Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 06/11] ice: remove redundant checks in ice_change_mtu Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 07/11] ice: skip NULL check against XDP prog in ZC path Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 08/11] i40e: Simplify the do-while allocation loop Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 09/11] i40e: store the result of i40e_rx_offset() onto i40e_ring Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 10/11] ice: store the result of ice_rx_offset() onto ice_ring Tony Nguyen
2021-02-12 22:39 ` [PATCH net-next 11/11] ixgbe: store the result of ixgbe_rx_offset() onto ixgbe_ring Tony Nguyen
2021-02-13  1:45 ` [PATCH net-next 00/11][pull request] 40GbE Intel Wired LAN Driver Updates 2021-02-12 patchwork-bot+netdevbpf

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=CAKgT0Uf+f5+MdN0c0uiHByRCXD_mAiQQOC5W9+TgPxuwo3zLsg@mail.gmail.com \
    --to=alexander.duyck@gmail.com \
    --cc=anthony.l.nguyen@intel.com \
    --cc=bjorn.topel@intel.com \
    --cc=davem@davemloft.net \
    --cc=kuba@kernel.org \
    --cc=maciej.fijalkowski@intel.com \
    --cc=magnus.karlsson@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=sassmann@redhat.com \
    --cc=tonyx.brelinski@intel.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).