All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains
@ 2018-09-28 17:22 Andrew Cooper
  2018-10-01  9:08 ` Jan Beulich
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Cooper @ 2018-09-28 17:22 UTC (permalink / raw)
  To: Xen-devel
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Andrew Cooper, Tim Deegan, Julien Grall,
	Jan Beulich

This allows all system domids to be printed by name, rather than special
casing the idle vcpus alone.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
CC: George Dunlap <George.Dunlap@eu.citrix.com>
CC: Jan Beulich <JBeulich@suse.com>
CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
CC: Stefano Stabellini <sstabellini@kernel.org>
CC: Tim Deegan <tim@xen.org>
CC: Wei Liu <wei.liu2@citrix.com>
CC: Julien Grall <julien.grall@arm.com>

v2:
 * Render system names in square brackets.
 * Drop DOMID_{SELF,INVALID} names because there are no struct domain *'s for
   them.
 * Cope with NULL pointers.
 * Fix a length-counting bug.
---
 docs/misc/printk-formats.txt | 14 ++++++++--
 xen/common/vsprintf.c        | 61 +++++++++++++++++++++++++++++++++-----------
 2 files changed, 58 insertions(+), 17 deletions(-)

diff --git a/docs/misc/printk-formats.txt b/docs/misc/printk-formats.txt
index 525108f..b5570bc 100644
--- a/docs/misc/printk-formats.txt
+++ b/docs/misc/printk-formats.txt
@@ -28,5 +28,15 @@ Symbol/Function pointers:
 
 Domain and vCPU information:
 
-       %pv     Domain and vCPU ID from a 'struct vcpu *' (printed as
-               "d<domid>v<vcpuid>")
+       %pd     Domain from a 'struct domain *'
+
+               Regular domains are printed with their ID in decimal.  System
+               domains are printed with their name.
+                 e.g.  d0
+                       d[IDLE]
+
+       %pv     Domain and vCPU ID from a 'struct vcpu *'
+
+               The domain part as above, with the vcpu_id printed in decimal.
+                 e.g.  d0v1
+                       d[IDLE]v0
diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c
index f92fb67..df347d3 100644
--- a/xen/common/vsprintf.c
+++ b/xen/common/vsprintf.c
@@ -264,6 +264,47 @@ static char *string(char *str, char *end, const char *s,
     return str;
 }
 
+/* Print a domain id, using names for system domains.  (e.g. d0 or d[IDLE]) */
+static char *print_domain(char *str, char *end, const struct domain *d)
+{
+    const char *name = NULL;
+
+    /* Some debugging may have an optionally-NULL pointer. */
+    if ( unlikely(!d) )
+        return string(str, end, "NULL", -1, -1, 0);
+
+    if ( str < end )
+        *str = 'd';
+
+    switch ( d->domain_id )
+    {
+    case DOMID_IO:   name = "[IO]";   break;
+    case DOMID_XEN:  name = "[XEN]";  break;
+    case DOMID_COW:  name = "[COW]";  break;
+    case DOMID_IDLE: name = "[IDLE]"; break;
+    }
+
+    if ( name )
+        return string(str + 1, end, name, -1, -1, 0);
+    else
+        return number(str + 1, end, d->domain_id, 10, -1, -1, 0);
+}
+
+/* Print a vcpu id.  (e.g. d0v1 or d[IDLE]v0) */
+static char *print_vcpu(char *str, char *end, const struct vcpu *v)
+{
+    /* Some debugging may have an optionally-NULL pointer. */
+    if ( unlikely(!v) )
+        return string(str, end, "NULL", -1, -1, 0);
+
+    str = print_domain(str, end, v->domain);
+
+    if ( str < end )
+        *str = 'v';
+
+    return number(str + 1, end, v->vcpu_id, 10, -1, -1, 0);
+}
+
 static char *pointer(char *str, char *end, const char **fmt_ptr,
                      const void *arg, int field_width, int precision,
                      int flags)
@@ -273,6 +314,10 @@ static char *pointer(char *str, char *end, const char **fmt_ptr,
     /* Custom %p suffixes. See XEN_ROOT/docs/misc/printk-formats.txt */
     switch ( fmt[1] )
     {
+    case 'd': /* Domain ID from a struct domain *. */
+        ++*fmt_ptr;
+        return print_domain(str, end, arg);
+
     case 'h': /* Raw buffer as hex string. */
     {
         const uint8_t *hex_buffer = arg;
@@ -370,22 +415,8 @@ static char *pointer(char *str, char *end, const char **fmt_ptr,
     }
 
     case 'v': /* d<domain-id>v<vcpu-id> from a struct vcpu */
-    {
-        const struct vcpu *v = arg;
-
         ++*fmt_ptr;
-        if ( unlikely(v->domain->domain_id == DOMID_IDLE) )
-            str = string(str, end, "IDLE", -1, -1, 0);
-        else
-        {
-            if ( str < end )
-                *str = 'd';
-            str = number(str + 1, end, v->domain->domain_id, 10, -1, -1, 0);
-        }
-        if ( str < end )
-            *str = 'v';
-        return number(str + 1, end, v->vcpu_id, 10, -1, -1, 0);
-    }
+        return print_vcpu(str, end, arg);
     }
 
     if ( field_width == -1 )
-- 
2.1.4


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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains
  2018-09-28 17:22 [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains Andrew Cooper
@ 2018-10-01  9:08 ` Jan Beulich
  2018-10-01 10:02   ` Andrew Cooper
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Beulich @ 2018-10-01  9:08 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Tim Deegan, Xen-devel, Julien Grall

>>> On 28.09.18 at 19:22, <andrew.cooper3@citrix.com> wrote:
> --- a/xen/common/vsprintf.c
> +++ b/xen/common/vsprintf.c
> @@ -264,6 +264,47 @@ static char *string(char *str, char *end, const char *s,
>      return str;
>  }
>  
> +/* Print a domain id, using names for system domains.  (e.g. d0 or d[IDLE]) */
> +static char *print_domain(char *str, char *end, const struct domain *d)
> +{
> +    const char *name = NULL;
> +
> +    /* Some debugging may have an optionally-NULL pointer. */
> +    if ( unlikely(!d) )
> +        return string(str, end, "NULL", -1, -1, 0);
> +
> +    if ( str < end )
> +        *str = 'd';
> +
> +    switch ( d->domain_id )
> +    {
> +    case DOMID_IO:   name = "[IO]";   break;
> +    case DOMID_XEN:  name = "[XEN]";  break;
> +    case DOMID_COW:  name = "[COW]";  break;
> +    case DOMID_IDLE: name = "[IDLE]"; break;

    default: ASSERT_UNREACHABLE();

?

> +    }

Perhaps the insertion of 'd' might better live here, to make a
better connection between the lack of a ++ there and the + 1
below?

> +    if ( name )
> +        return string(str + 1, end, name, -1, -1, 0);
> +    else
> +        return number(str + 1, end, d->domain_id, 10, -1, -1, 0);
> +}

Anyway, even without the adjustments
Reviewed-by: Jan Beulich <jbeulich@suse.com>

Jan



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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains
  2018-10-01  9:08 ` Jan Beulich
