From: Piotr Raczynski <piotr.raczynski@intel.com>
To: Simon Horman <simon.horman@corigine.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: Tue, 28 Mar 2023 18:12:15 +0200 [thread overview]
Message-ID: <ZCMR3/M+DFKRO0sN@nimitz> (raw)
In-Reply-To: <ZCBGfoqzid7PLcZE@corigine.com>
On Sun, Mar 26, 2023 at 03:19:58PM +0200, Simon Horman wrote:
> 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.
>
Thanks for reviewing.
> ...
>
> > 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.
>
This piece is gone anyway.
> > #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.
Good idea, thanks.
>
> > + return entry;
> > +}
> > +
next prev parent reply other threads:[~2023-03-28 16:14 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
2023-03-28 16:12 ` Piotr Raczynski [this message]
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=ZCMR3/M+DFKRO0sN@nimitz \
--to=piotr.raczynski@intel.com \
--cc=aleksander.lobakin@intel.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=jacob.e.keller@intel.com \
--cc=jesse.brandeburg@intel.com \
--cc=lukasz.czapnik@intel.com \
--cc=michal.swiatkowski@intel.com \
--cc=michal.swiatkowski@linux.intel.com \
--cc=netdev@vger.kernel.org \
--cc=shiraz.saleem@intel.com \
--cc=simon.horman@corigine.com \
--cc=sridhar.samudrala@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).