On 12/9/24 1:45 PM, Christophe Leroy wrote:
Le 09/12/2024 à 13:01, Przemek Kitszel a écrit :
On 12/6/24 9:58 PM, Easwar Hariharan wrote:
On 11/29/2024 4:57 AM, Przemek Kitszel wrote:
[removed most non-list recipients, it's just too much]
On 11/15/24 10:26 PM, Easwar Hariharan wrote:
<snip>
Regarding code - you could also convert msecs_to_jiffies(const * HZ),
there are 10 that are greppable.
Thanks to Christope, I re-examined those ~10 cases, and that should be
refactored by just dropping msec_to_jiffies() part, not replacing
by sec_to_jiffies().
Those seem to be mistakes. const*HZ is a seconds-denominated timeout,
being passed to msecs_to_jiffies() which will treat it as a
millisecond-denominated timeout resulting in an excessively long
timeout. I suppose that's better than a too-short timeout, and
apparently it's been working fine all along since hardware responds
before the too-long timeout expires. Half of them are in
drivers/scsi/arcmsr/arcmsr_hba.c and the pattern has apparently been
there since 2010.
my point was that, the default value of HZ is 1000, and most of the code
that is just `$value*HZ` was meant as "$value seconds, in ms unit".
I can't follow you here. The default value of HZ is 250 as far as I can
see.
as default I understand "the value that is effective for those that
don't tweak", not necessarily "the fallback that will be used when not
set by any other means". On my RedHat and Fedora boxes it's 1000.
Regardless, HZ is the number of jiffies per second, nothing else.
That is true. But the name is wrong.
Same for HZ/const, HZ/2 being 500ms.
HZ is awful in that it is not 1s but 1/s, but it was easy to abuse the
value in simple context.
Why is that awful ?
so, 1Hertz = 1/1s == once per second,
something happening twice per second, with freq of 2Hz, repeats
each HZ/2 jiffies
https://en.wikipedia.org/wiki/Hertz
the #define name should be really JHZ -> JIFFIES_PER_SECOND
HZ is a nice macro that gives you the number of ticks per second, so
that you are able to easily calculate the number of ticks for a given
duration, regardless of the configured number of ticks per second.
Again, technically true, but default being eq to number of msec in sec,
causes it to bite.