All of lore.kernel.org
 help / color / mirror / Atom feed
From: "mika.westerberg@linux.intel.com" <mika.westerberg@linux.intel.com>
To: Nicholas Johnson <nicholas.johnson-opensource@outlook.com.au>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>,
	"bhelgaas@google.com" <bhelgaas@google.com>,
	"corbet@lwn.net" <corbet@lwn.net>,
	"benh@kernel.crashing.org" <benh@kernel.crashing.org>,
	"logang@deltatee.com" <logang@deltatee.com>
Subject: Re: [PATCH v9 4/4] PCI: Allow extend_bridge_window() to shrink resource if necessary
Date: Wed, 30 Oct 2019 15:27:37 +0200	[thread overview]
Message-ID: <20191030132737.GF2593@lahna.fi.intel.com> (raw)
In-Reply-To: <SL2P216MB018746C15E0262862D428C1480600@SL2P216MB0187.KORP216.PROD.OUTLOOK.COM>

On Wed, Oct 30, 2019 at 01:22:44PM +0000, Nicholas Johnson wrote:
> On Wed, Oct 30, 2019 at 02:07:05PM +0200, mika.westerberg@linux.intel.com wrote:
> > On Tue, Oct 29, 2019 at 03:29:21PM +0000, Nicholas Johnson wrote:
> > > Remove checks for resource size in extend_bridge_window(). This is
> > > necessary to allow the pci_bus_distribute_available_resources() to
> > > function when the kernel parameter pci=hpmemsize=nn[KMG] is used to
> > > allocate resources. Because the kernel parameter sets the size of all
> > > hotplug bridges to be the same, there are problems when nested hotplug
> > > bridges are encountered. Fitting a downstream hotplug bridge with size X
> > > and normal bridges with non-zero size Y into parent hotplug bridge with
> > > size X is impossible, and hence the downstream hotplug bridge needs to
> > > shrink to fit into its parent.
> > > 
> > > Add check for if bridge is extended or shrunken and adjust pci_dbg to
> > > reflect this.
> > > 
> > > Reset the resource if its new size is zero (if we have run out of a
> > > bridge window resource) to prevent the PCI resource assignment code from
> > > attempting to assign a zero-sized resource.
> > > 
> > > Rename extend_bridge_window() to adjust_bridge_window() to reflect the
> > > fact that the window can now shrink.
> > > 
> > > Signed-off-by: Nicholas Johnson <nicholas.johnson-opensource@outlook.com.au>
> > > ---
> > >  drivers/pci/setup-bus.c | 23 +++++++++++++++--------
> > >  1 file changed, 15 insertions(+), 8 deletions(-)
> > > 
> > > diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
> > > index fe8b2c715..f8cd54584 100644
> > > --- a/drivers/pci/setup-bus.c
> > > +++ b/drivers/pci/setup-bus.c
> > > @@ -1814,7 +1814,7 @@ void __init pci_assign_unassigned_resources(void)
> > >  	}
> > >  }
> > >  
> > > -static void extend_bridge_window(struct pci_dev *bridge, struct resource *res,
> > > +static void adjust_bridge_window(struct pci_dev *bridge, struct resource *res,
> > >  				 struct list_head *add_list,
> > >  				 resource_size_t new_size)
> > >  {
> > > @@ -1823,13 +1823,20 @@ static void extend_bridge_window(struct pci_dev *bridge, struct resource *res,
> > >  	if (res->parent)
> > >  		return;
> > >  
> > > -	if (resource_size(res) >= new_size)
> > > -		return;
> > > +	if (new_size > resource_size(res)) {
> > > +		add_size = new_size - resource_size(res);
> > > +		pci_dbg(bridge, "bridge window %pR extended by %pa\n", res,
> > > +			&add_size);
> > > +	} else if (new_size < resource_size(res)) {
> > > +		add_size = resource_size(res) - new_size;
> > > +		pci_dbg(bridge, "bridge window %pR shrunken by %pa\n", res,
> > > +			&add_size);
> > > +	}
> > 
> > Do we need to care about new_size == resource_size(res)?
> Sorry, I skipped over this before re-posting. If we are not changing the 
> size, does it need to be logged in pci_dbg? I could change it to ">=", 
> meaning if the size does not change then it will be "extended" by 0 in 
> pci_dbg.
> 
> Let me know if you wish for this to happen. But I am easy either way.

No need.

> If you are fine with how it is, PATCH v10 should have addressed 
> everything so far.

Yes, v10 looks fine by me.

      reply	other threads:[~2019-10-30 13:27 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-29 15:29 [PATCH v9 4/4] PCI: Allow extend_bridge_window() to shrink resource if necessary Nicholas Johnson
2019-10-30 12:07 ` mika.westerberg
2019-10-30 13:22   ` Nicholas Johnson
2019-10-30 13:27     ` mika.westerberg [this message]

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=20191030132737.GF2593@lahna.fi.intel.com \
    --to=mika.westerberg@linux.intel.com \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=corbet@lwn.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=logang@deltatee.com \
    --cc=nicholas.johnson-opensource@outlook.com.au \
    /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.