LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH RFC] add time_after_now and other macros which compare with jiffies
@ 2008-03-07  3:09 Dave Young
  2008-03-07  9:02 ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Dave Young @ 2008-03-07  3:09 UTC (permalink / raw)
  To: linux-kernel; +Cc: akpm

Most of time_after like macros users just compare jiffies and
another number, so here add some other _now macros to do it.

Another aproach is changing original time_ macros to use jiffies to compare,
add a generic compare macro like time_compare(a, b)

Signed-off-by: Dave Young <hidave.darkstar@gmail.com>

---
jiffies.h |    8 ++++++++
1 file changed, 8 insertions(+)

diff -upr linux/include/linux/jiffies.h linux.new/include/linux/jiffies.h
--- linux/include/linux/jiffies.h	2008-03-07 10:40:04.000000000 +0800
+++ linux.new/include/linux/jiffies.h	2008-03-07 10:50:12.000000000 +0800
@@ -134,6 +134,14 @@ static inline u64 get_jiffies_64(void)
 	 ((__s64)(a) - (__s64)(b) >= 0))
 #define time_before_eq64(a,b)	time_after_eq64(b,a)
 
+#define time_after_now(a) time_after(jiffies, a)
+
+#define time_before_now(a) time_before(jiffies, a)
+
+#define time_after_eq_now(a) time_after_eq(jiffies, a)
+
+#define time_before_eq_now(a) time_before_eq(jiffies, a)
+
 /*
  * Have the 32 bit jiffies value wrap 5 minutes after boot
  * so jiffies wrap bugs show up earlier.

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

* Re: [PATCH RFC] add time_after_now and other macros which compare with jiffies
  2008-03-07  3:09 [PATCH RFC] add time_after_now and other macros which compare with jiffies Dave Young
@ 2008-03-07  9:02 ` Andrew Morton
  2008-03-07  9:12   ` Dave Young
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2008-03-07  9:02 UTC (permalink / raw)
  To: Dave Young; +Cc: linux-kernel

On Fri, 7 Mar 2008 11:09:01 +0800 Dave Young <hidave.darkstar@gmail.com> wrote:

> Most of time_after like macros users just compare jiffies and
> another number, so here add some other _now macros to do it.
> 
> Another aproach is changing original time_ macros to use jiffies to compare,
> add a generic compare macro like time_compare(a, b)
> 
> Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
> 
> ---
> jiffies.h |    8 ++++++++
> 1 file changed, 8 insertions(+)
> 
> diff -upr linux/include/linux/jiffies.h linux.new/include/linux/jiffies.h
> --- linux/include/linux/jiffies.h	2008-03-07 10:40:04.000000000 +0800
> +++ linux.new/include/linux/jiffies.h	2008-03-07 10:50:12.000000000 +0800
> @@ -134,6 +134,14 @@ static inline u64 get_jiffies_64(void)
>  	 ((__s64)(a) - (__s64)(b) >= 0))
>  #define time_before_eq64(a,b)	time_after_eq64(b,a)
>  
> +#define time_after_now(a) time_after(jiffies, a)
> +
> +#define time_before_now(a) time_before(jiffies, a)
> +
> +#define time_after_eq_now(a) time_after_eq(jiffies, a)
> +
> +#define time_before_eq_now(a) time_before_eq(jiffies, a)
> +
>  /*
>   * Have the 32 bit jiffies value wrap 5 minutes after boot
>   * so jiffies wrap bugs show up earlier.

time_after() and friends drive me nutty.  I *always* have to go and look at
the definition to make sure that people got the args the right way around.

(does that)

> * time_after(a,b) returns true if the time a is after time b.

so, umm, I think you got it backwards.  Your time_after_now(a) will return
true if jiffies (ie: now) is after `a'.  ie: if a is before or equal to
"now".

All this shouldn't be as hard as it is.

One lesson we can learn from this: whatever we do, it needs careful
commenting.  Your change doesn't do that.

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

* Re: [PATCH RFC] add time_after_now and other macros which compare with jiffies
  2008-03-07  9:02 ` Andrew Morton
@ 2008-03-07  9:12   ` Dave Young
  2008-03-07  9:22     ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Dave Young @ 2008-03-07  9:12 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Fri, Mar 7, 2008 at 5:02 PM, Andrew Morton <akpm@linux-foundation.org> wrote:
>
> On Fri, 7 Mar 2008 11:09:01 +0800 Dave Young <hidave.darkstar@gmail.com> wrote:
>
>  > Most of time_after like macros users just compare jiffies and
>  > another number, so here add some other _now macros to do it.
>  >
>  > Another aproach is changing original time_ macros to use jiffies to compare,
>  > add a generic compare macro like time_compare(a, b)
>  >
>  > Signed-off-by: Dave Young <hidave.darkstar@gmail.com>
>  >
>  > ---
>  > jiffies.h |    8 ++++++++
>  > 1 file changed, 8 insertions(+)
>  >
>  > diff -upr linux/include/linux/jiffies.h linux.new/include/linux/jiffies.h
>  > --- linux/include/linux/jiffies.h     2008-03-07 10:40:04.000000000 +0800
>  > +++ linux.new/include/linux/jiffies.h 2008-03-07 10:50:12.000000000 +0800
>  > @@ -134,6 +134,14 @@ static inline u64 get_jiffies_64(void)
>  >        ((__s64)(a) - (__s64)(b) >= 0))
>  >  #define time_before_eq64(a,b)        time_after_eq64(b,a)
>  >
>  > +#define time_after_now(a) time_after(jiffies, a)
>  > +
>  > +#define time_before_now(a) time_before(jiffies, a)
>  > +
>  > +#define time_after_eq_now(a) time_after_eq(jiffies, a)
>  > +
>  > +#define time_before_eq_now(a) time_before_eq(jiffies, a)
>  > +
>  >  /*
>  >   * Have the 32 bit jiffies value wrap 5 minutes after boot
>  >   * so jiffies wrap bugs show up earlier.
>
>  time_after() and friends drive me nutty.  I *always* have to go and look at
>  the definition to make sure that people got the args the right way around.

Andrew, thanks for your patient.

>
>  (does that)
>
>  > * time_after(a,b) returns true if the time a is after time b.
>
>  so, umm, I think you got it backwards.  Your time_after_now(a) will return
>  true if jiffies (ie: now) is after `a'.  ie: if a is before or equal to
>  "now".
>
>  All this shouldn't be as hard as it is.
>
>  One lesson we can learn from this: whatever we do, it needs careful
>  commenting.  Your change doesn't do that.
>

Indeed, I will add proper comment before them.

Thanks again.

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

* Re: [PATCH RFC] add time_after_now and other macros which compare with jiffies
  2008-03-07  9:12   ` Dave Young
@ 2008-03-07  9:22     ` Andrew Morton
  2008-03-07  9:36       ` Dave Young
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2008-03-07  9:22 UTC (permalink / raw)
  To: Dave Young; +Cc: linux-kernel

On Fri, 7 Mar 2008 17:12:29 +0800 "Dave Young" <hidave.darkstar@gmail.com> wrote:

> Indeed, I will add proper comment before them.

Sob.  Of the 809 usages of time_after(), it appears that over 700 are
comparing with jiffies.  So with your (good) change, someone will get
buried in well-meaning convert-to-time_after_now patches.

I wonder who that might be?

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

* Re: [PATCH RFC] add time_after_now and other macros which compare with jiffies
  2008-03-07  9:22     ` Andrew Morton
@ 2008-03-07  9:36       ` Dave Young
  0 siblings, 0 replies; 5+ messages in thread
From: Dave Young @ 2008-03-07  9:36 UTC (permalink / raw)
  To: Andrew Morton; +Cc: linux-kernel

On Fri, Mar 7, 2008 at 5:22 PM, Andrew Morton <akpm@linux-foundation.org> wrote:
> On Fri, 7 Mar 2008 17:12:29 +0800 "Dave Young" <hidave.darkstar@gmail.com> wrote:
>
>  > Indeed, I will add proper comment before them.
>
>  Sob.  Of the 809 usages of time_after(), it appears that over 700 are
>  comparing with jiffies.  So with your (good) change, someone will get
>  buried in well-meaning convert-to-time_after_now patches.


Yes, there will be a lot of patches.  Hope I have that time to do some.

>
>  I wonder who that might be?
>

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

end of thread, other threads:[~2008-03-07  9:36 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-03-07  3:09 [PATCH RFC] add time_after_now and other macros which compare with jiffies Dave Young
2008-03-07  9:02 ` Andrew Morton
2008-03-07  9:12   ` Dave Young
2008-03-07  9:22     ` Andrew Morton
2008-03-07  9:36       ` Dave Young

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).