|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1/2] xen/dom0: Improve documentation for dom0= and dom0-iommu=
>>> On 21.12.18 at 13:44, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 21/12/2018 12:08, Jan Beulich wrote:
>>>>> On 21.12.18 at 00:40, <andrew.cooper3@xxxxxxxxxx> wrote:
>>> --- a/docs/misc/xen-command-line.markdown
>>> +++ b/docs/misc/xen-command-line.markdown
>>> @@ -636,55 +636,76 @@ trace feature is only enabled in debugging builds of
>>> Xen.
>>>
>>> Specify the bit width of the DMA heap.
>>>
>>> -### dom0 (x86)
>>> -> `= List of [ pvh | shadow ]`
>>> +### dom0
>>> +> `= List of [ pvh=<bool>, shadow=<bool> ]`
>>>
>>> -> Sub-options:
>>> -
>>> -> `pvh`
>>> +> Applicability: x86
>> Why the new tag, when everything else uses (x86) next to the
>> option name?
>
> See the commit message of c/s a3a99df44e5405d2092ec59087681765fa4cdee7
>
> The problem is with the generated HTML anchors when trying to cross
> reference the options.
That commit message doesn't talk about anchors, so I can only
guess about the connection. But I think I can see your point.
From a purely textual perspective I have to admit I'd prefer
the original model (without the new tag), but if cross refs don't
work I agree it's better to switch.
>>> ### dom0-iommu
>>> -> `= List of [ passthrough | strict | map-inclusive ]`
>>> -
>>> -This list of booleans controls the iommu usage by Dom0:
>>> -
>>> -* `passthrough`: disables DMA remapping for Dom0. Default is `false`. Note
>>> that
>>> - this option is hard coded to `false` for a PVH Dom0 and any attempt to
>>> - overwrite it from the command line is ignored.
>>> -
>>> -* `strict`: sets up DMA remapping only for the RAM Dom0 actually got
>>> assigned.
>>> - Default is `false` which means Dom0 will get mappings for all the host
>>> - RAM except regions in use by Xen. Note that this option is hard coded to
>>> - `true` for a PVH Dom0 and any attempt to overwrite it from the command
>>> line
>>> - is ignored.
>>> -
>>> -* `map-inclusive`: sets up DMA remapping for all the non-RAM regions below
>>> 4GB
>>> - except for unusable ranges. Use this to work around firmware issues
>>> providing
>>> - incorrect RMRR/IVMD entries. Rather than only mapping RAM pages for IOMMU
>>> - accesses for Dom0, with this option all pages up to 4GB, not marked as
>>> - unusable in the E820 table, will get a mapping established. Note that
>>> this
>>> - option is only applicable to a PV Dom0 and is enabled by default on Intel
>>> - hardware.
>>> -
>>> -* `map-reserved`: sets up DMA remapping for all the reserved regions in the
>>> - memory map for Dom0. Use this to work around firmware issues providing
>>> - incorrect RMRR/IVMD entries. Rather than only mapping RAM pages for IOMMU
>>> - accesses for Dom0, all memory regions marked as reserved in the memory
>>> map
>>> - that don't overlap with any MMIO region from emulated devices will be
>>> - identity mapped. This option maps a subset of the memory that would be
>>> - mapped when using the `map-inclusive` option. This option is available
>>> to all
>>> - Dom0 modes and is enabled by default on Intel hardware.
>>> +> `= List of [ passthrough=<bool>, strict=<bool>, map-inclusive=<bool>,
>>> +> map-reserved=<bool> ]`
>>> +
>>> +Controls for the dom0 IOMMU setup.
>>> +
>>> +* The `passthrough` boolean is applicable to x86 PV dom0's only and
>>> defaults
>>> + to false. It controls whether the IOMMU is fully disabled for devices
>>> + belonging to dom0 (`passthrough=1`), or whether the IOMMU is set up
>>> with
>>> + an identity transform for dom0 (`passthrough=0`) to prevent dom0 from
>>> + DMA'ing outside of its permitted areas.
>>> +
>>> + This option is hardwired to false for x86 PVH dom0's (where a
>>> non-identity
>>> + transform is required for dom0 to function), and is ignored for ARM.
>>> +
>>> +* The `strict` boolean is applicable to x86 PV dom0's only and defaults
>>> to
>>> + false. It controls whether dom0 can have IOMMU mappings for all domain
>>> + RAM in the system, or only for its allocated RAM (and grant mappings
>>> etc.)
>>> +
>>> + This option is hardwired to true for x86 PVH dom0's (as RAM belonging
>>> to
>>> + other domains in the system don't live in a compatible address space),
>>> and
>>> + is ignored for ARM.
>>> +
>>> +* The `map-inclusive` boolean is applicable to x86 PV dom0's, and sets
>>> up DMA
>>> + remapping for all non-RAM regions below 4GB except for unusable ranges.
>> I don't thinks this is PV-specific, just its default is.
>
> From arch_iommu_hwdom_init():
>
> /* Inclusive mappings are enabled by default for PV. */
> if ( iommu_hwdom_inclusive == -1 )
> iommu_hwdom_inclusive = is_pv_domain(d);
> /* Reserved IOMMU mappings are enabled by default. */
> if ( iommu_hwdom_reserved == -1 )
> iommu_hwdom_reserved = 1;
>
> if ( iommu_hwdom_inclusive && !is_pv_domain(d) )
> {
> printk(XENLOG_WARNING
> "IOMMU inclusive mappings are only supported on PV Dom0\n");
> iommu_hwdom_inclusive = 0;
> }
>
>
> Attempting to use this option with a PVH dom0 will cause Xen to force it
> off.
Oh, I see - one of the bad effects of disconnects in source code
(the 3rd if() would better be else-if() for the 1st).
Jan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |