forked from Imagelibrary/rtems
The fat_file_datasync() read every cluster of the file into the cache and then synchronized it step-by-step. For unmodified buffers this is a non-operation. For modified buffers this will wake-up the swapout task which performs then a single buffer write operation. This is usually quite inefficient. Firstly we do single buffer writes, secondly we may perform a lot of unnecessary read operations (for huge files this is really bad), and thirdly this leads likely to cache evictions. The synchronization procedure is replaced by a simple rtems_bdbuf_sync_dev(). This has the side-effect that also buffers not related to the file are synchronized, but since the modified list is normally short this should be acceptable.
20 lines
560 B
Makefile
20 lines
560 B
Makefile
rtems_tests_PROGRAMS = fsdosfssync01
|
|
fsdosfssync01_SOURCES = init.c
|
|
|
|
dist_rtems_tests_DATA = fsdosfssync01.scn fsdosfssync01.doc
|
|
|
|
include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
|
|
include $(top_srcdir)/../automake/compile.am
|
|
include $(top_srcdir)/../automake/leaf.am
|
|
|
|
AM_CPPFLAGS += -I$(top_srcdir)/../support/include
|
|
|
|
LINK_OBJS = $(fsdosfssync01_OBJECTS)
|
|
LINK_LIBS = $(fsdosfssync01_LDLIBS)
|
|
|
|
fsdosfssync01$(EXEEXT): $(fsdosfssync01_OBJECTS) $(fsdosfssync01_DEPENDENCIES)
|
|
@rm -f fsdosfssync01$(EXEEXT)
|
|
$(make-exe)
|
|
|
|
include $(top_srcdir)/../automake/local.am
|