Re: [PATCH] Use strict priority ranking for pq gen() benchmarking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sonntag, 2. Januar 2022 01:03:44 CET Song Liu wrote:

> We need  more explanation/documentation about 0 vs. 1 vs. 2 priority.

In the commit message? in the code? this is basically a copy&paste of the same 
concept and code from a few lines below the diff, struct raid6_recov_calls
which works the same way and currently has no documentation at all.

want me to add to both then?

> >                         if ((*algo)->valid && !(*algo)->valid())
> 
> If the module load time is really critical, maybe we can run all
> ->valid() calls first and
> find the highest valid priority. Then, we only run the benchmark for
> these algorithms.

thats exactly what the code always did. previously all x86_64 specific 
implementations (be it SSE1/SSE2/AVX2/AVX512) all had the same priority level 
1, over the default priority level 0 for the implemented-in-C int*.c routines. 
with this change, we have one more level p refering AVX* over the rest, so 
that we skip testing SSE1/SSE2 (similary to how the integer implementations 
have always been skipped before). 

> Does this make sense?

the valid call is not probing anything by itself. it just iterates over a 
small array of functions and stops executing benchmarks for those that have 
lower priority ranks. 

so there isn't really a lot of cycles to win by changing the execution order 
here. I would assume it will actually slow things down as we have to store the 
valid() result for the 2nd iteration. 

Greetings,
Dirk






[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux