From: Lutz Vieweg <lkv@isg.de>
To: linux-kernel@vger.kernel.org
Subject: Is there a way to keep the 2.6 kjournald from writing to idle disks? (to allow spin-downs)
Date: Sun, 25 Jan 2004 19:29:30 +0100 [thread overview]
Message-ID: <40140B0A.90707@isg.de> (raw)
Hi everyone,
I run a server that usually doesn't have to do anything on the local filesystems,
it just needs to answer some requests and perform some computations in RAM.
So I use the "hdparm -S 123" parameter setting to keep the (IDE) system disk from
spinning unneccessarily.
Alas, since an upgrade to kernel 2.6 and ext3 filesystem, I cannot find a way to
let the harddisk spin down - I found out that "kjournald" writes a few blocks every
few seconds.
As I wouldn't like to downgrade to ext2: Is there any way to keep the 2.6 kjournald
from writing to idle disks?
I cannot see a good reason why kjournald would write when there are no dirty buffers -
but still it does.
Regards,
Lutz Vieweg
BTW: I used the following script to find the source of the write operations,
just start it in one terminal, do a "sync" in another, then say "hdparm -y /dev/hda"
and you can see that immediately or a few seconds later kjournald will enter the
"D" state and wake up when the disk has spun up.
-------------------------------------------------------------------------------------
#!/usr/bin/tclsh
cd /proc
set stat_arr {
pid
comm
state
ppid
process_group,
session
tty_nr
tty_pgrp
flags
min_flt
cmin_flt
maj_flt
cmaj_flt
utime
stime
cutime
cstime
priority
nice
num_threads
it_real_value
start_time
vsize
rss
RLIMIT_RSS
start_code
end_code
start_stack
esp
eip
pending_signals
blocked_sigs
sigign
sigcatch
wchan
nswap
cnswap
exit_signal
task_cpu
rt_priorit
policy
}
proc scan_stat {_pids _dat} {
upvar $_dat dat
upvar $_pids pids
global stat_arr
set pids [lsort -integer [glob {[0-9]*}]]
foreach pid $pids {
set in [open "$pid/stat" "r"]
set l [gets $in]
close $in
set a [split $l " "]
foreach x $a n $stat_arr {
set dat($pid,$n) $x
}
}
}
#puts [array get dat]
array set dat {}
set pids {}
scan_stat pids dat
while {1} {
after 1000
array set new_dat {}
set new_pids {}
scan_stat new_pids new_dat
foreach pid $new_pids {
if {$pid != [pid]} {
if {![info exists dat($pid,pid)]} {
puts "new process $pid $new_dat($pid,comm)"
} else {
set somechange 0
foreach a $stat_arr {
if {$new_dat($pid,$a) != $dat($pid,$a)} {
puts "$pid $new_dat($pid,comm) attribute '$a' from $dat($pid,$a) to
$new_dat($pid,$a)"
set somechange 1
}
}
if {$somechange} {
puts ""
}
}
}
}
array set dat {}
array set dat [array get new_dat]
set pids $new_pids
}
-------------------------------------------------------------------------------------
next reply other threads:[~2004-01-25 18:23 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-25 18:29 Lutz Vieweg [this message]
2004-01-25 18:33 ` Is there a way to keep the 2.6 kjournald from writing to idle disks? (to allow spin-downs) Andreas Dilger
2004-01-25 18:56 ` Matthias Andree
2004-01-25 19:26 ` Felipe Alfaro Solana
2004-01-26 10:16 ` Lutz Vieweg
2004-01-26 10:43 ` Nick Piggin
2004-01-26 10:43 ` Bart Samwel
2004-01-25 20:52 ` Micha Feigin
2004-01-27 0:21 ` bill davidsen
2004-01-27 15:16 ` Bart Samwel
2004-01-27 18:44 ` Bill Davidsen
2004-01-27 18:54 ` Bart Samwel
2004-01-28 13:30 ` Lutz Vieweg
2004-01-28 23:06 ` Micha Feigin
2004-01-29 12:51 ` Bart Samwel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=40140B0A.90707@isg.de \
--to=lkv@isg.de \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox