[ext3] kjournald writing after each read despite noatime,commit=nnn

From: Dave Johnson
Date: Wed Dec 31 2008 - 16:44:01 EST



Since upgrading from 2.6.23.1 to 2.6.27.8, I'm now seeing kjournald
perform a write 2 seconds after each read to an ext3 fs.

laptop mode is on and filesystem is mounted with noatime and a large
commit time (6 hours).

Did I miss something or is this expected?


Note, there is no other activity reported by block_dump at this time
from any other mounted filesystem.

Some examples:

Dec 31 15:43:14 gw kernel: w(26329): READ block 756266 on hda1
Dec 31 15:43:16 gw kernel: kjournald(760): WRITE block 2152 on hda1

Dec 31 15:45:05 gw kernel: top(26366): READ block 756008 on hda1
Dec 31 15:45:05 gw kernel: top(26366): READ block 756016 on hda1
Dec 31 15:45:05 gw kernel: top(26366): READ block 756026 on hda1
Dec 31 15:45:05 gw kernel: top(26366): READ block 756098 on hda1
Dec 31 15:45:07 gw kernel: kjournald(760): WRITE block 2154 on hda1

Dec 31 15:48:43 gw kernel: cat(26430): READ block 502016 on hda1
Dec 31 15:48:43 gw kernel: cat(26430): READ block 502024 on hda1
Dec 31 15:48:43 gw kernel: cat(26430): READ block 502032 on hda1
Dec 31 15:48:43 gw kernel: cat(26430): READ block 502040 on hda1
Dec 31 15:48:43 gw kernel: cat(26430): READ block 502042 on hda1
Dec 31 15:48:43 gw kernel: cat(26430): READ block 502050 on hda1
Dec 31 15:48:43 gw kernel: cat(26430): READ block 502114 on hda1
Dec 31 15:48:45 gw kernel: kjournald(760): WRITE block 2156 on hda1

Dec 31 15:48:55 gw kernel: bash(26436): READ block 744586 on hda1
Dec 31 15:48:55 gw kernel: bash(26436): READ block 744594 on hda1
Dec 31 15:48:55 gw kernel: bash(26436): READ block 744602 on hda1
Dec 31 15:48:55 gw kernel: bash(26436): READ block 744610 on hda1
Dec 31 15:48:55 gw kernel: bash(26436): READ block 744612 on hda1
Dec 31 15:48:55 gw kernel: reset(26436): READ block 744620 on hda1
Dec 31 15:48:57 gw kernel: kjournald(760): WRITE block 2158 on hda1

$ grep ext3 /proc/mounts
/dev/root / ext3 rw,noatime,errors=remount-ro,commit=21600,data=ordered 0 0

$ for f in /proc/sys/vm/*; do printf "%-50s" $f; cat $f; done
/proc/sys/vm/block_dump 1
/proc/sys/vm/dirty_background_ratio 10
/proc/sys/vm/dirty_expire_centisecs 2160000
/proc/sys/vm/dirty_ratio 60
/proc/sys/vm/dirty_writeback_centisecs 2160000
/proc/sys/vm/drop_caches 0
/proc/sys/vm/laptop_mode 2
/proc/sys/vm/legacy_va_layout 0
/proc/sys/vm/lowmem_reserve_ratio 256 32
/proc/sys/vm/max_map_count 65536
/proc/sys/vm/min_free_kbytes 1440
/proc/sys/vm/nr_pdflush_threads 2
/proc/sys/vm/oom_dump_tasks 0
/proc/sys/vm/oom_kill_allocating_task 0
/proc/sys/vm/overcommit_memory 0
/proc/sys/vm/overcommit_ratio 50
/proc/sys/vm/page-cluster 3
/proc/sys/vm/panic_on_oom 0
/proc/sys/vm/percpu_pagelist_fraction 0
/proc/sys/vm/swappiness 60
/proc/sys/vm/vdso_enabled 2
/proc/sys/vm/vfs_cache_pressure 100
$

--
Dave
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/