[meta-freescale] [meta-fsl-arm][PATCH] classes: use dd's option fsync instead of sync

Nikolay Dimitrov picmaster at mail.bg
Tue May 5 03:22:59 PDT 2015


On 05/05/2015 11:40 AM, Stefan Christ wrote:
> The shell command sync flushes all filesystem buffers in the system.  On
> a bigger multiuser system there are multiple gigs of data sometimes in
> the buffer which then are written out to disk at once.  It's better to
> only flush the specific file with dd's option 'fsync'.
>
> Signed-off-by: Stefan Christ <s.christ at phytec.de>
> ---
> Hi,
>
> I'm curious why the bbclass image_types_fsl.bbclass uses a double 'sync' to
> burn the sdcard image. Is there a specific reason, why a single sync is not
> sufficient to write the data to disk?
>
> Furthermore calling sync will flush all filesystem buffers on the system. It
> maybe a performance bottleneck because this may fill up the disk controller
> capacity quickly.
>
> Kind regards,
> Stefan
> ---
>   classes/image_types_fsl.bbclass | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/classes/image_types_fsl.bbclass b/classes/image_types_fsl.bbclass
> index 75eca59..1ebcb06 100644
> --- a/classes/image_types_fsl.bbclass
> +++ b/classes/image_types_fsl.bbclass
> @@ -178,8 +178,8 @@ generate_imx_sdcard () {
>   	fi
>
>   	# Burn Partition
> -	dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
> -	dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
> +	dd if=${WORKDIR}/boot.img of=${SDCARD} conv=notrunc,fsync seek=1 bs=$(expr ${IMAGE_ROOTFS_ALIGNMENT} \* 1024)
> +	dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc,fsync seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024)
>   }
>
>   #
> @@ -293,7 +293,7 @@ generate_mxs_sdcard () {
>
>   	parted ${SDCARD} print
>
> -	dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024) && sync && sync
> +	dd if=${SDCARD_ROOTFS} of=${SDCARD} conv=notrunc,fsync seek=1 bs=$(expr ${BOOT_SPACE_ALIGNED} \* 1024 + ${IMAGE_ROOTFS_ALIGNMENT} \* 1024)
>   }
>
>   IMAGE_CMD_sdcard () {
>

Tested-by: Nikolay Dimitrov <picmaster at mail.bg>


More information about the meta-freescale mailing list