[FFmpeg-devel] [PATCH 2/2] avutil/slicethread: Add a maximum constraint of 16 slice threads

Hendrik Leppkes h.leppkes at gmail.com
Sat Nov 6 09:42:38 EET 2021


On Sat, Nov 6, 2021 at 6:26 AM <lance.lmwang at gmail.com> wrote:
>
> On Fri, Nov 05, 2021 at 10:00:41PM +0100, Michael Niedermayer wrote:
> > On Fri, Nov 05, 2021 at 08:32:16PM +0800, lance.lmwang at gmail.com wrote:
> > > From: Limin Wang <lance.lmwang at gmail.com>
> > >
> > > Signed-off-by: Limin Wang <lance.lmwang at gmail.com>
> > > ---
> > >  libavutil/slicethread.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/libavutil/slicethread.c b/libavutil/slicethread.c
> > > index 867ce32..7b3a106 100644
> > > --- a/libavutil/slicethread.c
> > > +++ b/libavutil/slicethread.c
> > > @@ -104,7 +104,7 @@ int avpriv_slicethread_create(AVSliceThread **pctx, void *priv,
> > >      if (!nb_threads) {
> > >          int nb_cpus = av_cpu_count();
> > >          if (nb_cpus > 1)
> > > -            nb_threads = nb_cpus + 1;
> > > +            nb_threads = FFMIN(nb_cpus + 1, 16);
> >
> > why should the threads be limited ?
> > why should they be limited at 16 for everyone ?
> > one mighht be a 2 core cpu one might have 200 cores
>
> When using movie filter, it use ff_filter_get_nb_threads(ctx), but we can't force the thread
> number by option, so it's auto thread mode. When testing one a 4 core cpu(about 200 cores),
> the auto thread mode will use all cores for video decode, it'll drop the performance very much.
> If most of user prefer to use all cores, I'll try to limit the number in movie filter only.
>
> For a 4 socket numa system, I don't think it's preferable configure to use all cpu cores
> if it's auto thread(nb_threads = 0).
>
>

The answer to that issue should be to make it configurable, and not
just introduce a hard limit in a utility function in avutil.

- Hendrik


More information about the ffmpeg-devel mailing list