RE: [PATCH v2 21/40] iommu/arm-smmu-v3: Add support for Substream IDs

2018-05-31 Thread Bharat Kumar Gogada
> > At the moment, the SMMUv3 driver offers only one stage-1 or stage-2 > address space to each device. SMMUv3 allows to associate multiple address > spaces per device. In addition to the Stream ID (SID), that identifies a > device, > we can now have Substream IDs (SSID) identifying an address

RE: [PATCH v2 39/40] iommu/arm-smmu-v3: Add support for PRI

2018-05-25 Thread Bharat Kumar Gogada
> > For PCI devices that support it, enable the PRI capability and handle PRI Page > Requests with the generic fault handler. It is enabled on demand by > iommu_sva_device_init(). > > Signed-off-by: Jean-Philippe Brucker > > --- > v1->v2: > * Terminate the page

RE: [RFCv2 PATCH 31/36] iommu/arm-smmu-v3: Add support for PCI ATS

2017-11-16 Thread Bharat Kumar Gogada
> + > + spin_lock_irqsave(_domain->devices_lock, flags); > + list_for_each_entry(master, _domain->devices, list) > + arm_smmu_atc_inv_master(master, ); > + spin_unlock_irqrestore(_domain->devices_lock, flags); > + > + return size; > +} > + > /* IOMMU API */ > static

RE: [RFCv2 PATCH 31/36] iommu/arm-smmu-v3: Add support for PCI ATS

2017-11-16 Thread Bharat Kumar Gogada
Hi Jean, +static size_t +arm_smmu_atc_inv_domain(struct arm_smmu_domain *smmu_domain, int ssid, + unsigned long iova, size_t size) +{ + unsigned long flags; + struct arm_smmu_cmdq_ent cmd; + struct arm_smmu_master_data *master; + +

RE: [RFCv2 PATCH 01/36] iommu: Keep track of processes and PASIDs

2017-11-13 Thread Bharat Kumar Gogada
> > In this case even though hardware supports PASID, BIND flow fails. It should fail, since we're reserving PASID 0 for non-PASID transactions with S1DSS=0b10. In addition, the SMMUv3 specification does not allow using PASID with a single entry. See the description of S1CDMax in 5.2

RE: [RFCv2 PATCH 01/36] iommu: Keep track of processes and PASIDs

2017-11-08 Thread Bharat Kumar Gogada
Hi Jean, +static struct iommu_process * +iommu_process_alloc(struct iommu_domain *domain, struct task_struct +*task) { + int err; + int pasid; + struct iommu_process *process; + + if (WARN_ON(!domain->ops->process_alloc || !domain->ops->process_free)) +

RE: Support SVM without PASID

2017-08-28 Thread Bharat Kumar Gogada
> Subject: RE: Support SVM without PASID > > > From: valmiki [mailto:valmiki...@gmail.com] > > Sent: Saturday, August 12, 2017 8:11 PM > > > > On 8/7/2017 4:01 PM, Jean-Philippe Brucker wrote: > > > On 05/08/17 06:14, valmiki wrote: > > > [...] > > >> Hi Jean, Thanks a lot, now i understood the