[dpdk-dev] eal: add notice to make DPDK IOVA aware

Message ID 20170711100141.3950-1-jerin.jacob@caviumnetworks.com (mailing list archive)
State Accepted, archived
Headers

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation fail Compilation issues

Commit Message

Jerin Jacob July 11, 2017, 10:01 a.m. UTC
  When we run DPDK on guest or VFIO mode on host,
the dpdk library or device will not be directly accessing
the physical address. Instead, the device does go through
an IO address translation memory management unit. On x86,
we call it as IOMMU and on ARM as SMMU.

More details:
http://osidays.com/osidays/wp-content/uploads/2014/12/Final_OSI2014_IOMMU_DetailedView_Sanil_Anurup.pdf

Based on discussion in the following thread
http://dpdk.org/ml/archives/dev/2017-July/070850.html

We would like to change reference to physical address to more
appropriate name as with IOMMU/SMMU with
the device won't be dealing directly with the physical address.

An ABI change is planned for 17.11 to change following
data structure or functions to more appropriate name.
Currently planned to change it iova as instead of phys

Please note: The change will be only for the name and
functional aspects of the API will remain same.

Following functions/data structures name may change.
This list is based on v17.05-rc1. It may change based on v17.11 code base.


typedef:
phys_addr_t

structures:

struct rte_memseg::phys_addr
struct rte_mbuf::buf_physaddr

functions:
rte_mempool_populate_phys()
rte_mempool_populate_phys_tab()
rte_eal_using_phys_addrs()
rte_mem_virt2phy()
rte_dump_physmem_layout()
rte_eal_get_physmem_layout()
rte_eal_get_physmem_size()
rte_malloc_virt2phy()
rte_mem_phy2mch()


Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
 doc/guides/rel_notes/deprecation.rst | 7 +++++++
 1 file changed, 7 insertions(+)
  

Comments

Santosh Shukla July 21, 2017, 6:41 a.m. UTC | #1
On Tuesday 11 July 2017 03:31 PM, Jerin Jacob wrote:

> When we run DPDK on guest or VFIO mode on host,
> the dpdk library or device will not be directly accessing
> the physical address. Instead, the device does go through
> an IO address translation memory management unit. On x86,
> we call it as IOMMU and on ARM as SMMU.
>
> More details:
> http://osidays.com/osidays/wp-content/uploads/2014/12/Final_OSI2014_IOMMU_DetailedView_Sanil_Anurup.pdf
>
> Based on discussion in the following thread
> http://dpdk.org/ml/archives/dev/2017-July/070850.html
>
> We would like to change reference to physical address to more
> appropriate name as with IOMMU/SMMU with
> the device won't be dealing directly with the physical address.
>
> An ABI change is planned for 17.11 to change following
> data structure or functions to more appropriate name.
> Currently planned to change it iova as instead of phys
>
> Please note: The change will be only for the name and
> functional aspects of the API will remain same.
>
> Following functions/data structures name may change.
> This list is based on v17.05-rc1. It may change based on v17.11 code base.
>
>
> typedef:
> phys_addr_t
>
> structures:
>
> struct rte_memseg::phys_addr
> struct rte_mbuf::buf_physaddr
>
> functions:
> rte_mempool_populate_phys()
> rte_mempool_populate_phys_tab()
> rte_eal_using_phys_addrs()
> rte_mem_virt2phy()
> rte_dump_physmem_layout()
> rte_eal_get_physmem_layout()
> rte_eal_get_physmem_size()
> rte_malloc_virt2phy()
> rte_mem_phy2mch()
>
>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> ---

Thomas, All:
Any objection on iova aware deprecation notice?
  
Santosh Shukla Aug. 4, 2017, 3:41 a.m. UTC | #2
On Tuesday 11 July 2017 03:31 PM, Jerin Jacob wrote:

