diff mbox

[RFC,01/12] PCI: Add virtfn_index for struct pci_device

Message ID 1445445464-5056-2-git-send-email-tianyu.lan@intel.com (mailing list archive)
State New, archived
Delegated to: Bjorn Helgaas
Headers show

Commit Message

lan,Tianyu Oct. 21, 2015, 4:37 p.m. UTC
Add "virtfn_index" member in the struct pci_device to record VF sequence
of PF. This will be used in the VF sysfs node handle.

Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
---
 drivers/pci/iov.c   | 1 +
 include/linux/pci.h | 1 +
 2 files changed, 2 insertions(+)

Comments

Alexander Duyck Oct. 21, 2015, 6:07 p.m. UTC | #1
On 10/21/2015 09:37 AM, Lan Tianyu wrote:
> Add "virtfn_index" member in the struct pci_device to record VF sequence
> of PF. This will be used in the VF sysfs node handle.
>
> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
> ---
>   drivers/pci/iov.c   | 1 +
>   include/linux/pci.h | 1 +
>   2 files changed, 2 insertions(+)
>
> diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
> index ee0ebff..065b6bb 100644
> --- a/drivers/pci/iov.c
> +++ b/drivers/pci/iov.c
> @@ -136,6 +136,7 @@ static int virtfn_add(struct pci_dev *dev, int id, int reset)
>   	virtfn->physfn = pci_dev_get(dev);
>   	virtfn->is_virtfn = 1;
>   	virtfn->multifunction = 0;
> +	virtfn->virtfn_index = id;
>   
>   	for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {
>   		res = &dev->resource[i + PCI_IOV_RESOURCES];
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 353db8d..85c5531 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -356,6 +356,7 @@ struct pci_dev {
>   	unsigned int	io_window_1k:1;	/* Intel P2P bridge 1K I/O windows */
>   	unsigned int	irq_managed:1;
>   	pci_dev_flags_t dev_flags;
> +	unsigned int	virtfn_index;
>   	atomic_t	enable_cnt;	/* pci_enable_device has been called */
>   
>   	u32		saved_config_space[16]; /* config space saved at suspend time */
>

Can't you just calculate the VF index based on the VF BDF number 
combined with the information in the PF BDF number and VF 
offset/stride?  Seems kind of pointless to add a variable that is only 
used by one driver and is in a slowpath when you can just calculate it 
pretty quickly.

- Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
lan,Tianyu Oct. 24, 2015, 2:46 p.m. UTC | #2
On 10/22/2015 2:07 AM, Alexander Duyck wrote:
> On 10/21/2015 09:37 AM, Lan Tianyu wrote:
>> Add "virtfn_index" member in the struct pci_device to record VF sequence
>> of PF. This will be used in the VF sysfs node handle.
>>
>> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com>
>> ---
>>   drivers/pci/iov.c   | 1 +
>>   include/linux/pci.h | 1 +
>>   2 files changed, 2 insertions(+)
>>
>> diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
>> index ee0ebff..065b6bb 100644
>> --- a/drivers/pci/iov.c
>> +++ b/drivers/pci/iov.c
>> @@ -136,6 +136,7 @@ static int virtfn_add(struct pci_dev *dev, int id,
>> int reset)
>>       virtfn->physfn = pci_dev_get(dev);
>>       virtfn->is_virtfn = 1;
>>       virtfn->multifunction = 0;
>> +    virtfn->virtfn_index = id;
>>       for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {
>>           res = &dev->resource[i + PCI_IOV_RESOURCES];
>> diff --git a/include/linux/pci.h b/include/linux/pci.h
>> index 353db8d..85c5531 100644
>> --- a/include/linux/pci.h
>> +++ b/include/linux/pci.h
>> @@ -356,6 +356,7 @@ struct pci_dev {
>>       unsigned int    io_window_1k:1;    /* Intel P2P bridge 1K I/O
>> windows */
>>       unsigned int    irq_managed:1;
>>       pci_dev_flags_t dev_flags;
>> +    unsigned int    virtfn_index;
>>       atomic_t    enable_cnt;    /* pci_enable_device has been called */
>>       u32        saved_config_space[16]; /* config space saved at
>> suspend time */
>>
>
> Can't you just calculate the VF index based on the VF BDF number
> combined with the information in the PF BDF number and VF
> offset/stride?  Seems kind of pointless to add a variable that is only
> used by one driver and is in a slowpath when you can just calculate it
> pretty quickly.

Good suggestion. Will try it.

>
> - Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-pci" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/pci/iov.c b/drivers/pci/iov.c
index ee0ebff..065b6bb 100644
--- a/drivers/pci/iov.c
+++ b/drivers/pci/iov.c
@@ -136,6 +136,7 @@  static int virtfn_add(struct pci_dev *dev, int id, int reset)
 	virtfn->physfn = pci_dev_get(dev);
 	virtfn->is_virtfn = 1;
 	virtfn->multifunction = 0;
+	virtfn->virtfn_index = id;
 
 	for (i = 0; i < PCI_SRIOV_NUM_BARS; i++) {
 		res = &dev->resource[i + PCI_IOV_RESOURCES];
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 353db8d..85c5531 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -356,6 +356,7 @@  struct pci_dev {
 	unsigned int	io_window_1k:1;	/* Intel P2P bridge 1K I/O windows */
 	unsigned int	irq_managed:1;
 	pci_dev_flags_t dev_flags;
+	unsigned int	virtfn_index;
 	atomic_t	enable_cnt;	/* pci_enable_device has been called */
 
 	u32		saved_config_space[16]; /* config space saved at suspend time */