(In reply to comment #38)
> Adriaan: drivers shouldnt be manually doing comparison on jiffies values.
> there are helps in linux/jiffies.h for doing the comparison (time_before() /
> time_after()) and those should handle wrap arounds. if you do see a driver
> that is doing the wrong thing, i'd open another bug specifically about that
> (or
> post a patch yourself :D).
Well, it was not in one of the driver's code but in block/as-iosched.c:as_fifo_expired()
The observed behavior indicates that something is wrong with the shceduling of
disk I/O, and that most time is spent by all theads competing for one or more (spin-)locks; you might call it a convoy or a thundering hurd syndrome.
But it might be unrelated.
AvK
(In reply to comment #38)
> Adriaan: drivers shouldnt be manually doing comparison on jiffies values.
> there are helps in linux/jiffies.h for doing the comparison (time_before() /
> time_after()) and those should handle wrap arounds. if you do see a driver
> that is doing the wrong thing, i'd open another bug specifically about that
> (or
> post a patch yourself :D).
Well, it was not in one of the driver's code but in block/as- iosched. c:as_fifo_ expired( )
The observed behavior indicates that something is wrong with the shceduling of
disk I/O, and that most time is spent by all theads competing for one or more (spin-)locks; you might call it a convoy or a thundering hurd syndrome.
But it might be unrelated.
AvK