> When we run DPDK on guest or VFIO mode on host,
> the dpdk library or device will not be directly accessing
> the physical address. Instead, the device does go through
> an IO address translation memory management unit. On x86,
> we call it as IOMMU and on ARM as SMMU.
>
> More details:
> http://osidays.com/osidays/wp-content/uploads/2014/12/Final_OSI2014_IOMMU_DetailedView_Sanil_Anurup.pdf
>
> Based on discussion in the following thread
> http://dpdk.org/ml/archives/dev/2017-July/070850.html
>
> We would like to change reference to physical address to more
> appropriate name as with IOMMU/SMMU with
> the device won't be dealing directly with the physical address.
>
> An ABI change is planned for 17.11 to change following
> data structure or functions to more appropriate name.
> Currently planned to change it iova as instead of phys
>
> Please note: The change will be only for the name and
> functional aspects of the API will remain same.
>
> Following functions/data structures name may change.
> This list is based on v17.05-rc1. It may change based on v17.11 code base.
>
>
> typedef:
> phys_addr_t
>
> structures:
>
> struct rte_memseg::phys_addr
> struct rte_mbuf::buf_physaddr
>
> functions:
> rte_mempool_populate_phys()
> rte_mempool_populate_phys_tab()
> rte_eal_using_phys_addrs()
> rte_mem_virt2phy()
> rte_dump_physmem_layout()
> rte_eal_get_physmem_layout()
> rte_eal_get_physmem_size()
> rte_malloc_virt2phy()
> rte_mem_phy2mch()
>
>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> ---

Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
  
Hemant Agrawal Aug. 4, 2017, 5:25 a.m. UTC | #3
On 8/4/2017 9:11 AM, santosh wrote:
> On Tuesday 11 July 2017 03:31 PM, Jerin Jacob wrote:
>
>> When we run DPDK on guest or VFIO mode on host,
>> the dpdk library or device will not be directly accessing
>> the physical address. Instead, the device does go through
>> an IO address translation memory management unit. On x86,
>> we call it as IOMMU and on ARM as SMMU.
>>
>> More details:
>> http://osidays.com/osidays/wp-content/uploads/2014/12/Final_OSI2014_IOMMU_DetailedView_Sanil_Anurup.pdf
>>
>> Based on discussion in the following thread
>> http://dpdk.org/ml/archives/dev/2017-July/070850.html
>>
>> We would like to change reference to physical address to more
>> appropriate name as with IOMMU/SMMU with
>> the device won't be dealing directly with the physical address.
>>
>> An ABI change is planned for 17.11 to change following
>> data structure or functions to more appropriate name.
>> Currently planned to change it iova as instead of phys
>>
>> Please note: The change will be only for the name and
>> functional aspects of the API will remain same.
>>
>> Following functions/data structures name may change.
>> This list is based on v17.05-rc1. It may change based on v17.11 code base.
>>
>>
>> typedef:
>> phys_addr_t
>>
>> structures:
>>
>> struct rte_memseg::phys_addr
>> struct rte_mbuf::buf_physaddr
>>
>> functions:
>> rte_mempool_populate_phys()
>> rte_mempool_populate_phys_tab()
>> rte_eal_using_phys_addrs()
>> rte_mem_virt2phy()
>> rte_dump_physmem_layout()
>> rte_eal_get_physmem_layout()
>> rte_eal_get_physmem_size()
>> rte_malloc_virt2phy()
>> rte_mem_phy2mch()
>>
>>
>> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>> ---
>
> Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
>
>
Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
  
Olivier Matz Aug. 6, 2017, 9:22 p.m. UTC | #4
On Fri, Aug 04, 2017 at 10:55:25AM +0530, Hemant Agrawal wrote:
> On 8/4/2017 9:11 AM, santosh wrote:
> > On Tuesday 11 July 2017 03:31 PM, Jerin Jacob wrote:
> > 
> > > When we run DPDK on guest or VFIO mode on host,
> > > the dpdk library or device will not be directly accessing
> > > the physical address. Instead, the device does go through
> > > an IO address translation memory management unit. On x86,
> > > we call it as IOMMU and on ARM as SMMU.
> > > 
> > > More details:
> > > http://osidays.com/osidays/wp-content/uploads/2014/12/Final_OSI2014_IOMMU_DetailedView_Sanil_Anurup.pdf
> > > 
> > > Based on discussion in the following thread
> > > http://dpdk.org/ml/archives/dev/2017-July/070850.html
> > > 
> > > We would like to change reference to physical address to more
> > > appropriate name as with IOMMU/SMMU with
> > > the device won't be dealing directly with the physical address.
> > > 
> > > An ABI change is planned for 17.11 to change following
> > > data structure or functions to more appropriate name.
> > > Currently planned to change it iova as instead of phys
> > > 
> > > Please note: The change will be only for the name and
> > > functional aspects of the API will remain same.
> > > 
> > > Following functions/data structures name may change.
> > > This list is based on v17.05-rc1. It may change based on v17.11 code base.
> > > 
> > > 
> > > typedef:
> > > phys_addr_t
> > > 
> > > structures:
> > > 
> > > struct rte_memseg::phys_addr
> > > struct rte_mbuf::buf_physaddr
> > > 
> > > functions:
> > > rte_mempool_populate_phys()
> > > rte_mempool_populate_phys_tab()
> > > rte_eal_using_phys_addrs()
> > > rte_mem_virt2phy()
> > > rte_dump_physmem_layout()
> > > rte_eal_get_physmem_layout()
> > > rte_eal_get_physmem_size()
> > > rte_malloc_virt2phy()
> > > rte_mem_phy2mch()
> > > 
> > > 
> > > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > > ---
> > 
> > Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
> > 
> > 
> Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> 

