Message ID | 20240214103741.16189-3-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Fix fallout from IVMD/RMRR unification checks | expand |
On 14.02.2024 11:37, Roger Pau Monne wrote: > It's easier to correlate with the physical memory map if the addresses are > fully printed, instead of using frame numbers. > > Requested-by: Andrew Cooper <andrew.cooper3@citrix.com> > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> In principle Reviewed-by: Jan Beulich <jbeulich@suse.com> I'm not sure though that this fully matches Andrew's intentions: > --- a/xen/drivers/passthrough/x86/iommu.c > +++ b/xen/drivers/passthrough/x86/iommu.c > @@ -801,8 +801,8 @@ bool __init iommu_unity_region_ok(const char *prefix, mfn_t start, mfn_t end) > return true; > > printk(XENLOG_WARNING > - "%s: [%#" PRI_mfn " ,%#" PRI_mfn "] is not (entirely) in reserved memory\n", > - prefix, mfn_x(start), mfn_x(end)); > + "%s: [%#lx, %#lx] is not (entirely) in reserved memory\n", > + prefix, mfn_to_maddr(start), mfn_to_maddr(end)); e820.c uses [%016Lx, %016Lx] instead, i.e. full 16-digit numbers. For easiest cross matching it may be desirable to do the same here. Then of course the 0x prefixes may also better disappear. Jan
On Wed, Feb 14, 2024 at 02:22:09PM +0100, Jan Beulich wrote: > On 14.02.2024 11:37, Roger Pau Monne wrote: > > It's easier to correlate with the physical memory map if the addresses are > > fully printed, instead of using frame numbers. > > > > Requested-by: Andrew Cooper <andrew.cooper3@citrix.com> > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> > > In principle > Reviewed-by: Jan Beulich <jbeulich@suse.com> > I'm not sure though that this fully matches Andrew's intentions: > > > --- a/xen/drivers/passthrough/x86/iommu.c > > +++ b/xen/drivers/passthrough/x86/iommu.c > > @@ -801,8 +801,8 @@ bool __init iommu_unity_region_ok(const char *prefix, mfn_t start, mfn_t end) > > return true; > > > > printk(XENLOG_WARNING > > - "%s: [%#" PRI_mfn " ,%#" PRI_mfn "] is not (entirely) in reserved memory\n", > > - prefix, mfn_x(start), mfn_x(end)); > > + "%s: [%#lx, %#lx] is not (entirely) in reserved memory\n", > > + prefix, mfn_to_maddr(start), mfn_to_maddr(end)); > > e820.c uses [%016Lx, %016Lx] instead, i.e. full 16-digit numbers. For > easiest cross matching it may be desirable to do the same here. Then > of course the 0x prefixes may also better disappear. Yes, I also saw that format, but wasn't sure whether it was desirable to use here, as for example I would expect RMRR/IVMD regions to be below the 4GB boundary. Also the leading zeros are useful to have a uniform table when printing the memory map that contains more than one entry, but here I expect printing will be limited to a very small set of entries, or maybe just one (as we only print the misplaced ones). Thanks, Roger.
diff --git a/xen/drivers/passthrough/x86/iommu.c b/xen/drivers/passthrough/x86/iommu.c index a3fa0aef7c37..304a2f5480c7 100644 --- a/xen/drivers/passthrough/x86/iommu.c +++ b/xen/drivers/passthrough/x86/iommu.c @@ -801,8 +801,8 @@ bool __init iommu_unity_region_ok(const char *prefix, mfn_t start, mfn_t end) return true; printk(XENLOG_WARNING - "%s: [%#" PRI_mfn " ,%#" PRI_mfn "] is not (entirely) in reserved memory\n", - prefix, mfn_x(start), mfn_x(end)); + "%s: [%#lx, %#lx] is not (entirely) in reserved memory\n", + prefix, mfn_to_maddr(start), mfn_to_maddr(end)); for ( addr = start; mfn_x(addr) <= mfn_x(end); addr = mfn_add(addr, 1) ) {
It's easier to correlate with the physical memory map if the addresses are fully printed, instead of using frame numbers. Requested-by: Andrew Cooper <andrew.cooper3@citrix.com> Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- xen/drivers/passthrough/x86/iommu.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)