You are not logged in.

#1 2017-11-28 20:55:53

Maniaxx
Member
Registered: 2014-05-14
Posts: 761

[SOLVED]dconf high I/O bug

Hallo,
when i compare two txt files with 'meld' and scroll up&down i can clearly hear the hdd heads working in sync with my scrolling as if data wouldn't be buffered/cached. It doesn't sound all too healthy. I haven't noticed this on other programs. Maybe its meld specific.

Are there any test methods to make sure the read buffer is working properly?

My mount options are:
rw,relatime,data=writeback,commit=30

$ free -mh
              total        used        free      shared  buff/cache   available
Mem:            15G        1.1G         12G         48M        1.9G         14G
Swap:            0B          0B          0B

Last edited by Maniaxx (2017-11-30 22:10:05)


sys2064

Offline

#2 2017-11-29 01:59:56

GenkiSky
Member
From: This account is henceforth dis
Registered: 2017-04-04
Posts: 82

Re: [SOLVED]dconf high I/O bug

I think /proc/meminfo should help add some info here. See: http://elixir.free-electrons.com/linux/ … c.txt#L830 (esp. Cached, Dirty, Writeback -- see the explanations of each field before the example shown). As for whether it might be an application-specific problem, it looks like one can use O_DIRECT to tell open(2) to not cache your I/O, but it would be very strange for something like meld to do that....

Last edited by GenkiSky (2017-11-29 02:00:29)

Offline

#3 2017-11-29 20:15:08

Maniaxx
Member
Registered: 2014-05-14
Posts: 761

Re: [SOLVED]dconf high I/O bug

'Cached' value looks ok to me.

I've noticed it's not the compared files themselves that make the noise. Meld also behaves like this when comparing files in /tmp. When looking at an strace log its full of 'poll' and 'recvmsg' and the log is quite large for just some seconds activity (7.5MB). I'm wondering what its doing there. Its accessing ~/.config/dconf/user from time to time.

Is maybe someone here with traditional/mechanical HDD who can confirm/refute this behavior? Does it make noise on your system as well when moving the scroll sliders?

$ cat /proc/meminfo |sort
Active:           869036 kB
Active(anon):     600096 kB
Active(file):     268940 kB
AnonHugePages:    161792 kB
AnonPages:        626312 kB
Bounce:                0 kB
Buffers:          180272 kB
Cached:           694436 kB
CommitLimit:     8200168 kB
Committed_AS:    2509068 kB
DirectMap2M:    16637952 kB
DirectMap4k:      102556 kB
Dirty:                64 kB
HardwareCorrupted:     0 kB
HugePages_Free:        0
Hugepagesize:       2048 kB
HugePages_Rsvd:        0
HugePages_Surp:        0
HugePages_Total:       0
Inactive:         648148 kB
Inactive(anon):    44236 kB
Inactive(file):   603912 kB
KernelStack:        5696 kB
Mapped:           272280 kB
MemAvailable:   15321684 kB
MemFree:        14671944 kB
MemTotal:       16400340 kB
Mlocked:              32 kB
NFS_Unstable:          0 kB
PageTables:        22260 kB
Shmem:             52280 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
Slab:              83896 kB
SReclaimable:      57128 kB
SUnreclaim:        26768 kB
SwapCached:            0 kB
SwapFree:              0 kB
SwapTotal:             0 kB
Unevictable:          32 kB
VmallocChunk:          0 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
Writeback:             0 kB
WritebackTmp:          0 kB
1389  poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8, events=POLLIN}], 3, 4) = 1 ([{fd=3, revents=POLLIN}])
1389  recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="A\0'\202\261 \200\3\3\0\202\0\5\0\200\3\0D\7\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8, events=POLLIN}], 3, 4) = 1 ([{fd=3, revents=POLLIN}])
1389  recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="A\0000\202\263 \200\3\3\0\202\0\5\0\200\3\0@\7\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8, events=POLLIN}], 3, 4) = 1 ([{fd=3, revents=POLLIN}])
1389  recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="A\0009\202\265 \200\3\3\0\202\0\5\0\200\3\0\214\5\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  poll([{fd=3, events=POLLIN}, {fd=4, events=POLLIN}, {fd=8, events=POLLIN}], 3, 4) = 1 ([{fd=3, revents=POLLIN}])
1389  recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="A\0B\202\267 \200\3\3\0\202\0\5\0\200\3\0L\7\0\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)
1389  recvmsg(3, {msg_namelen=0}, 0)    = -1 EAGAIN (Resource temporarily unavailable)

Last edited by Maniaxx (2017-11-29 20:28:12)


sys2064

Offline

#4 2017-11-29 20:36:30

loqs
Member
Registered: 2014-03-06
Posts: 19,113

Re: [SOLVED]dconf high I/O bug

Maniaxx wrote:

Does it make noise on your system as well when moving the scroll sliders?

No compared the arch directory of linux 4.14 vs linux linux 4 15-rc1 both stored on spinning media after initial access no disk usage for file or directory compare.
Second run no noticeable disk access everything appears to be pulled from cache.

Offline

#5 2017-11-29 21:07:49

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 78,867

Re: [SOLVED]dconf high I/O bug

Are you dead sure it's the HDD and not some capacitor or induction from CPU/GPU into your sound device?
Does the hdd provide some sound management (so you can set it to "silent" for a comparism)?
Does iotop show exceptional load at all? (idk how fast meld scrolls, but some kB/s should rather not cause "noise")

Offline

#6 2017-11-30 21:28:57

Maniaxx
Member
Registered: 2014-05-14
Posts: 761

Re: [SOLVED]dconf high I/O bug

Yes, i'm sure its the HDD. See here (2.3MB mkv). Its not the files that make the noise. Its socket accesses i guess. Every UI element i cross with the mouse pointer seems to hammer for whatever reason on the hdd. I will test it on Cinnamon next. Maybe its an xfce bug again.

On iotop i can see dconf-service producing 850K/s when scrolling. Will investigate that.

Last edited by Maniaxx (2017-11-30 21:47:40)


sys2064

Offline

#7 2017-11-30 21:57:05

seth
Member
From: Won't reply 2 private help req
Registered: 2012-09-03
Posts: 78,867

Re: [SOLVED]dconf high I/O bug

at-spi?
echo $DBUS_SESSION_BUS_ADDRESS - is it on /run/user/$UID and is /run mounted as tempfs?
anything in dbus-monitor?

Offline

#8 2017-11-30 22:01:25

Maniaxx
Member
Registered: 2014-05-14
Posts: 761

Re: [SOLVED]dconf high I/O bug

Looks like its happening on Ubuntu as well. I can see the accesses in sync when doing 'dconf watch /' and when i put the culprit folder into tmpfs its quiet finally.

mount -t tmpfs -o size=10M none ~/.config/dconf

Thanks for the help. Not finally sure though how i will workaround that. Maybe a startup/shutdown script that creates the tmpfs and copies the file into it or something.

Edit: On the other hand. Its just this two entries that appear in 'dconf watch /' even if i don't resize the window. Maybe i can fix that somehow (changing theme, etc).

/org/gnome/meld/window-state/height
/org/gnome/meld/window-state/width

Last edited by Maniaxx (2018-07-29 20:01:58)


sys2064

Offline

Board footer

Powered by FluxBB