moving a launcher icon around generates lots of disk write activity

Bug #733425 reported by Jean-Baptiste Lallement
106
This bug affects 20 people
Affects Status Importance Assigned to Milestone
Unity
Fix Released
Medium
Andrea Azzarone
unity (Ubuntu)
Fix Released
Medium
Unassigned

Bug Description

Binary package hint: unity

When a launcher icon is dragged out, it generates lots of disk write activity

TEST CASE:
0. Preliminary step:
   0.1 - Install the package sysstat
   0.2 - From a terminal run the command: iostat -d1
1. Roll over the launcher
2. Select an icon and hold the left mouse button to start a drag
3. move the icon around

Result:
See the amount of data written to disk increases significantly.

Here is the output on my system:

Linux 2.6.38-6-generic (black) 03/11/2011 _i686_ (2 CPU)
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 18.19 41.74 108.91 1500760 3915448
sda 6.00 16.00 32.00 16 32
sda 0.00 0.00 0.00 0 0
sda 0.00 0.00 0.00 0 0
sda 13.00 0.00 52.00 0 52
sda 0.00 0.00 0.00 0 0
sda 9.00 0.00 36.00 0 36
sda 624.00 0.00 2808.00 0 2808 <- start dragging
sda 851.00 0.00 3812.00 0 3812
sda 906.00 0.00 4048.00 0 4048
sda 833.00 0.00 3744.00 0 3744
sda 933.00 0.00 4196.00 0 4196
sda 167.00 4.00 752.00 4 752 <- stop dragging
sda 0.00 0.00 0.00 0 0
sda 0.00 0.00 0.00 0 0

ProblemType: Bug
DistroRelease: Ubuntu 11.04
Package: unity 3.6.4-0ubuntu1
ProcVersionSignature: Ubuntu 2.6.38-6.34-generic 2.6.38-rc7
Uname: Linux 2.6.38-6-generic i686
Architecture: i386
CompizPlugins: [core,bailer,detection,composite,opengl,decor,mousepoll,vpswitch,regex,animation,snap,expo,move,compiztoolbox,place,grid,imgpng,gnomecompat,wall,ezoom,workarounds,staticswitcher,resize,fade,unitymtgrabhandles,scale,session,unityshell]
Date: Fri Mar 11 19:12:15 2011
EcryptfsInUse: Yes
ProcEnviron:
 LANGUAGE=en_US:en
 PATH=(custom, user)
 LANG=en_US.utf8
 SHELL=/bin/bash
SourcePackage: unity
UpgradeStatus: Upgraded to natty on 2011-02-21 (17 days ago)

Related branches

Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :
Revision history for this message
Jean-Baptiste Lallement (jibel) wrote :

same output but with better formatting.

description: updated
Alex Launi (alexlauni)
Changed in unity:
status: New → Confirmed
importance: Undecided → Medium
Changed in unity (Ubuntu):
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

from what I remember, we change the gsetting keys when we move the launcher icon, I would think it has no perf impact… maybe it's something else as well though

Revision history for this message
Loïc Molinari (loic.molinari) wrote :

That's it Didier!

A mouse-motion event received through the X11 connection while dragging calls
  Launcher::UpdateDragWindowPosition ()
which calls
  LauncherModel::ReorderBefore () or LauncherModel::ReorderSmart ()
which calls
  LauncherModel::Sort ()
which emits
  LauncherModel::order_changed
which calls
  LauncherController::SortAndSave ()
which calls
  FavoriteStoreGSettings::SetFavorites ()
which calls
  g_settings_set_strv ()

That function from libgio calls the write vfunc from GSettingsBackendClass. Commenting that call removes the I/O peak and makes the rendering faster.

I'm not sure why the favorites must be written while dragging, but I guess it could be done at the end of the drag?

Revision history for this message
Christian Niemeyer (christian-niemeyer) wrote :

It is really extreme and expensive hdd usage. I just noticed this. (Though I'm happy with unity altogether.)

Steps: Go to the left, Unity bar appears, pick an Icon and drag and drop it around in the bar.

If I do this around 30 seconds and the drop the icon. hdd usage and workload does even continue! for around 5 seconds. It's even worse when dragging an icon from top to bottom and to top again and so on. Just switching on position e.g. to the next lower icon is ok. But hdd usage, depending on where you want your launcher icon, can get extreme.

Having top opened in a Terminal compiz CPU usage goes up to 40%.

I tried to analyze this with htop but I don't get it.

I hope my oberservations might give some advice, to solve it.

Revision history for this message
vmc (vmclark) wrote :

If you open the system monitor while moving the icon around your desktop you will see Compiz activity jump significantly along with massive disk activity.

Revision history for this message
Jason Smith (jassmith) wrote :

I know how to fix this!

Jason Smith (jassmith)
Changed in unity:
assignee: nobody → Jason Smith (jassmith)
status: Confirmed → Fix Committed
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

@Jason: I was thinking about the same thing, but even with your unity version, the disk activity is a little lower, but not as much as planned. Let's fix that for O then (it's not like if it was an operation everyone is doing all the time everyday).

Changed in unity:
status: Fix Committed → Triaged
Changed in unity (Ubuntu):
status: Confirmed → Triaged
Andrea Azzarone (azzar1)
Changed in unity:
assignee: Jason Smith (jassmith) → Andrea Azzarone (andyrock)
status: Triaged → In Progress
Changed in unity (Ubuntu):
status: Triaged → In Progress
Mirco Müller (macslow)
Changed in unity:
status: In Progress → Fix Committed
Omer Akram (om26er)
Changed in unity (Ubuntu):
status: In Progress → Fix Committed
Gord Allott (gordallott)
Changed in unity:
milestone: none → 4.4.0
Changed in unity:
status: Fix Committed → Fix Released
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package unity - 4.4.0-0ubuntu1

---------------
unity (4.4.0-0ubuntu1) oneiric; urgency=low

  * New upstream release.
    - moving a launcher icon around generates lots of disk write activity
      (LP: #733425)
    - compiz crashed with SIGSEGV in sigc::signal_base::impl() (LP: #762801)
    - Drag and drop a USB key into the trash should eject the USB key
      (LP: #764905)
    - unity window decorator needs to support different metacity frame types
      (LP: #795048)
    - Don't switch title to menu when hovering window buttons (LP: #691808)
    - spacing between indicators should be 5 pixels (LP: #734010)
    - Dash: highlight box is mis-aligned with smaller icon (LP: #761465)
    - Merge libindicator scroll signals (LP: #804618)
    - unity: Dead code in Launcher.cpp: "mask | (Button1Mask & Button2Mask &
      Button3Mask)" (LP: #805327)
    - TrashLauncherIcon::UpdateTrashIconCb is leaking (LP: #806984)
    - Title fade effect no longer works (LP: #809907)
    - Accessibility support not initialized on Oneiric (LP: #810033)
  * debian/control:
    - build-dep on libnotify-dev
    - bump libnux-1.0-dev dep for ABI break
  * debian/rules:
    - bump libunity-core-4.0-4 shlib for ABI break
 -- Didier Roche <email address hidden> Thu, 21 Jul 2011 18:41:15 +0200

Changed in unity (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.