@ 2018-10-01 10:02   ` Andrew Cooper
  2018-10-01 10:14     ` Jan Beulich
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Cooper @ 2018-10-01 10:02 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Tim Deegan, Xen-devel, Julien Grall

On 01/10/18 10:08, Jan Beulich wrote:
>>>> On 28.09.18 at 19:22, <andrew.cooper3@citrix.com> wrote:
>> --- a/xen/common/vsprintf.c
>> +++ b/xen/common/vsprintf.c
>> @@ -264,6 +264,47 @@ static char *string(char *str, char *end, const char *s,
>>      return str;
>>  }
>>  
>> +/* Print a domain id, using names for system domains.  (e.g. d0 or d[IDLE]) */
>> +static char *print_domain(char *str, char *end, const struct domain *d)
>> +{
>> +    const char *name = NULL;
>> +
>> +    /* Some debugging may have an optionally-NULL pointer. */
>> +    if ( unlikely(!d) )
>> +        return string(str, end, "NULL", -1, -1, 0);
>> +
>> +    if ( str < end )
>> +        *str = 'd';
>> +
>> +    switch ( d->domain_id )
>> +    {
>> +    case DOMID_IO:   name = "[IO]";   break;
>> +    case DOMID_XEN:  name = "[XEN]";  break;
>> +    case DOMID_COW:  name = "[COW]";  break;
>> +    case DOMID_IDLE: name = "[IDLE]"; break;
>     default: ASSERT_UNREACHABLE();
>
> ?

No - specifically not in this case.

This path is used when printing crash information, and falling back to a
number is better behaviour than falling into an infinite loop,
overflowing the primary stack, then taking a #DF (which escalates to
triple fault on AMD), without printing anything useful.

In general, we cannot have BUG/WARN/ASSERTs in the middle vsprintf() path.

>
>> +    }
> Perhaps the insertion of 'd' might better live here, to make a
> better connection between the lack of a ++ there and the + 1
> below?

