Quoting Matt Helsley ([email protected]):
> On Fri, Oct 30, 2009 at 06:00:26PM -0500, [email protected] wrote:
> > From: Serge E. Hallyn <[email protected]>
> > 
> > Signed-off-by: Serge E. Hallyn <[email protected]>
> > ---
> 
> <snip>
> 
> > - * This generates a unified format of checkpoint error messages, to
> > - * ease (after the failure) inspection by userspace tools. It converts
> > - * the (printf) message @fmt into a new format: "[PREFMT]: fmt".
> > + * The special flags are surrounded by %() to help them visually stand
> > + * out.  For instance, %(O) means an objref.  The following special
> > + * flags are recognized:
> > + * E: error
> > + * O: objref
> > + * P: pointer
> > + * T: task
> > + * S: string
> > + * V: variable
> >   *
> 
> Something for the future: It might be good to have "F: File" as well. It
> may sometimes be useful to print out a file name instead of just the struct
> file pointer. It'd be useful for epoll, file checkpoint ops in general, and
> file-backed VMAs.

Sure...  As callers want it, we can add it - I also expect %A for
ctx->active_pid (which won't take an argument) to be added.

...

> > +   for (; *fmt && len < CKPT_MSG_BUFSZ; fmt++) {
> > +           if (*fmt != '%' || fmt[1] != '(' || fmt[2] == '\0' ||
> > +                                                   fmt[3] != ')') {
> > +                   s[len++] = *fmt;
> > +                   continue;
> > +           }
> > +           if (!first)
> > +                   s[len++] = ' ';
> > +           else
> > +                   first = 0;
> > +           switch (fmt[2]) {
> > +           case 'E':
> > +                   len += sprintf(s+len, "[%s]", "err %d");
> 
> Why not use snprintf ?

Yup, thanks for keeping me honest - just switched my new patchset
to do that.

...

> > +           default:
> > +                   printk(KERN_ERR "c/r: bad format specifier %c\n",
> > +                                   fmt[2]);
> > +                   BUG();
> 
> Perhaps BUG() isn't such a good idea since this will be used in

I disagree - this fmt is passed in by the kernel, so if we get a flag
we don't understand, then it is a bug in our c/r code.

-serge
_______________________________________________
Containers mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
[email protected]
https://openvz.org/mailman/listinfo/devel

Reply via email to