[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH v6 0/4] iommu: add rmrr Xen command line option

From: Elena Ufimtseva <elena.ufimtseva@xxxxxxxxxx>

v6 of extra rmrr series with addressed comments from Jan Beulich.
Any suggestions are welcome.
Add Xen command line option rmrr to specify RMRR
regions for devices that are not defined in ACPI thus
causing IO Page Fault while booting dom0 in PVH mode.
These additional regions will be added to the list of
RMRR regions parsed from ACPI.

Changes in v6:
 - make __parse_pci return correct result and error codes;
 - move add_extra_rmrr
 - previous patch was missing RMRR addresses in range check, add it here;
 - add overlap check and range boundaries check;
 - moved extra rmrr structure definition to dmar.c;
 - change def_seg in __parse_pci type from int to bool_t;
 - change name for extra rmrr range to reflect they hold now pfns;

Changes in v5:
 - make parse_pci a wrapper and add __parse_pci with additional def_seg param
   to identify if segment was specified;
 - make possible not to define segment for each device within same rmrr;
 - limit number of pages for one RMRR by 16;
 - run mfn_valid check for every address in RMRR range;
 - add PCI_SBDF macro;
 - remove list for extra rmrrs as they are kept in static array;

Changes in v4 after comments by Jan Beulich:
 - keep sbdf per device instead of bdf and one segment per RMRR when parsing 
and compare later;
 - add check for segment values and make sure they are same for one RMRR;
 - move RMRR parameters checks and add error messages if RMRRs are incorrect;
 - make relevant variables and functions static;
 - mention requirement for segment values in rmrr documentation;

Changes in v3:
 - use ';' instead of '#' in command line and add proper notes for grub ';'
 special treatment;

Changes in v2:
 - move rmrr parser to dmar.c and make it custom_param;
 - change of rmrr command line oprion format; since adding multiple device
 per range support needs to utilize more special characters and offered from
 the previous review ';' is not supported, '[' ']' are reserved, ':' and used 
in pci
 format, range and devices are separated by '#'; Suggestions are welcome;
 - added support for multiple devices per range;
 - moved adding misc RMRRs before ACPI RMRR parsing;
 - make parser fail if pci device is specified incorrectly;

Elena Ufimtseva (4):
  pci: add PCI_SBDF and PCI_SEG macros
  iommu VT-d: separate rmrr addition function
  pci: add wrapper for parse_pci
  iommu: add rmrr Xen command line option for extra rmrrs

 docs/misc/xen-command-line.markdown |  13 ++
 xen/drivers/passthrough/vtd/dmar.c  | 293 ++++++++++++++++++++++++++++--------
 xen/drivers/pci/pci.c               |  11 ++
 xen/include/xen/pci.h               |   5 +
 4 files changed, 262 insertions(+), 60 deletions(-)


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.