Will move.

>
>> +    if ( name )
>> +        return string(str + 1, end, name, -1, -1, 0);
>> +    else
>> +        return number(str + 1, end, d->domain_id, 10, -1, -1, 0);
>> +}
> Anyway, even without the adjustments
> Reviewed-by: Jan Beulich <jbeulich@suse.com>

Thanks,

~Andrew

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains
  2018-10-01 10:02   ` Andrew Cooper
@ 2018-10-01 10:14     ` Jan Beulich
  2018-10-01 10:23       ` Andrew Cooper
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Beulich @ 2018-10-01 10:14 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Tim Deegan, Xen-devel, Julien Grall

>>> On 01.10.18 at 12:02, <andrew.cooper3@citrix.com> wrote:
> On 01/10/18 10:08, Jan Beulich wrote:
>>>>> On 28.09.18 at 19:22, <andrew.cooper3@citrix.com> wrote:
>>> +static char *print_domain(char *str, char *end, const struct domain *d)
>>> +{
>>> +    const char *name = NULL;
>>> +
>>> +    /* Some debugging may have an optionally-NULL pointer. */
>>> +    if ( unlikely(!d) )
>>> +        return string(str, end, "NULL", -1, -1, 0);
>>> +
>>> +    if ( str < end )
>>> +        *str = 'd';
>>> +
>>> +    switch ( d->domain_id )
>>> +    {
>>> +    case DOMID_IO:   name = "[IO]";   break;
>>> +    case DOMID_XEN:  name = "[XEN]";  break;
>>> +    case DOMID_COW:  name = "[COW]";  break;
>>> +    case DOMID_IDLE: name = "[IDLE]"; break;
>>     default: ASSERT_UNREACHABLE();
>>
>> ?
> 
> No - specifically not in this case.
> 
> This path is used when printing crash information, and falling back to a
> number is better behaviour than falling into an infinite loop,
> overflowing the primary stack, then taking a #DF (which escalates to
> triple fault on AMD), without printing anything useful.

Ah, good point. Perhaps worth a brief comment instead of a "default:"
then?

Jan



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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains
  2018-10-01 10:14     ` Jan Beulich
@ 2018-10-01 10:23       ` Andrew Cooper
  2018-10-01 10:25         ` Jan Beulich
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Cooper @ 2018-10-01 10:23 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Tim Deegan, Xen-devel, Julien Grall

On 01/10/18 11:14, Jan Beulich wrote:
>>>> On 01.10.18 at 12:02, <andrew.cooper3@citrix.com> wrote:
>> On 01/10/18 10:08, Jan Beulich wrote:
>>>>>> On 28.09.18 at 19:22, <andrew.cooper3@citrix.com> wrote:
>>>> +static char *print_domain(char *str, char *end, const struct domain *d)
>>>> +{
>>>> +    const char *name = NULL;
>>>> +
>>>> +    /* Some debugging may have an optionally-NULL pointer. */
>>>> +    if ( unlikely(!d) )
>>>> +        return string(str, end, "NULL", -1, -1, 0);
>>>> +
>>>> +    if ( str < end )
>>>> +        *str = 'd';
>>>> +
>>>> +    switch ( d->domain_id )
>>>> +    {
>>>> +    case DOMID_IO:   name = "[IO]";   break;
>>>> +    case DOMID_XEN:  name = "[XEN]";  break;
>>>> +    case DOMID_COW:  name = "[COW]";  break;
>>>> +    case DOMID_IDLE: name = "[IDLE]"; break;
>>>     default: ASSERT_UNREACHABLE();
>>>
>>> ?
>> No - specifically not in this case.
>>
>> This path is used when printing crash information, and falling back to a
>> number is better behaviour than falling into an infinite loop,
>> overflowing the primary stack, then taking a #DF (which escalates to
>> triple fault on AMD), without printing anything useful.
> Ah, good point. Perhaps worth a brief comment instead of a "default:"
> then?

This incremental diff?

diff --git a/xen/common/vsprintf.c b/xen/common/vsprintf.c
index cd2d7d9..b0ff00c 100644
--- a/xen/common/vsprintf.c
+++ b/xen/common/vsprintf.c
@@ -279,6 +279,11 @@ static char *print_domain(char *str, char *end,
const struct domain *d)
     case DOMID_XEN:  name = "[XEN]";  break;
     case DOMID_COW:  name = "[COW]";  break;
     case DOMID_IDLE: name = "[IDLE]"; break;
+        /*
+         * In principle, we could ASSERT_UNREACHABLE() in the default case.
+         * However, this path is used to print out crash information, which
+         * risks recursing infinitely and not printing any useful
information.
+         */
     }
 
     if ( str < end )

