[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1205526383.10894.119.camel@localhost.localdomain>
Date: Fri, 14 Mar 2008 13:26:23 -0700
From: Daniel Walker <dwalker@...sta.com>
To: Roel Kluin <12o3l@...cali.nl>
Cc: lkml <linux-kernel@...r.kernel.org>, Hua Zhong <hzhong@...il.com>,
akpm@...ux-foundation.org
Subject: Re: [PATCH v1] change likeliness accounting
On Fri, 2008-03-14 at 00:06 +0100, Roel Kluin wrote:
> #define __check_likely(exp, is_likely) \
> ({ \
> static struct likeliness likeliness = { \
> - .func = __func__, \
> - .file = __FILE__, \
> - .line = __LINE__, \
> - .type = is_likely | LP_UNSEEN, \
> + .label = __LINE__ << LP_LINE_SHIFT | \
> + LP_UNSEEN | is_likely, \
> }; \
> - do_check_likely(&likeliness, !!(exp)); \
> + \
> + if (likeliness.label & LP_UNSEEN) \
> + do_check_likely(&likeliness); \
On second look, your actually break even on size (if not a little worse)
cause you adding some addition code into the macro which effectively
inlines it at all the likely/unlikely locations .. I'm not sure that's
really necessary ..
Also by not including the file name you have situation like the
following,
+unlikely | 208324| 4010128| do_sys_open+0x2a/0xb2()@:34
Where do_sys_open is on line 1076 in file fs/open.c , but the likely
location is actual on like 34 in file include/linux/err.h ..
So I think saving of the EIP does help in finding the actually caller,
but I do think we loose something by removing the file name..
Daniel
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists