lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Tue, 16 Dec 2008 17:04:52 +0100 (MET)
From:	"Peter T. Breuer" <ptb@....it.uc3m.es>
To:	hannes@...xchg.org
CC:	"linux kernel" <linux-kernel@...r.kernel.org>
Subject: Re: time_is_after_jiffies misnomer

"Also sprach ptb:"
> "Also sprach Johannes Weiner:"
> > 'foo jiffies'?
> 
> ?? What does that mean? Yes, "the current time is later than foo
> jiffies", is what I wrote.  I don't understand why you query it. What I
> wrote is a perfectly normal english sentence.

Light dawns. Perhaps you think "jiffies" is a meaningless word that
happens to be the name of a variable that measures elapsed time.

It's not. "jiffy" is a "short moment of time" in english, and "jiffies"
is its plural. Like "augenblick" in german, but a bit longer
("augenblick" probably translates as "moment", or "instant", literally,
"eyeblink").  "In a jiffy" is an english phrase meaning "soon!".  It's
close to an "instant" but of vaguer extent.

So the variable called "jiffies" measures the number of elapsed
jiffies.

Like a variable called "hours" that measures the number of elapsed
hours.

"foo jiffies" is no stranger than "foo hours" or "foo minutes" or "foo
seconds". That's why I was puzzled that you queried it!

> It's poor english. Yes, to an english speaker
> 
>    time_is_after_jiffies(foo)
> 
> looks like
> 
>    the current time is later than foo jiffies
> 
> Look at the two:
> 
>    the current time is later than foo jiffies
>                  |   |  |           `/.
>                time_is_after_jiffies(foo)


See it now? 

Imagine that you had a macro called


   time_is_after_hours

then 

  time_is_after_hours(12)


would mean to an english speaker

  the current time is later than midday

I.e.

  the current time is later than 12h
               |    |   |        .|'
              time_is_after_hours(12)

Unfortunately the kernel's "time_is_after_hours(12)" macro means
mathematically what we would express in english as "the current time is
BEFORE 12h".  Ouch.

The kernel's 

     time_is_after_jiffies(500)

macro mathematically means

    the current value of the jiffies variable is LESS THAN 500

!! That's the other way round from the way that an english speaker
would read the macro name as meaning! So the semantics and the name
contradict each other.

Clear now?

Peter
--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