summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 740b64f)
raw | patch | inline | side by side (parent: 740b64f)
author | Hakkı Kurumahmut <kurumahmut@gmail.com> | |
Tue, 7 May 2019 16:37:59 +0000 (19:37 +0300) | ||
committer | Jan Kiszka <jan.kiszka@siemens.com> | |
Sun, 12 May 2019 07:19:44 +0000 (09:19 +0200) |
While kernel command parameters are intel_iommu=on intremap=on at
some machines, cat /proc/iomem shows DMAR region under reserved section.
This patch must be done for config creation to complete because of
generating DMAR region not found error although it exist. If this patch is
not apply, an error is throw by "config create" command whether
intel_iommu On or Off because "reserved" regions are currently excluded from
the generated config although DMAR region exists. Thus, DMAR under reserved
section must be parsed by parser.
Signed-off-by: Hakkı Kurumahmut <kurumahmut@gmail.com>
[Jan: adjust style according to pep8]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
some machines, cat /proc/iomem shows DMAR region under reserved section.
This patch must be done for config creation to complete because of
generating DMAR region not found error although it exist. If this patch is
not apply, an error is throw by "config create" command whether
intel_iommu On or Off because "reserved" regions are currently excluded from
the generated config although DMAR region exists. Thus, DMAR under reserved
section must be parsed by parser.
Signed-off-by: Hakkı Kurumahmut <kurumahmut@gmail.com>
[Jan: adjust style according to pep8]
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
pyjailhouse/sysfs_parser.py | patch | blob | history |
index 46c95fc2a9f05a94c249b92a10cdc69981e1cbfd..846a03af9fdd6cd138100b9ec276b9eeec561392 100644 (file)
root_dir = "/"
+
def set_root_dir(dir):
global root_dir
root_dir = dir
def parse_iomem(pcidevices):
- regions = IOMemRegionTree.parse_iomem_tree(
+ (regions, dmar_regions) = IOMemRegionTree.parse_iomem_tree(
IOMemRegionTree.parse_iomem_file())
rom_region = MemRegion(0xc0000, 0xdffff, 'ROMs')
add_rom_region = False
ret = []
- dmar_regions = []
for r in regions:
append_r = True
# filter the list for MSI-X pages
return root
- # find HPET regions in tree
+ # find specific regions in tree
@staticmethod
- def find_hpet_regions(tree):
+ def find_regions_by_name(tree, name):
regions = []
for tree in tree.children:
r = tree.region
s = r.typestr
- if (s.find('HPET') >= 0):
+ if (s.find(name) >= 0):
regions.append(r)
# if the tree continues recurse further down ...
if (len(tree.children) > 0):
- regions.extend(IOMemRegionTree.find_hpet_regions(tree))
+ regions.extend(
+ IOMemRegionTree.find_regions_by_name(tree, name))
return regions
@staticmethod
def parse_iomem_tree(tree):
regions = []
+ dmar_regions = []
for tree in tree.children:
r = tree.region
):
continue
- # generally blacklisted, unless we find an HPET behind it
+ # generally blacklisted, with a few exceptions
if (s.lower() == 'reserved'):
- regions.extend(IOMemRegionTree.find_hpet_regions(tree))
+ regions.extend(
+ IOMemRegionTree.find_regions_by_name(tree, 'HPET'))
+ dmar_regions.extend(
+ IOMemRegionTree.find_regions_by_name(tree, 'dmar'))
continue
# if the tree continues recurse further down ...
if (len(tree.children) > 0):
- regions.extend(IOMemRegionTree.parse_iomem_tree(tree))
+ (temp_regions, temp_dmar_regions) = \
+ IOMemRegionTree.parse_iomem_tree(tree)
+ regions.extend(temp_regions)
+ dmar_regions.extend(temp_dmar_regions)
continue
# add all remaining leaves
regions.append(r)
- return regions
+ return regions, dmar_regions
class IOMMUConfig: