RE: [RFC][PATCH] DSPBRIDGE: Video Playback Cache Optimization

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

 



Sripal,

> Currently, display driver maps the video buffers to userspace with
> VM_RESERVED flag and pgprot_writecombine(). We are considering changing
> pgprot_writecombine() to pgprot_noncached() to eliminate the need of all
> cache maintenance overheads for video buffers.
>
-- Is this change in the current LO kernel ?

I agree there is an overhead of flushing the cache by calling get_user_pages function. But there is some additional stuff that this function does and I am afraid that by-passing this function call for a Buffer that has VM_RESERVED flag and the BUFFERABLBE flags might create issues. 

The only reason get_user_pages is not used for the buffer that has VM_IO flag set is get_user_pages fails if this flag is set for the buffer. I am not sure if it is safe to by-pass the get_user_pages function call for buffer that has VM_RESERVED flag set though.

Thank you,
Best regards,
Hari

> -----Original Message-----
> From: Bagadia, Sripal
> Sent: Thursday, June 11, 2009 11:24 AM
> To: Hiroshi DOYU; Ramirez Luna, Omar
> Cc: felipe.contreras@xxxxxxxxx; ameya.palande@xxxxxxxxx; Menon, Nishanth;
> Kanigeri, Hari; linux-omap@xxxxxxxxxxxxxxx
> Subject: RE: [RFC][PATCH] DSPBRIDGE: Video Playback Cache Optimization
> 
> > Would it be possible to tell the case/path, where
> L_PTE_CACHEABLE/L_PTE_BUFFERABLE is set with VM_IO/VM_RESERVED ?
> 
> Currently, display driver maps the video buffers to userspace with
> VM_RESERVED flag and pgprot_writecombine(). We are considering changing
> pgprot_writecombine() to pgprot_noncached() to eliminate the need of all
> cache maintenance overheads for video buffers.
> 
> Regarding Felipe's comment:
> > L_PTE_BUFFERABLE is obsolete, isn't it? L_PTE_MT_BUFFERABLE should be
> used instead.
> 
> I was working on 2.6.27.10, and agree that this needs to be updated for
> newer kernels.
> 
> 
> Regards,
> Sripal
> 
> -----Original Message-----
> From: Hiroshi DOYU [mailto:Hiroshi.DOYU@xxxxxxxxx]
> Sent: Thursday, June 11, 2009 2:16 AM
> To: Ramirez Luna, Omar
> Cc: felipe.contreras@xxxxxxxxx; ameya.palande@xxxxxxxxx; Menon, Nishanth;
> Bagadia, Sripal; Kanigeri, Hari; linux-omap@xxxxxxxxxxxxxxx
> Subject: Re: [RFC][PATCH] DSPBRIDGE: Video Playback Cache Optimization
> 
> From: Hiroshi DOYU <Hiroshi.DOYU@xxxxxxxxx>
> Subject: Re: [RFC][PATCH] DSPBRIDGE: Video Playback Cache Optimization
> Date: Wed, 10 Jun 2009 10:25:39 +0300 (EEST)
> 
> > From: "ext Ramirez Luna, Omar" <omar.ramirez@xxxxxx>
> > Subject: RE: [RFC][PATCH] DSPBRIDGE: Video Playback Cache Optimization
> > Date: Wed, 10 Jun 2009 01:18:29 +0200
> >
> > > Hi,
> > >
> > > [sending as plain text to l-o]
> > >
> > > Could you please comment on this patch.
> > >
> > > From: Sripal Bagadia <bagadia@xxxxxx>
> > > Date: Tue, 9 Jun 2009 16:05:09 -0500
> > > Subject: [PATCH] DSPBRIDGE: Video Playback Cache Optimization
> > >
> > > Avoid get_user_pages cache flush overheads for uncached & reserved
> > > buffers (e.g. display & camera buffers).
> >
> > Would it be possible to tell the case/path, where no
> > L_PTE_CACHEABLE/L_PTE_BUFFERABLE is set with VM_IO/VM_RESERVED ?
> 
> To be correct,
>   "where L_PTE_CACHEABLE/L_PTE_BUFFERABLE is set with VM_IO/VM_RESERVED"
> 
> > >
> > > Signed-off-by: Sripal Bagadia <bagadia@xxxxxx>
> > > ---
> > >  drivers/dsp/bridge/wmd/tiomap3430.c |    4 +++-
> > >  1 files changed, 3 insertions(+), 1 deletions(-)
> > >
> > > diff --git a/drivers/dsp/bridge/wmd/tiomap3430.c
> > > b/drivers/dsp/bridge/wmd/tiomap3430.c
> > > index 7a9603d..a2f32e8 100644
> > > --- a/drivers/dsp/bridge/wmd/tiomap3430.c
> > > +++ b/drivers/dsp/bridge/wmd/tiomap3430.c
> > > @@ -1461,7 +1461,9 @@ static DSP_STATUS WMD_BRD_MemMap(struct
> > > WMD_DEV_CONTEXT *hDevContext,
> > >             goto func_cont;
> > >       }
> > >
> > > -     if (vma->vm_flags & VM_IO) {
> > > +     if ((vma->vm_flags & VM_IO) | ((vma->vm_flags & VM_RESERVED)
> > > +&&
> > > +                 (~pgprot_val(vma->vm_page_prot) & L_PTE_CACHEABLE)
> > > +&&
> > > +                 (~pgprot_val(vma->vm_page_prot) &
> > > +L_PTE_BUFFERABLE))) {
> > >             numUsrPgs =  ulNumBytes / PG_SIZE_4K;
> > >             mpuAddr = ulMpuAddr;
> > >             DBG_Trace(DBG_LEVEL4,
> "WMD_BRD_MemMap:numOfActualTabEntries=%d,"
> > > --
> > > 1.6.2.4
> > >

--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux