Re: Query regarding disk cache in RTEMS
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
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
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