public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Simon Horman <simon.horman@corigine•com>
To: Piotr Raczynski <piotr.raczynski@intel•com>
Cc: intel-wired-lan@lists•osuosl.org, netdev@vger•kernel.org,
	michal.swiatkowski@intel•com, shiraz.saleem@intel•com,
	jacob.e.keller@intel•com, sridhar.samudrala@intel•com,
	jesse.brandeburg@intel•com, aleksander.lobakin@intel•com,
	lukasz.czapnik@intel•com,
	Michal Swiatkowski <michal.swiatkowski@linux•intel.com>
Subject: Re: [PATCH net-next v3 7/8] ice: track interrupt vectors with xarray
Date: Sun, 26 Mar 2023 15:19:58 +0200	[thread overview]
Message-ID: <ZCBGfoqzid7PLcZE@corigine.com> (raw)
In-Reply-To: <20230323122440.3419214-8-piotr.raczynski@intel.com>

On Thu, Mar 23, 2023 at 01:24:39PM +0100, Piotr Raczynski wrote:
> Replace custom interrupt tracker with generic xarray data structure.
> Remove all code responsible for searching for a new entry with xa_alloc,
> which always tries to allocate at the lowes possible index. As a result
> driver is always using a contiguous region of the MSIX vector table.
> 
> New tracker keeps ice_irq_entry entries in xarray as opaque for the rest
> of the driver hiding the entry details from the caller.
> 
> Reviewed-by: Jacob Keller <jacob.e.keller@intel•com>
> Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux•intel.com>
> Signed-off-by: Piotr Raczynski <piotr.raczynski@intel•com>

Reviewed-by: Simon Horman <simon.horman@corigine•com>

I've added a few comments inline for your consideration
if you need to respin for some other reason.

...

> diff --git a/drivers/net/ethernet/intel/ice/ice.h b/drivers/net/ethernet/intel/ice/ice.h
> index 89d80a2b5feb..b7398abda26a 100644
> --- a/drivers/net/ethernet/intel/ice/ice.h
> +++ b/drivers/net/ethernet/intel/ice/ice.h
> @@ -104,7 +104,6 @@
>  #define ICE_Q_WAIT_RETRY_LIMIT	10
>  #define ICE_Q_WAIT_MAX_RETRY	(5 * ICE_Q_WAIT_RETRY_LIMIT)
>  #define ICE_MAX_LG_RSS_QS	256
> -#define ICE_RES_VALID_BIT	0x8000

nit: BIT() could be used here.

>  #define ICE_INVAL_Q_INDEX	0xffff
>  
>  #define ICE_MAX_RXQS_PER_TC		256	/* Used when setting VSI context per TC Rx queues */

...

> diff --git a/drivers/net/ethernet/intel/ice/ice_irq.c b/drivers/net/ethernet/intel/ice/ice_irq.c
> index ca1a1de26766..20d4e9a6aefb 100644
> --- a/drivers/net/ethernet/intel/ice/ice_irq.c
> +++ b/drivers/net/ethernet/intel/ice/ice_irq.c

...

> +/**
> + * ice_get_irq_res - get an interrupt resource
> + * @pf: board private structure
> + *
> + * Allocate new irq entry in the free slot of the tracker. Since xarray
> + * is used, always allocate new entry at the lowest possible index. Set
> + * proper allocation limit for maximum tracker entries.
> + *
> + * Returns allocated irq entry or NULL on failure.
> + */
> +static struct ice_irq_entry *ice_get_irq_res(struct ice_pf *pf)
> +{
> +	struct xa_limit limit = { .max = pf->irq_tracker.num_entries,
> +				  .min = 0 };
> +	struct ice_irq_entry *entry;
> +	unsigned int index;
> +	int ret;
> +
> +	entry = kzalloc(sizeof(*entry), GFP_KERNEL);
> +	if (!entry)
> +		goto exit;

nit: maybe it is simpler to return NULL here.

> +
> +	ret = xa_alloc(&pf->irq_tracker.entries, &index, entry, limit,
> +		       GFP_KERNEL);
> +
> +	if (ret) {
> +		kfree(entry);
> +		entry = NULL;

and here.

> +	} else {
> +		entry->index = index;

Which allows for more idiomatic code by moving this out of the else clause.

> +	}
> +
> +exit:

And removal of this label.

> +	return entry;
> +}
> +

  reply	other threads:[~2023-03-26 13:20 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-23 12:24 [PATCH net-next v3 0/8] ice: support dynamic interrupt allocation Piotr Raczynski
2023-03-23 12:24 ` [PATCH net-next v3 1/8] ice: move interrupt related code to separate file Piotr Raczynski
2023-03-26 13:34   ` Simon Horman
2023-04-21  5:36   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [PATCH net-next v3 2/8] ice: use pci_irq_vector helper function Piotr Raczynski
2023-03-26 13:35   ` Simon Horman
2023-04-21  5:41   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [PATCH net-next v3 3/8] ice: use preferred MSIX allocation api Piotr Raczynski
2023-03-26 13:35   ` Simon Horman
2023-04-21  5:45   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [PATCH net-next v3 4/8] ice: refactor VF control VSI interrupt handling Piotr Raczynski
2023-03-26 13:36   ` Simon Horman
2023-03-23 12:24 ` [PATCH net-next v3 5/8] ice: remove redundant SRIOV code Piotr Raczynski
2023-03-26 13:36   ` Simon Horman
2023-04-06  9:50     ` [Intel-wired-lan] " Romanowski, Rafal
2023-03-23 12:24 ` [PATCH net-next v3 6/8] ice: add individual interrupt allocation Piotr Raczynski
2023-03-26 13:18   ` Simon Horman
2023-03-28 16:16     ` Piotr Raczynski
2023-04-21  5:48   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [PATCH net-next v3 7/8] ice: track interrupt vectors with xarray Piotr Raczynski
2023-03-26 13:19   ` Simon Horman [this message]
2023-03-28 16:12     ` Piotr Raczynski
2023-04-21  5:53   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [PATCH net-next v3 8/8] ice: add dynamic interrupt allocation Piotr Raczynski
2023-03-26 13:37   ` Simon Horman
2023-04-21  5:55   ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-03-29 11:35 ` [PATCH net-next v3 0/8] ice: support " Leon Romanovsky

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=ZCBGfoqzid7PLcZE@corigine.com \
    --to=simon.horman@corigine$(echo .)com \
    --cc=aleksander.lobakin@intel$(echo .)com \
    --cc=intel-wired-lan@lists$(echo .)osuosl.org \
    --cc=jacob.e.keller@intel$(echo .)com \
    --cc=jesse.brandeburg@intel$(echo .)com \
    --cc=lukasz.czapnik@intel$(echo .)com \
    --cc=michal.swiatkowski@intel$(echo .)com \
    --cc=michal.swiatkowski@linux$(echo .)intel.com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=piotr.raczynski@intel$(echo .)com \
    --cc=shiraz.saleem@intel$(echo .)com \
    --cc=sridhar.samudrala@intel$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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