> -----Original Message----- > From: Burakov, Anatoly <anatoly.bura...@intel.com> > Sent: Tuesday, July 23, 2019 7:27 PM > To: Thomas Monjalon <tho...@monjalon.net> > Cc: Jerin Jacob Kollanukkaran <jer...@marvell.com>; Stojaczyk, Dariusz > <dariusz.stojac...@intel.com>; David Marchand > <david.march...@redhat.com>; dev@dpdk.org > Subject: [EXT] Re: [dpdk-dev] [PATCH v4 0/4] Fixes on IOVA mode selection > > ---------------------------------------------------------------------- > On 23-Jul-19 11:25 AM, Thomas Monjalon wrote: > > 23/07/2019 11:57, Burakov, Anatoly: > >> A machine without an IOMMU shouldn't have picked IOVA as VA in the > >> first place. Perhaps this is something we could fix? I'm not sure how > >> to detected that condition though, i don't think there's a mechanism > >> to know that for sure. Some kernels create a "iommu" sysfs > >> directories, but i'm not too sure if they're 1) there for older > >> kernels we support, and > >> 2) always there. > > [..] > >> On my machine, "/sys/devices/virtual/iommu" exists when IOMMU is > >> enabled, but doesn't exist if it isn't ("/sys/class/iommu" exists in > >> both cases, but is empty when IOMMU is disabled). Perhaps we could go > >> off that? > > > > Yes, good idea. > > We need to check how these sysfs entries are managed, and how old they > > are by looking at Linux code history. > > > > Quick (and by no means thorough) Google reveals that IOMMU driver's > sysfs-related code dates back as far as kernel version 3.17: > > https://elixir.bootlin.com/linux/v3.17.8/source/drivers/iommu/iommu- > sysfs.c > > I'm not a kernel code expert, but the code *looks* like it's creating an > IOMMU-related entry in sysfs. So, i take it we can be reasonably sure of > these entries' presence at least since v3.17 onwards? Do we support kernels > which don't have this code?
I checked with a x86 and arm64 machine. I could not see "/sys/devices/virtual/iommu" But looks like "/sys/class/iommu/" present when iommu present. $ uname -a Linux jerin-lab 5.1.15-arch1-1-ARCH #1 SMP PREEMPT Tue Jun 25 04:49:39 UTC 2019 x86_64 GNU/Linux $ ls /sys/devices/virtual/ bdi dmi drm graphics mem misc msr net powercap thermal tty vc vtconsole workqueue # ls /sys/class/iommu/ # uname -a Linux alarm 4.14.76-5.0.0-g12f0519 #63 SMP PREEMPT Thu Jul 11 17:43:54 IST 2019 aarch64 GNU/Linux # ls /sys/devices/virtual/ bdi block graphics input mem misc net otx-bphy-ctr otx-gpio-ctr ppp tty vc vfio vtconsole workqueue # ls /sys/class/iommu/ smmu3.0x0000830000000000 > > -- > Thanks, > Anatoly