|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] xmalloc: add support for checking the pool integrity
On Monday 08 December 2014 16:04:55 Ian Campbell wrote:
> On Mon, 2014-12-08 at 18:00 +0200, Mihai DonÈu wrote:
> > On Monday 08 December 2014 10:18:01 Jan Beulich wrote:
> > > >>> On 08.12.14 at 03:30, <mdontu@xxxxxxxxxxxxxxx> wrote:
> > > > +#ifndef NDEBUG
> > > > +static bool_t xmem_pool_check_size(const struct bhdr *b, int fl, int
> > > > sl)
> > > > +{
> > > > + while ( b )
> > > > + {
> > > > + int __fl;
> > > > + int __sl;
> > > > +
> > > > + MAPPING_INSERT(b->size, &__fl, &__sl);
> > > > + if ( __fl != fl || __sl != sl )
> > > > + {
> > > > + printk(XENLOG_ERR "xmem_pool: for block %p size = %u, { fl
> > > > = %d, sl = %d } should be { fl = %d, sl = %d }\n",
> > >
> > > Quoting my reply to v1: "Long line. Only the format message alone
> > > is allowed to exceed 80 characters."
> > >
> >
> > Just so I don't send another faulty patch, you would see that printk()
> > being:
> >
> > printk(XENLOG_ERR
> > "xmem_pool: for block %p size = %u, { fl = %d, sl = %d } should be
> > { fl = %d, sl = %d }\n",
> > b, b->size, fl, sl, __fl, __sl);
> >
> > ?
>
> The log message here is going to be substantially more than 80
> characters (the format string by itself already is). Could you find a
> more compact representation of the useful info?
>
Ah! I see. I apologize for being so slow. :-) How about:
printk(XENLOG_ERR "xmem_pool: %s: misplaced block %p:%u ({%d,%d} -> {%d,%d})\n",
pool->name, b, b->size, fl, sl, __fl, __sl);
Looks a bit cryptic, but the TLSF itself is pretty complex and for
brave souls wishing to debug it, the message format will be the last
thing on their minds. :-)
Preview:
[2014-12-04 15:41:23] (XEN) [ 1374.507125] xmem_pool: xmalloc: misplaced block
ffff8304004fb9b0:0 ({3,9} -> {0,0})
[2014-12-04 15:41:23] (XEN) [ 1374.507127] xmem_pool: xmalloc: the TLSF chunk
matrix is corrupted
Thanks,
--
Mihai DONÈU
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |