Messages in this thread | | | Subject | Re: [PATCH 4/5] media/ivtv: Reduce default FIFO priority | From | Hans Verkuil <> | Date | Wed, 7 Aug 2019 11:26:33 +0200 |
| |
On 8/2/19 10:58 AM, Peter Zijlstra wrote: > On Thu, Aug 01, 2019 at 02:38:06PM +0200, Peter Zijlstra wrote: >> If the consumer of the data are RT tasks as well (I hadn't expected that >> from a TV capture device) then I'd propose to use FIFO-50 as default. >> >> The thing is, the moment you're doing actual proper RT, the admin needs >> to configure things anyway, which then very much includes setting the >> priority of interrupt threads and the like. >> >> (that is exacty why pretty much everything defaults to FIFO-50) > > Is the below acceptible?
I think this should be OK. ivtv is real-time sensitive since certain tasks have to happen within (if I remember correctly) 1/60th of a second (the time it takes to capture a single video field). Data is lost if it can't be done within that time.
Using FIFO-50 means that it competes with other irq threads, and since irq threads shouldn't take up much time anyway this should be OK.
Andy, what do you think?
Regards,
Hans
> > --- > Subject: media/ivtv: Reduce default FIFO priority > From: Peter Zijlstra <peterz@infradead.org> > Date: Thu Aug 1 12:56:40 CEST 2019 > > The ivtv driver creates a FIFO-99 thread by default, reduce this to > FIFO-50. > > FIFO-99 is the very highest priority available to SCHED_FIFO and > it not a suitable default; it would indicate the ivtv work is the > most important work on the machine. > > Cc: Andy Walls <awalls@md.metrocast.net> > Cc: Mauro Carvalho Chehab <mchehab@kernel.org> > Cc: linux-media@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > Cc: Thomas Gleixner <tglx@linutronix.de> > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> > --- > drivers/media/pci/ivtv/ivtv-driver.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > --- a/drivers/media/pci/ivtv/ivtv-driver.c > +++ b/drivers/media/pci/ivtv/ivtv-driver.c > @@ -738,7 +738,7 @@ static void ivtv_process_options(struct > */ > static int ivtv_init_struct1(struct ivtv *itv) > { > - struct sched_param param = { .sched_priority = 99 }; > + struct sched_param param = { .sched_priority = MAX_RT_PRIO / 2 }; > > itv->base_addr = pci_resource_start(itv->pdev, 0); > itv->enc_mbox.max_mbox = 2; /* the encoder has 3 mailboxes (0-2) */ >
| |