All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Oliver O'Halloran <oohall@gmail.com>
Cc: linux-pci@vger.kernel.org
Subject: Re: [PATCH] PCI: Add a comment for the is_physfn field
Date: Tue, 7 May 2019 14:40:37 -0500	[thread overview]
Message-ID: <20190507194037.GE156478@google.com> (raw)
In-Reply-To: <20190410074455.26964-1-oohall@gmail.com>

Hi Oliver,

On Wed, Apr 10, 2019 at 05:44:55PM +1000, Oliver O'Halloran wrote:
> The meaning of is_physfn and how it's different to is_virtfn really
> isn't clear unless you do a bit of digging. Add a comment to help out
> the unaware.
> 
> Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
> ---
>  include/linux/pci.h | 4 ++++
>  1 file changed, 4 insertions(+)
> 
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 77448215ef5b..88bf71bfa757 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -393,6 +393,10 @@ struct pci_dev {
>  	unsigned int	is_managed:1;
>  	unsigned int	needs_freset:1;		/* Requires fundamental reset */
>  	unsigned int	state_saved:1;
> +	/*
> +	 * is_physfn indicates that the function can be used to host VFs.
> +	 * It is only set when both the kernel and the device support IOV.
> +	 */

The comment is certainly accurate, no question there, but it sounds
like the reason for adding it is because you stumbled over something
in the confusing SR-IOV/PF/VF infrastructure.  If we can, I'd really
like to improve that infrastructure so it's less confusing in the
first place.

It seems like part of the problem is that "is_physfn" is telling us
more than one thing: "CONFIG_PCI_IOV=y" and "pdev has an SR-IOV
capability" and "pdev is a PF".

Many of the uses of "is_physfn" are in powerpc code that tests
"!pdev->is_physfn", and the negation of those multiple things makes it
a little confusing to figure out what the real purpose it.

Maybe we should cache the PCI_EXT_CAP_ID_SRIOV location in the
pci_dev.  That would simplify some drivers slightly, and if we had
"pdev->sriov_cap" and "pdev->is_virtfn", I think we could drop
"is_physfn".  But I don't understand the powerpc uses well enough to
know whether that would make things easier or harder.

>  	unsigned int	is_physfn:1;
>  	unsigned int	is_virtfn:1;
>  	unsigned int	reset_fn:1;
> -- 
> 2.20.1
> 

  reply	other threads:[~2019-05-07 19:40 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-10  7:44 [PATCH] PCI: Add a comment for the is_physfn field Oliver O'Halloran
2019-05-07 19:40 ` Bjorn Helgaas [this message]
2019-05-08  8:31   ` Oliver

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=20190507194037.GE156478@google.com \
    --to=helgaas@kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=oohall@gmail.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.