[FFmpeg-devel] [PATCH] fftools/cmdutils.c: Add cmd line option to override detection of cpu count

Thilo Borgmann thilo.borgmann at mail.de
Sun Jul 4 15:31:00 EEST 2021


Hi,

>>> add an option to override auto-detection of cpu count. Defaults to auto-detection, of course.
>>>
>>> -Thilo
>>>
>>
>>>
>>>  doc/fftools-common-opts.texi |  7 +++++++
>>>  fftools/cmdutils.c           | 27 +++++++++++++++++++++++++++
>>>  fftools/cmdutils.h           |  7 +++++++
>>>  libavutil/cpu.c              | 14 ++++++++++++++
>>>  libavutil/cpu.h              |  6 ++++++
>>
>> The changes to libavutil and cmdutils should be in separate patches; and
>> of course the commit message should mention that you are changing
>> libavutil -- I would have nearly missed this patch (given that I don't
>> pay much attention to fftools in general).
>>
>>>
>>> diff --git a/libavutil/cpu.c b/libavutil/cpu.c
>>> index 52f6b9a3bf..ccd5b5adac 100644
>>> --- a/libavutil/cpu.c
>>> +++ b/libavutil/cpu.c
>>
>> 52f6b9a3bf is the state of cpu.c after
>> e387fcd01cb84d9493f3b96158addd2a85f086c6. This is completely outdated.
> 
> Yes, messed up branches for the patch, thx!
> 
> 
>>>
>>> @@ -306,14 +307,27 @@ int av_cpu_count(void)
>>>      nb_cpus = sysinfo.dwNumberOfProcessors;
>>>  #endif
>>>  
>>> +    int count = atomic_load_explicit(&cpu_count, memory_order_relaxed);
>>> +
>>>      if (!printed) {
>>>          av_log(NULL, AV_LOG_DEBUG, "detected %d logical cores\n", nb_cpus);
>>> +        if (count > 0) {
>>> +            av_log(NULL, AV_LOG_DEBUG, "overriding to %d logical cores\n", count);
>>> +        }
>>>          printed = 1;
>>>      }
>>>  
>>> +    if (count > 0) {
>>> +        nb_cpus = count;
>>> +    }
>>> +
>>>      return nb_cpus;
>>>  }
>>>  
>> In particular, this hunk doesn't apply to git master at all any more
>> (did I already mention that cpu.c only has 245 lines atm, not >300?).
>> And the declaration of count would lead to a statement-after-declaration
>> warning.
> 
> Done locally to apply to today's HEAD. I think I'll wait with sending both patches once we decided on atomic loads in "[PATCH] Stop using _explicit atomic operations where not necessary.".

Discussion on atomic loads appear to have stalled mid-June... If there are no hard feeling, I'll push this version soon as the explicit (or not) loads can then be changed later.

-Thilo


More information about the ffmpeg-devel mailing list