From: Piotr Raczynski <piotr.raczynski@intel.com>
To: Simon Horman <simon.horman@corigine.com>
Cc: michal.swiatkowski@intel.com, netdev@vger.kernel.org,
jesse.brandeburg@intel.com, intel-wired-lan@lists.osuosl.org,
shiraz.saleem@intel.com
Subject: Re: [Intel-wired-lan] [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;
> > +}
> > +
_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@osuosl.org
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan
WARNING: multiple messages have this Message-ID (diff)
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: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-23 12:24 [Intel-wired-lan] [PATCH net-next v3 0/8] ice: support dynamic interrupt allocation Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-23 12:24 ` [Intel-wired-lan] [PATCH net-next v3 1/8] ice: move interrupt related code to separate file Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-26 13:34 ` [Intel-wired-lan] " Simon Horman
2023-03-26 13:34 ` Simon Horman
2023-04-21 5:36 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-04-21 5:36 ` Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [Intel-wired-lan] [PATCH net-next v3 2/8] ice: use pci_irq_vector helper function Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-26 13:35 ` [Intel-wired-lan] " Simon Horman
2023-03-26 13:35 ` Simon Horman
2023-04-21 5:41 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-04-21 5:41 ` Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [Intel-wired-lan] [PATCH net-next v3 3/8] ice: use preferred MSIX allocation api Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-26 13:35 ` [Intel-wired-lan] " Simon Horman
2023-03-26 13:35 ` Simon Horman
2023-04-21 5:45 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-04-21 5:45 ` Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [Intel-wired-lan] [PATCH net-next v3 4/8] ice: refactor VF control VSI interrupt handling Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-26 13:36 ` [Intel-wired-lan] " Simon Horman
2023-03-26 13:36 ` Simon Horman
2023-03-30 16:53 ` [Intel-wired-lan] " Romanowski, Rafal
2023-03-23 12:24 ` [Intel-wired-lan] [PATCH net-next v3 5/8] ice: remove redundant SRIOV code Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-26 13:36 ` [Intel-wired-lan] " Simon Horman
2023-03-26 13:36 ` Simon Horman
2023-04-06 9:50 ` [Intel-wired-lan] " Romanowski, Rafal
2023-04-06 9:50 ` Romanowski, Rafal
2023-03-23 12:24 ` [Intel-wired-lan] [PATCH net-next v3 6/8] ice: add individual interrupt allocation Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-26 13:18 ` [Intel-wired-lan] " Simon Horman
2023-03-26 13:18 ` Simon Horman
2023-03-28 16:16 ` [Intel-wired-lan] " Piotr Raczynski
2023-03-28 16:16 ` Piotr Raczynski
2023-04-21 5:48 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-04-21 5:48 ` Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [Intel-wired-lan] [PATCH net-next v3 7/8] ice: track interrupt vectors with xarray Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-26 13:19 ` [Intel-wired-lan] " Simon Horman
2023-03-26 13:19 ` Simon Horman
2023-03-28 16:12 ` Piotr Raczynski [this message]
2023-03-28 16:12 ` Piotr Raczynski
2023-04-21 5:53 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-04-21 5:53 ` Pucha, HimasekharX Reddy
2023-03-23 12:24 ` [Intel-wired-lan] [PATCH net-next v3 8/8] ice: add dynamic interrupt allocation Piotr Raczynski
2023-03-23 12:24 ` Piotr Raczynski
2023-03-26 13:37 ` [Intel-wired-lan] " Simon Horman
2023-03-26 13:37 ` Simon Horman
2023-04-21 5:55 ` [Intel-wired-lan] " Pucha, HimasekharX Reddy
2023-04-21 5:55 ` Pucha, HimasekharX Reddy
2023-03-29 11:35 ` [Intel-wired-lan] [PATCH net-next v3 0/8] ice: support " Leon Romanovsky
2023-03-29 11:35 ` 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=intel-wired-lan@lists.osuosl.org \
--cc=jesse.brandeburg@intel.com \
--cc=michal.swiatkowski@intel.com \
--cc=netdev@vger.kernel.org \
--cc=shiraz.saleem@intel.com \
--cc=simon.horman@corigine.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.