|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/2] x86/mtrr: fix build with gcc9
>>> On 18.03.19 at 11:30, <andrew.cooper3@xxxxxxxxxx> wrote:
> On 18/03/2019 10:11, Jan Beulich wrote:
>>>>> On 15.03.19 at 17:21, <andrew.cooper3@xxxxxxxxxx> wrote:
>>> @@ -203,14 +202,13 @@ static void __init print_mtrr_state(const char *level)
>>> }
>>> printk("%sMTRR variable ranges %sabled:\n", level,
>>> mtrr_state.enabled ? "en" : "dis");
>>> - width = (paddr_bits - PAGE_SHIFT + 3) / 4;
>>>
>>> for (i = 0; i < num_var_ranges; ++i) {
>>> if (mtrr_state.var_ranges[i].mask & MTRR_PHYSMASK_VALID)
>>> - printk("%s %u base %0*"PRIx64"000 mask
>>> %0*"PRIx64"000 %s\n",
>>> + printk("%s %u base %013"PRIx64"000 mask
>>> %013"PRIx64"000 %s\n",
>>> level, i,
>>> - width, mtrr_state.var_ranges[i].base >> 12,
>>> - width, mtrr_state.var_ranges[i].mask >> 12,
>>> + mtrr_state.var_ranges[i].base >> 12,
>>> + mtrr_state.var_ranges[i].mask >> 12,
>> I don't prefer this, and it was done the way it is for a very simple
>> reason: By omitting unnecessary leading zeros we convey an
>> extra bit of information - this way it is easier to spot if the mask
>> values in particular indeed go up all the way to the paddr limit. I
>> have at least one system where the BIOS screws up, and there
>> end up being leading zeros.
>
> How is that expected to work in the way you describe for the
> overwhelming majority of systems with don't have MAXPHYSADDR aligned on
> a nibble?
>
> 39, 42 and 46 are the widths used in practice by Intel processors, none
> of which are divisible by 4.
I didn't say it's ideal, but as said - on one of my systems it makes
very obvious a flaw in the system's BIOS. I think that's good
enough as a reason.
> If you want to print this information out in a useful way, print 1ul <<
> paddr_bits so it is obvious in the logs.
Which will require everyone trying to consume this to count zeros
and f-s.
> Your logic of omitting
> leading zeros is of no use to the Xen community when you are the only
> person who knows what it means.
No-one is prevented from knowing this. In fact, for the purpose of
reducing pressure on both serial line bandwidth and log buffer size,
I think we'd be better off logging _all_ physical addresses and MFNs
with just as many leading zeros as are meaningful on the platform.
Granted in several cases even just going from %016lx to %013lx
would already be a reduction, but we clearly can do better.
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 |