On Mon, 04 Oct 2010 16:34:05 -0700 Joe Perches <joe@xxxxxxxxxxx> wrote: > On Mon, 2010-10-04 at 16:11 -0700, Andrew Morton wrote: > > On Mon, 04 Oct 2010 15:59:29 -0700 > > Joe Perches <joe@xxxxxxxxxxx> wrote: > > > On Mon, 2010-10-04 at 15:21 -0700, Andrew Morton wrote: > > > > On Mon, 04 Oct 2010 15:10:59 -0700 > > > > Joe Perches <joe@xxxxxxxxxxx> wrote: > > > > > On Mon, 2010-10-04 at 15:02 -0700, Andrew Morton wrote: > > > > > > On Mon, 4 Oct 2010 14:51:01 -0700 > > > > > > Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > > > I'll give up and pronounce that users of printk_ratelimited() need to > > > > > > include ratelimit.h as well. > > > > > What I suggested several months ago was to move the > > > > > macro definitions to ratelimit.h > > > > > http://lkml.org/lkml/2010/2/18/377 > > > > That's a bit nasty because at present ratelimit.h is purely about > > > > ratelimiting and knowns nothing about any of its clients. At present > > > > it has only one client (printk), but it could have more in the future! > > > > > > Look at the structure, it's very specific to > > > message logging functionality. > > > > > > struct ratelimit_state { > > > spinlock_t lock; /* protect the state */ > > > > > > int interval; > > > int burst; > > > int printed; > > > int missed; > > > unsigned long begin; > > > }; > > > > s/printed/hit/there,fixed > > > > This is at present a quite general facility. > > > > > I think it's likely that the current ratelimit > > > will not be used for any other function. > > > > Filling it up with printk-specific stuff will help ensure that. > > Interval too because it is in seconds and likely > should be in timespec or jiffies. It might need changes when adapted to additional uses. These things happen. > For what other facility could you see ratelimit_state > be used for? Gee I dunno. Sending occasional packets of accumulated counters up to userspace via netlink? Who knows, people do all sorts of things. I bet there's code in the kernel right now which could use this. Look at the file! It all does one thing. It encapsulates a single concept. It's simply a bad thing to add single-concept application-specific material into that. Layering, and all that. > Putting the printk specific uses in the .h file > would make sure that the users of ratelimit use > the proper file and reduce the #include dependencies. I know that. It's the first thing I thought of, before deciding that it would be a poor thing to do. -- To unsubscribe from this list: send the line "unsubscribe linux-serial" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html