All of lore.kernel.org
 help / color / mirror / Atom feed
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
}
-------------------------------------------------------------------------------------



             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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.