NetworkManager periodically writes to the disk causing wakeups
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
network-manager (Ubuntu) |
Fix Released
|
Low
|
Mathieu Trudel-Lapierre |
Bug Description
Network Manager is periocially creating dirty pages that are being written back to disk and causing uncessary drive wakeups.
Using SystemTap I was able to observe the following dirty pages being created on the following files
0 795 1 NetworkManager sda1 D Mon Dec 19 13:54:50 2011 timestamps
0 795 1 NetworkManager sda1 D Mon Dec 19 13:54:50 2011 timestamps.096F6V
0 795 1 NetworkManager sda1 D Mon Dec 19 13:54:50 2011
0 795 1 NetworkManager sda1 D Mon Dec 19 13:54:50 2011 timestamps.5RWD6V
..and this occurs regulary every 5 minutes.
Can we either reduce the frequency of these writes or better still only write the updates when really necessary (e.g. when we close NetworkManager or the user interacts with NetworkManager which requires us to really write data back to disk).
Related branches
tags: | added: battery-power-consumption |
Changed in network-manager (Ubuntu): | |
assignee: | nobody → Mathieu Trudel-Lapierre (mathieu-tl) |
importance: | Undecided → Low |
status: | New → Triaged |
Changed in network-manager (Ubuntu): | |
status: | Triaged → In Progress |
strace shows:
open("/ var/lib/ NetworkManager/ timestamps" , O_RDONLY) = 20 S_IFREG| 0644, st_size=1646, ...}) = 0 \n3c32aa58- a2ed-44e7" ..., 4096) = 1646 var/lib/ NetworkManager/ timestamps. EB5H7V" , O_RDWR| O_CREAT| O_EXCL, 0666) = 20 S_IFREG| 0644, st_size=0, ...}) = 0 PROT_WRITE, MAP_PRIVATE| MAP_ANONYMOUS, -1, 0) = 0x7f04b964c000 \n3c32aa58- a2ed-44e7" ..., 1646) = 1646 "EXT2_SUPER_ MAGIC", f_bsize=4096, f_blocks=7874279, f_bfree=5238919, f_bavail=4838919, f_files=2003120, f_ffree=1658729, f_fsid= {-1107732364, 115902444}, f_namelen=255, f_frsize=4096}) = 0 /var/lib/ NetworkManager/ timestamps" , {st_mode= S_IFREG| 0644, st_size=1646, ...}) = 0
fstat(20, {st_mode=
read(20, "\n[timestamps]
read(20, "", 4096) = 0
close(20) = 0
open("/
fcntl(20, F_GETFL) = 0x8002 (flags O_RDWR|O_LARGEFILE)
fstat(20, {st_mode=
mmap(NULL, 4096, PROT_READ|
lseek(20, 0, SEEK_CUR) = 0
write(20, "\n[timestamps]
fstatfs(20, {f_type=
lstat("
fsync(20) = 0
close(20) = 0