On 30/08/18 15:18, Jan Beulich wrote:
>>>> On 30.08.18 at 15:06, <andrew.coop...@citrix.com> wrote:
>> This allows all system domids to be printed by name, rather than special
>> casing the idle vcpus alone.
>>
>> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
>> ---
>> CC: George Dunlap <george.dun...@eu.citrix.com>
>> CC: Jan Beulich <jbeul...@suse.com>
>> CC: Konrad Rzeszutek Wilk <konrad.w...@oracle.com>
>> CC: Stefano Stabellini <sstabell...@kernel.org>
>> CC: Tim Deegan <t...@xen.org>
>> CC: Wei Liu <wei.l...@citrix.com>
>> CC: Julien Grall <julien.gr...@arm.com>
>>
>> RFC, because this was proposed before but rejected at the time.  I'm looking
>> to try and turn errors like this:
>>
>>   (XEN) mm.c:1023:d0v2 pg_owner d32754 l1e_owner d0, but real_pg_owner d0
>>   (XEN) mm.c:1099:d0v2 Error getting mfn 810020 (pfn 59db1) from L1 entry 
>> 8000000810020227 for l1e_owner d0, pg_owner d32754
>>
>> into the slightly more helpful:
>>
>>   (XEN) mm.c:1022:d0v2 pg_owner dXEN l1e_owner d0, but real_pg_owner d0
>>   (XEN) mm.c:1098:d0v2 Error getting mfn 810020 (pfn 59db1) from L1 entry 
>> 8000000810020227 for l1e_owner d0, pg_owner dXEN
>>
>> although even in this case, the former printk has an awkward corner case of a
>> possibly NULL domain pointer, which can possibly only reasonably be fixed
>> inside pointer() itself.
> Or in print_domain(), producing "NULL".

Sounds like a good plan.

>
>> --- a/docs/misc/printk-formats.txt
>> +++ b/docs/misc/printk-formats.txt
>> @@ -28,5 +28,8 @@ Symbol/Function pointers:
>>  
>>  Domain and vCPU information:
>>  
>> +       %pd     Domain from a 'struct domain *d' (printed as d<domid>, but 
>> with
>> +               system domains represented by name, e.g. 'dIDLE')
> This looks a little awkward - how about d<IDLE> etc?

A sample looks like:

dIDLEv0 dIO dXEN dCOW
d<IDLE>v0 d<IO> d<XEN> d<COW>

Another alternative would be:

d[IDLE]v0 d[IO] d[XEN] d[COW]

Which I think I prefer to angle brackets.

>
>> --- a/xen/common/vsprintf.c
>> +++ b/xen/common/vsprintf.c
>> @@ -264,6 +264,41 @@ static char *string(char *str, char *end, const char *s,
>>      return str;
>>  }
>>  
>> +/* Print a domain as d<num> or d<str> for system domains. */
>> +static char *print_domain(char *str, char *end, const struct domain *d)
>> +{
>> +    const char *name = NULL;
>> +
>> +    if ( str < end )
>> +        *str++ = 'd';
> I would guess you've copied this idiom from somewhere, and if so
> it would be good to know where we still have got such broken
> construct(s) left:

No - serves me write from trying to code from memory.  Fixed.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to