Acked-by: Olivier Matz <olivier.matz@6wind.com>
  
Thomas Monjalon Aug. 8, 2017, 12:04 a.m. UTC | #5
> > > > When we run DPDK on guest or VFIO mode on host,
> > > > the dpdk library or device will not be directly accessing
> > > > the physical address. Instead, the device does go through
> > > > an IO address translation memory management unit. On x86,
> > > > we call it as IOMMU and on ARM as SMMU.
> > > > 
> > > > More details:
> > > > http://osidays.com/osidays/wp-content/uploads/2014/12/Final_OSI2014_IOMMU_DetailedView_Sanil_Anurup.pdf
> > > > 
> > > > Based on discussion in the following thread
> > > > http://dpdk.org/ml/archives/dev/2017-July/070850.html
> > > > 
> > > > We would like to change reference to physical address to more
> > > > appropriate name as with IOMMU/SMMU with
> > > > the device won't be dealing directly with the physical address.
> > > > 
> > > > An ABI change is planned for 17.11 to change following
> > > > data structure or functions to more appropriate name.
> > > > Currently planned to change it iova as instead of phys
> > > > 
> > > > Please note: The change will be only for the name and
> > > > functional aspects of the API will remain same.
> > > > 
> > > > Following functions/data structures name may change.
> > > > This list is based on v17.05-rc1. It may change based on v17.11 code base.
> > > > 
> > > > 
> > > > typedef:
> > > > phys_addr_t
> > > > 
> > > > structures:
> > > > 
> > > > struct rte_memseg::phys_addr
> > > > struct rte_mbuf::buf_physaddr
> > > > 
> > > > functions:
> > > > rte_mempool_populate_phys()
> > > > rte_mempool_populate_phys_tab()
> > > > rte_eal_using_phys_addrs()
> > > > rte_mem_virt2phy()
> > > > rte_dump_physmem_layout()
> > > > rte_eal_get_physmem_layout()
> > > > rte_eal_get_physmem_size()
> > > > rte_malloc_virt2phy()
> > > > rte_mem_phy2mch()
> > > > 
> > > > Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> > > 
> > > Acked-by: Santosh Shukla <santosh.shukla@caviumnetworks.com>
> > > 
> > Acked-by: Hemant Agrawal <hemant.agrawal@nxp.com>
> 
> Acked-by: Olivier Matz <olivier.matz@6wind.com>

Acked-by: Thomas Monjalon <thomas@monjalon.net>

The name will probably be discussed.
Applied, thanks
  

Patch

diff --git a/doc/guides/rel_notes/deprecation.rst b/doc/guides/rel_notes/deprecation.rst
index 257dcba32..379920fbb 100644
--- a/doc/guides/rel_notes/deprecation.rst
+++ b/doc/guides/rel_notes/deprecation.rst
@@ -64,3 +64,10 @@  Deprecation Notices
   be removed in 17.11:
 
   - ``rte_eal_parse_devargs_str``, replaced by ``rte_eal_devargs_parse``
+
+* eal: An ABI change is planned for 17.11 to make dpdk aware of IOVA address
+  translation scheme.
+  Reference to phys address in eal data-structure or functions may change to
+  IOVA address or more appropriate name.
+  The change will be only for the name.
+  Functional aspects of the API or data-structure will remain same.