Daca folosesti sistemul de fisiere exFAT pentru Linux , exista o optimizare semnificativa pentru stergerea fisierelor cu setul de optiuni de montare „dirsync”. exFAT pentru Linux 5.12 ar trebui sa poata sterge fisierele mari mult mai repede atunci când ruleaza cu optiunea de montare „dirsync”. Îmbunatatirea stergerii fisierelor va creste odata cu cresterea dimensiunii fisierului.

Patch-ul este pus in coada in arborele de dezvoltare al driverului exFAT. Reducerea timpului de stergere a fisierelor se realizeaza cu mai putin de 40 de linii de cod , (bitmap-ul de alocare a cluster-ului este actualizat doar atunci când se modifica indexul tampon).

O veste bunapentru cei care utilizeaza exFAT pe Linux cu „dirsync” activ, aveti timpii de stergere mult mai rapizi , odata cu kernel-ul Linux 5.12.

There are stressful update of cluster allocation bitmap when using dirsync mount option which is doing sync buffer on every cluster bit clearing. This could result in performance degradation when deleting big size file.
Fix to update only when the bitmap buffer index is changed would make less disk access, improving performance especially for truncate operation.

Testing with Samsung 256GB sdcard, mounted with dirsync option (mount -t exfat /dev/block/mmcblk0p1 /temp/mount -o dirsync)

Remove 4GB file, blktrace result.
[Before] : 39 secs.
Total (blktrace):
 Reads Queued:      0,        0KiB	 Writes Queued:      32775,    16387KiB
 Read Dispatches:   0,        0KiB	 Write Dispatches:   32775,    16387KiB
 Reads Requeued:    0		         Writes Requeued:        0
 Reads Completed:   0,        0KiB	 Writes Completed:   32775,    16387KiB
 Read Merges:       0,        0KiB	 Write Merges:           0,        0KiB
 IO unplugs:        2        	     Timer unplugs:          0

[After] : 1 sec.
Total (blktrace):
 Reads Queued:      0,        0KiB	 Writes Queued:         13,        6KiB
 Read Dispatches:   0,        0KiB	 Write Dispatches:      13,        6KiB
 Reads Requeued:    0		         Writes Requeued:        0
 Reads Completed:   0,        0KiB	 Writes Completed:      13,        6KiB
 Read Merges:       0,        0KiB	 Write Merges:           0,        0KiB
 IO unplugs:        1        	     Timer unplugs:          0

Signed-off-by: Hyeongseok Kim <hyeongseok@gmail.com>
Acked-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>

Source: kernel.org

  • What is your reaction?
  • powered by Verysign
  • like gnulinux.ro
    Like
  • unmoved gnulinux.ro
    Unmoved
  • amused gnulinux.ro
    Amused
  • excited gnulinux.ro
    Excited
  • angry gnulinux.ro
    Angry
  • sad gnulinux.ro
    Sad
TENDINTA  |  How to empty virtual memory (SWAP) in Linux
FlorinM                   gnulinux.ro
FlorinM
Utilizator Linux - Solus OS, pasionat de calatorii.
2260 articole
In context



  • Comment
  • powered by Verysign

Nici un comentariu inca. Fii primul!