~Andrew

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

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains
  2018-10-01 10:23       ` Andrew Cooper
@ 2018-10-01 10:25         ` Jan Beulich
  2018-10-01 13:55           ` Andrew Cooper
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Beulich @ 2018-10-01 10:25 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Tim Deegan, Xen-devel, Julien Grall

>>> On 01.10.18 at 12:23, <andrew.cooper3@citrix.com> wrote:
> On 01/10/18 11:14, Jan Beulich wrote:
>>>>> On 01.10.18 at 12:02, <andrew.cooper3@citrix.com> wrote:
>>> On 01/10/18 10:08, Jan Beulich wrote:
>>>>>>> On 28.09.18 at 19:22, <andrew.cooper3@citrix.com> wrote:
>>>>> +static char *print_domain(char *str, char *end, const struct domain *d)
>>>>> +{
>>>>> +    const char *name = NULL;
>>>>> +
>>>>> +    /* Some debugging may have an optionally-NULL pointer. */
>>>>> +    if ( unlikely(!d) )
>>>>> +        return string(str, end, "NULL", -1, -1, 0);
>>>>> +
>>>>> +    if ( str < end )
>>>>> +        *str = 'd';
>>>>> +
>>>>> +    switch ( d->domain_id )
>>>>> +    {
>>>>> +    case DOMID_IO:   name = "[IO]";   break;
>>>>> +    case DOMID_XEN:  name = "[XEN]";  break;
>>>>> +    case DOMID_COW:  name = "[COW]";  break;
>>>>> +    case DOMID_IDLE: name = "[IDLE]"; break;
>>>>     default: ASSERT_UNREACHABLE();
>>>>
>>>> ?
>>> No - specifically not in this case.
>>>
>>> This path is used when printing crash information, and falling back to a
>>> number is better behaviour than falling into an infinite loop,
>>> overflowing the primary stack, then taking a #DF (which escalates to
>>> triple fault on AMD), without printing anything useful.
>> Ah, good point. Perhaps worth a brief comment instead of a "default:"
>> then?
> 
> This incremental diff?

LGTM, thanks.

Jan



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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains
  2018-10-01 10:25         ` Jan Beulich
@ 2018-10-01 13:55           ` Andrew Cooper
  2018-10-01 14:04             ` Jan Beulich
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Cooper @ 2018-10-01 13:55 UTC (permalink / raw)
  To: Jan Beulich
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Tim Deegan, Xen-devel, Julien Grall

