> On Aug 24, 2018, at 1:51 AM, Alejandro Lucero > <alejandro.luc...@netronome.com> wrote: > > > > On Thu, Aug 23, 2018 at 6:18 PM, Yongseok Koh <ys...@mellanox.com> wrote: > > > On Aug 22, 2018, at 5:19 PM, Yongseok Koh <ys...@mellanox.com> wrote: > > > > On Tue, Aug 21, 2018 at 12:07:49PM +0200, Alejandro Lucero wrote: > >> Hi Yonngseok, > >> > >> There is a patchset aimed at 17.11.x: > >> > >> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatches.dpdk.org%2Fcover%2F42741%2F&data=02%7C01%7Cyskoh%40mellanox.com%7Cb1b0e3eff71c499ff3fb08d6088e1ede%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636705803846548967&sdata=8f12c1IuUe4mw2EaTZ18vVTuLTjXOD2cSe%2B%2B7f6OFfk%3D&reserved=0 > >> > >> It was not accepted for master because the memory code has changed a lot > >> since 17.11, and I'm working on another patchset for adjusting to the those > >> changes. > >> > >> I wonder if there is any issue with adding this patchset to stable 17.11.4. > >> Note that this makes unlikely a known limitation with emulated IOMMU inside > >> VMs. > > > > This patchset seems quite large for stable release and need to be well > > verified > > before GA. In -rc1 stage, we don't usually take such a large patchset as > > people > > have already started verification. And we don't usually release -rc2. If > > you're > > trying to solve a very critical issue with this patchset, I have to release > > -rc2 > > and ask people to verify again. How critical is your issue? > > > > For the patchset, > > - "mem: add function for checking memsegs IOVAs addresses" > > This is adding a new API, so I don't expect any API/ABI breakage, but want > > to > > double-confirm with Thomas. Thomas? > > > > - "bus/pci: use IOVAs check when setting IOVA mode" > > All the patches got ack except for this one but from looking at the > > threads in > > dev mailing list, it looks okay. I have a question though. > > > >> @@ -640,13 +643,17 @@ > >> { > >> struct rte_pci_device *dev = NULL; > >> struct rte_pci_driver *drv = NULL; > >> + int iommu_dma_mask_check_done = 0; > >> > >> FOREACH_DRIVER_ON_PCIBUS(drv) { > >> FOREACH_DEVICE_ON_PCIBUS(dev) { > >> if (!rte_pci_match(drv, dev)) > >> continue; > >> - if (!pci_one_device_iommu_support_va(dev)) > >> - return false; > >> + if (!iommu_dma_mask_check_done) { > >> + if (pci_one_device_iommu_support_va(dev) < > >> 0) > > > > pci_one_device_iommu_support_va() returns true/false(1/0), then why do you > > expect to see a negative return value in case of failure? > > > Emulated IOMMU has a 39 bits addressing limitation in some QEMU versions. > With pci_one_device_iommu_support_va this is checked out, and if it does > exist, IOMMU with VA is not supported. > > This patch avoids such coarse check using dma mask code added for allowing > IOMMU with VA if allocated memory is below the addressing limitation. This is > going to help for using IOMMU with VA is most of the systems out there, and > even with systems with more than 512GB as long as the DPDK allocated memory > is below that limit.
I was asking about this change: from, > >> - if (!pci_one_device_iommu_support_va(dev)) to, > >> + if (pci_one_device_iommu_support_va(dev) < > >> 0) The original code checks zero but you changed it to check negative value. But it looks pci_one_device_iommu_support_va() doesn't return negative value, right? I thought this is buggy, please let me know. Thanks, Yongseok > > Alejandro, > > As I will release -rc2, I can integrate your patchset but this should be > addressed. Please let me know. > > Thanks, > Yongseok > > >> + return false; > >> + iommu_dma_mask_check_done = 1; > >> + } > >> } > >> } > >> return true; > >> > >> > >> > >> Thanks > >> > >> On Thu, Aug 16, 2018 at 8:18 PM, Yongseok Koh <ys...@mellanox.com> wrote: > >> > >>> Hi all, > >>> > >>> Here is a list of patches targeted for LTS release 17.11.4. Please help > >>> review > >>> and test. The planned date for the final release is August 23. Before > >>> that, > >>> please shout if anyone has objections with these patches being applied. > >>> > >>> Also for the companies committed to running regression tests, please run > >>> the > >>> tests and report any issue before the release date. > >>> > >>> A release candidate tarball can be found at: > >>> > >>> > >>> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable%2Ftag%2F%3Fid%3Dv17.11.4-rc1&data=02%7C01%7Cyskoh%40mellanox.com%7Cb1b0e3eff71c499ff3fb08d6088e1ede%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636705803846548967&sdata=AMgyJMFIs512o5zfZ4aNSy1Ptp%2BhEIMUCVZ6HaL2F40%3D&reserved=0 > >>> > >>> These patches are located at branch 17.11 of dpdk-stable repo: > >>> > >>> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable%2F&data=02%7C01%7Cyskoh%40mellanox.com%7Cb1b0e3eff71c499ff3fb08d6088e1ede%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636705803846548967&sdata=hvOhEk502vVzboCbRbCZXqJXcsiI3DTtgQypQJi0Aro%3D&reserved=0 > >>> > >>> Thanks, > >>> Yongseok > >>> > >>> --- > >>> Adrien Mazarguil (2): > >>> maintainers: update for Mellanox PMDs > >>> net/mlx4: fix minor resource leak during init > >>> > >>> Ajit Khaparde (7): > >>> net/bnxt: fix HW Tx checksum offload check > >>> net/bnxt: fix set MTU > >>> net/bnxt: fix Rx ring count limitation > >>> net/bnxt: fix memory leaks in NVM commands > >>> net/bnxt: fix lock release on NVM write failure > >>> net/bnxt: check access denied for HWRM commands > >>> net/bnxt: fix RETA size > >>> > >>> Alejandro Lucero (1): > >>> net/nfp: fix field initialization in Tx descriptor > >>> > >>> Alok Makhariya (1): > >>> bus/dpaa: fix phandle support for Linux 4.16 > >>> > >>> Anatoly Burakov (8): > >>> eal/linux: fix invalid syntax in interrupts > >>> eal/linux: fix uninitialized value > >>> test: fix EAL flags autotest on FreeBSD > >>> test: fix result printing > >>> test: fix code on report > >>> test: make autotest runner python 2/3 compliant > >>> test: print autotest categories > >>> test: improve filtering > >>> > >>> Andrew Rybchenko (2): > >>> net/sfc: cut non VLAN ID bits from TCI > >>> net/sfc: fix assert in set multicast address list > >>> > >>> Andy Green (1): > >>> ring: fix sign conversion warning > >>> > >>> Beilei Xing (3): > >>> net/i40e: fix shifts of 32-bit value > >>> net/i40e: fix packet type parsing with DDP > >>> net/i40e: fix setting TPID with AQ command > >>> > >>> Bruce Richardson (2): > >>> examples/exception_path: fix out-of-bounds read > >>> mk: fix permissions when using make install > >>> > >>> Chas Williams (2): > >>> net/bonding: always update bonding link status > >>> net/bonding: do not clear active slave count > >>> > >>> Dan Gora (1): > >>> kni: fix crash with null name > >>> > >>> Daria Kolistratova (1): > >>> net/ena: fix SIGFPE with 0 Rx queue > >>> > >>> Dariusz Stojaczyk (1): > >>> eal: fix return codes on thread naming failure > >>> > >>> David Marchand (1): > >>> net/bnxt: add missing ids in xstats > >>> > >>> Drocula Lambda (1): > >>> kni: fix build on RHEL 7.5 > >>> > >>> Ferruh Yigit (2): > >>> kni: fix build with gcc 8.1 > >>> net/thunderx: fix build with gcc optimization on > >>> > >>> Gavin Hu (3): > >>> mk: fix cross build > >>> net/dpaa2: remove loop for unused pool entries > >>> maintainers: claim maintainership for ARM v7 and v8 > >>> > >>> Haiyue Wang (1): > >>> net/i40e: workaround performance degradation > >>> > >>> Harry van Haaren (1): > >>> event: fix ring init failure handling > >>> > >>> Hemant Agrawal (2): > >>> test/crypto: fix device id when stopping port > >>> bus/dpaa: fix buffer offset setting in FMAN > >>> > >>> Hyong Youb Kim (1): > >>> net/enic: do not overwrite admin Tx queue limit > >>> > >>> Ido Goshen (1): > >>> net/pcap: fix multiple queues > >>> > >>> Jananee Parthasarathy (1): > >>> mk: update targets for classified tests > >>> > >>> Jay Ding (1): > >>> net/bnxt: check for invalid vNIC id > >>> > >>> Jerin Jacob (2): > >>> ethdev: fix queue statistics mapping documentation > >>> eal: fix bitmap documentation > >>> > >>> Kiran Kumar (2): > >>> net/bonding: fix MAC address reset > >>> net/thunderx: avoid sq door bell write on zero packet > >>> > >>> Konstantin Ananyev (3): > >>> examples/ipsec-secgw: fix IPv4 checksum at Tx > >>> examples/ipsec-secgw: fix bypass rule processing > >>> app/testpmd: fix DCB config > >>> > >>> Maxime Coquelin (4): > >>> vhost: improve dirty pages logging performance > >>> vhost: fix missing increment of log cache count > >>> vhost: flush IOTLB cache on new mem table handling > >>> vhost: retranslate vring addr when memory table changes > >>> > >>> Moti Haimovsky (2): > >>> net/mlx5: fix build with old kernels > >>> net/mlx4: check RSS queues number limitation > >>> > >>> Nelio Laranjeiro (1): > >>> net/mlx5: fix TCI mask filter > >>> > >>> Nikhil Rao (5): > >>> eventdev: fix port in Rx adapter internal function > >>> eventdev: fix missing update to Rx adaper WRR position > >>> eventdev: add event buffer flush in Rx adapter > >>> eventdev: fix internal port logic in Rx adapter > >>> eventdev: fix Rx SW adapter stop > >>> > >>> Nithin Dabilpuram (1): > >>> app/testpmd: fix buffer leak in TM command > >>> > >>> Ophir Munk (1): > >>> net/mlx5: fix secondary process resource leakage > >>> > >>> Pablo de Lara (7): > >>> examples/l2fwd-crypto: fix digest with AEAD algo > >>> examples/l2fwd-crypto: check return value on IV size check > >>> examples/l2fwd-crypto: skip device not supporting operation > >>> test/hash: fix multiwriter with non consecutive cores > >>> test/hash: fix potential memory leak > >>> app/crypto-perf: fix auth IV offset > >>> hash: fix doxygen of return values > >>> > >>> Pavan Nikhilesh (2): > >>> event/octeontx: remove unnecessary port start and stop > >>> net/octeontx: fix stop clearing Rx/Tx functions > >>> > >>> Qi Zhang (1): > >>> vfio: fix PCI address comparison > >>> > >>> Radu Nicolau (3): > >>> security: fix crash on destroy null session > >>> test: fix uninitialized port configuration > >>> net/bonding: fix race condition > >>> > >>> Rafal Kozik (4): > >>> net/ena: fix GENMASK_ULL macro > >>> net/ena: set link speed as none > >>> net/ena: check pointer before memset > >>> net/ena: change memory type > >>> > >>> Rahul Lakkireddy (1): > >>> net/cxgbe: fix init failure due to new flash parts > >>> > >>> Rami Rosen (2): > >>> examples/l3fwd: remove useless include > >>> ethdev: fix a doxygen comment for port allocation > >>> > >>> Rasesh Mody (9): > >>> net/qede: fix VF MTU update > >>> net/qede: remove primary MAC removal > >>> net/qede: fix for devargs > >>> net/qede: fix default extended VLAN offload config > >>> doc: update qede management firmware guide > >>> net/qede/base: fix GRC attention callback > >>> net/bnx2x: fix FW command timeout during stop > >>> net/bnx2x: fix poll link status > >>> net/qede/base: fix to clear HW indication > >>> > >>> Remy Horton (4): > >>> bitrate: add sanity check on parameters > >>> metrics: add check for invalid key > >>> metrics: do not fail silently when uninitialised > >>> metrics: disallow null as metric name > >>> > >>> Reshma Pattan (2): > >>> test/flow_classify: fix return types > >>> mk: remove unnecessary test rules > >>> > >>> Rosen Xu (1): > >>> examples/flow_filtering: add flow director config for i40e > >>> > >>> Shahaf Shuler (1): > >>> net/mlx5: fix compilation for rdma-core v19 > >>> > >>> Shahed Shaikh (7): > >>> net/qede: fix link change event notification > >>> net/qede: fix legacy interrupt mode > >>> net/qede: fix incorrect link status update > >>> net/qede: fix unicast MAC address handling in VF > >>> net/qede: fix interrupt handler unregister > >>> net/qede: fix MAC address removal failure message > >>> net/qede: fix ntuple filter configuration > >>> > >>> Shreyansh Jain (1): > >>> doc: fix bonding command in testpmd > >>> > >>> Somnath Kotur (3): > >>> net/bnxt: fix to move a flow to a different queue > >>> net/bnxt: use correct flags during VLAN configuration > >>> net/bnxt: fix filter freeing > >>> > >>> Thomas Monjalon (1): > >>> bus/dpaa: fix build > >>> > >>> Tomasz Duszynski (1): > >>> net/mvpp2: check pointer before using it > >>> > >>> Wei Zhao (7): > >>> net/ixgbe: add support for VLAN in IP mode FDIR > >>> net/ixgbe: fix tunnel id format error for FDIR > >>> net/ixgbe: fix tunnel type set error for FDIR > >>> net/ixgbe: fix mask bits register set error for FDIR > >>> app/testpmd: fix VLAN TCI mask set error for FDIR > >>> net/i40e: fix check of flow director programming status > >>> net/i40e: revert fix of flow director check > >>> > >>> Xiaoyun Li (1): > >>> net/i40e: fix link speed > >>> > >>> Xueming Li (1): > >>> net/mlx5: fix crash in device probe > >>> > >>> Yipeng Wang (3): > >>> hash: fix multiwriter lock memory allocation > >>> hash: fix a multi-writer race condition > >>> hash: fix key slot size accuracy > >>> > >>> Yongseok Koh (7): > >>> net/mlx5: fix Rx buffer replenishment threshold > >>> net/mlx5: add missing sanity checks for Tx completion queue > >>> net/mlx5: fix assert for Tx completion queue count > >>> net/mlx5: fix queue rollback when starting device > >>> net/mlx5: fix error number handling > >>> net/mlx5: preserve promiscuous flag for flow isolation mode > >>> net/mlx5: preserve allmulticast flag for flow isolation mode > >>> > >