Re: Query regarding disk cache in RTEMS

2018-05-18 Thread Udit agarwal
On Fri, May 18, 2018 at 11:17 PM, Gedare Bloom  wrote:

> Udit,
>
> On Thu, May 17, 2018 at 9:13 AM, Udit agarwal 
> wrote:
> > Hi all,
> > I was looking at the internal working of a benchmark and the way it
> disables
> > cache for direct IO operations, needed to benchmark storage device
> drivers.
> > I have a small query regarding how cache is organized in RTEMS:
> >
> > Usually data transfer model is something like:
> > Application address space --> Page cache --> Write-back cache --> storage
> > device
> > is this model valid for RTEMS too?
> >
> > Moreover, in FreeBSD/Linux, O_DIRECT flag is used with the file
> descriptor
> > to bypass write-back cache. do we have something like that in RTEMS?
> AFAIK,
> > In RTEMS, libblock is used to transfer data to the storage device. So,
> > configuring it like:
> >>
> >>  #define CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS 0
> >
> > should disable the cache? or is there any other setting that should be
> > tweaked?
> >
>
> I think you are on the right path. We have bdbuf cache as the way to
> buffer block I/O operations. I don't know if that option is enough to
> turn off caching. You should check the user manual, and inspect the
> code.
>
> Sure, We also found that the page cache(that i mentioned up there) was
maintained in newlib itself and can be configured by setvbuf() command.

> > Regards,
> > Udit
> >
> >
> > ___
> > devel mailing list
> > devel@rtems.org
> > http://lists.rtems.org/mailman/listinfo/devel
>
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel

Re: Query regarding disk cache in RTEMS

2018-05-18 Thread Gedare Bloom
Udit,

On Thu, May 17, 2018 at 9:13 AM, Udit agarwal  wrote:
> Hi all,
> I was looking at the internal working of a benchmark and the way it disables
> cache for direct IO operations, needed to benchmark storage device drivers.
> I have a small query regarding how cache is organized in RTEMS:
>
> Usually data transfer model is something like:
> Application address space --> Page cache --> Write-back cache --> storage
> device
> is this model valid for RTEMS too?
>
> Moreover, in FreeBSD/Linux, O_DIRECT flag is used with the file descriptor
> to bypass write-back cache. do we have something like that in RTEMS? AFAIK,
> In RTEMS, libblock is used to transfer data to the storage device. So,
> configuring it like:
>>
>>  #define CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS 0
>
> should disable the cache? or is there any other setting that should be
> tweaked?
>

I think you are on the right path. We have bdbuf cache as the way to
buffer block I/O operations. I don't know if that option is enough to
turn off caching. You should check the user manual, and inspect the
code.

> Regards,
> Udit
>
>
> ___
> devel mailing list
> devel@rtems.org
> http://lists.rtems.org/mailman/listinfo/devel
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel


Query regarding disk cache in RTEMS

2018-05-17 Thread Udit agarwal
Hi all,
I was looking at the internal working of a benchmark and the way it
disables cache for direct IO operations, needed to benchmark storage device
drivers. I have a small query regarding how cache is organized in RTEMS:

Usually data transfer model is something like:
Application address space --> Page cache --> Write-back cache --> storage
device
is this model valid for RTEMS too?

Moreover, in FreeBSD/Linux, O_DIRECT flag is used with the file descriptor
to bypass write-back cache. do we have something like that in RTEMS? AFAIK,
In RTEMS, libblock is used to transfer data to the storage device. So,
configuring it like:

>  #define CONFIGURE_BDBUF_MAX_READ_AHEAD_BLOCKS 0
>
should disable the cache? or is there any other setting that should be
tweaked?

Regards,
Udit
___
devel mailing list
devel@rtems.org
http://lists.rtems.org/mailman/listinfo/devel