On 01/10/18 11:25, Jan Beulich wrote:
>>>> On 01.10.18 at 12:23, <andrew.cooper3@citrix.com> wrote:
>> On 01/10/18 11:14, Jan Beulich wrote:
>>>>>> On 01.10.18 at 12:02, <andrew.cooper3@citrix.com> wrote:
>>>> On 01/10/18 10:08, Jan Beulich wrote:
>>>>>>>> On 28.09.18 at 19:22, <andrew.cooper3@citrix.com> wrote:
>>>>>> +static char *print_domain(char *str, char *end, const struct domain *d)
>>>>>> +{
>>>>>> +    const char *name = NULL;
>>>>>> +
>>>>>> +    /* Some debugging may have an optionally-NULL pointer. */
>>>>>> +    if ( unlikely(!d) )
>>>>>> +        return string(str, end, "NULL", -1, -1, 0);
>>>>>> +
>>>>>> +    if ( str < end )
>>>>>> +        *str = 'd';
>>>>>> +
>>>>>> +    switch ( d->domain_id )
>>>>>> +    {
>>>>>> +    case DOMID_IO:   name = "[IO]";   break;
>>>>>> +    case DOMID_XEN:  name = "[XEN]";  break;
>>>>>> +    case DOMID_COW:  name = "[COW]";  break;
>>>>>> +    case DOMID_IDLE: name = "[IDLE]"; break;
>>>>>     default: ASSERT_UNREACHABLE();
>>>>>
>>>>> ?
>>>> No - specifically not in this case.
>>>>
>>>> This path is used when printing crash information, and falling back to a
>>>> number is better behaviour than falling into an infinite loop,
>>>> overflowing the primary stack, then taking a #DF (which escalates to
>>>> triple fault on AMD), without printing anything useful.
>>> Ah, good point. Perhaps worth a brief comment instead of a "default:"
>>> then?
>> This incremental diff?
> LGTM, thanks.

I've committed this now, but its just occurred to me that we couldn't
possibly have had a default case, because that is the common case for
most domains.

~Andrew

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

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains
  2018-10-01 13:55           ` Andrew Cooper
@ 2018-10-01 14:04             ` Jan Beulich
  0 siblings, 0 replies; 8+ messages in thread
From: Jan Beulich @ 2018-10-01 14:04 UTC (permalink / raw)
  To: Andrew Cooper
  Cc: Stefano Stabellini, Wei Liu, Konrad Rzeszutek Wilk,
	George Dunlap, Tim Deegan, Xen-devel, Julien Grall

>>> On 01.10.18 at 15:55, <andrew.cooper3@citrix.com> wrote:
> On 01/10/18 11:25, Jan Beulich wrote:
>>>>> On 01.10.18 at 12:23, <andrew.cooper3@citrix.com> wrote:
>>> On 01/10/18 11:14, Jan Beulich wrote:
>>>>>>> On 01.10.18 at 12:02, <andrew.cooper3@citrix.com> wrote:
>>>>> On 01/10/18 10:08, Jan Beulich wrote:
>>>>>>>>> On 28.09.18 at 19:22, <andrew.cooper3@citrix.com> wrote:
>>>>>>> +static char *print_domain(char *str, char *end, const struct domain *d)
>>>>>>> +{
>>>>>>> +    const char *name = NULL;
>>>>>>> +
>>>>>>> +    /* Some debugging may have an optionally-NULL pointer. */
>>>>>>> +    if ( unlikely(!d) )
>>>>>>> +        return string(str, end, "NULL", -1, -1, 0);
>>>>>>> +
>>>>>>> +    if ( str < end )
>>>>>>> +        *str = 'd';
>>>>>>> +
>>>>>>> +    switch ( d->domain_id )
>>>>>>> +    {
>>>>>>> +    case DOMID_IO:   name = "[IO]";   break;
>>>>>>> +    case DOMID_XEN:  name = "[XEN]";  break;
>>>>>>> +    case DOMID_COW:  name = "[COW]";  break;
>>>>>>> +    case DOMID_IDLE: name = "[IDLE]"; break;
>>>>>>     default: ASSERT_UNREACHABLE();
>>>>>>
>>>>>> ?
>>>>> No - specifically not in this case.
>>>>>
>>>>> This path is used when printing crash information, and falling back to a
>>>>> number is better behaviour than falling into an infinite loop,
>>>>> overflowing the primary stack, then taking a #DF (which escalates to
>>>>> triple fault on AMD), without printing anything useful.
>>>> Ah, good point. Perhaps worth a brief comment instead of a "default:"
>>>> then?
>>> This incremental diff?
>> LGTM, thanks.
> 
> I've committed this now, but its just occurred to me that we couldn't
> possibly have had a default case, because that is the common case for
> most domains.

Oh, indeed, but still, while the "unreachable" part of my suggestion
was indeed wrong, but it still could have been
ASSERT(d->domain_id < DOMID_FIRST_RESERVED). But I agree this
wouldn't have been overly helpful.

Jan



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

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2018-10-01 14:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-09-28 17:22 [PATCH v2] xen/vsprintf: Introduce %pd formatter for domains Andrew Cooper
2018-10-01  9:08 ` Jan Beulich
2018-10-01 10:02   ` Andrew Cooper
2018-10-01 10:14     ` Jan Beulich
2018-10-01 10:23       ` Andrew Cooper
2018-10-01 10:25         ` Jan Beulich
2018-10-01 13:55           ` Andrew Cooper
2018-10-01 14:04             ` Jan Beulich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.