Re: raid6check extremely slow ?
From: Wolfgang Denk <hidden>
Date: 2020-05-13 06:13:58
Dear Piergiorgio, In message [ref] you wrote:
quoted
This still does not really explain what is so slow here. I mean, even if the locking was an expenive operation code-wise, I would expect to see at least one of the CPU cores near 100% then - but botch CPU _and_ I/O are basically idle, and disks are _all_ and _always_ really close at a trhoughput of 400 kB/s - this looks like some intentional bandwith limit - I just can't see where this can be configured?The code has 2 functions: lock_stripe() and unlock_all_stripes(). These are doing more than just lock / unlock. First, the memory pages of the process will be locked, then some signal will be set to "ignore", then the strip will be locked. The unlock does the opposite in the reverse order (unlock, set the signal back, unlock the memory pages). The difference is that, whatever the reason, the unlock unlocks *all* the stripes, not only the one locked. Not sure why.
It does not matter how omplex the operation is - I wonder why it is
taking so long: it cannot be CPU bound, as then I would expect to
see any significant CPU load, but none of the cores shows more than
5...6% usage, ever. Or it is I/O bound, then I would expect to see
I/O wait, but this is also never more than 0.2...0.3%.
And why are all disks running at pretty exaclty 400 kB/s read rate,
all the time? this looks like some intentinal bandwith limit, but I
cannot find any knob to change it.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
Be careful what you wish for. You never know who will be listening.
- Terry Pratchett, _Soul Music_