moving a launcher icon around generates lots of disk write activity

Bug #733425 reported by Jean-Baptiste Lallement on 2011-03-11
This bug affects 20 people
Affects Status Importance Assigned to Milestone
Fix Released
Andrea Azzarone
unity (Ubuntu)

Bug Description

Binary package hint: unity

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

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

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
 PATH=(custom, user)
SourcePackage: unity
UpgradeStatus: Upgraded to natty on 2011-02-21 (17 days ago)

Related branches

Jean-Baptiste Lallement (jibel) wrote :
Jean-Baptiste Lallement (jibel) wrote :

same output but with better formatting.

description: updated
Alex Launi (alexlauni) on 2011-03-16
Changed in unity:
status: New → Confirmed
importance: Undecided → Medium
Changed in unity (Ubuntu):
importance: Undecided → Medium
status: New → Confirmed
Didier Roche (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

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
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?

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.

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.

Jason Smith (jassmith) wrote :

I know how to fix this!

Jason Smith (jassmith) on 2011-04-19
Changed in unity:
assignee: nobody → Jason Smith (jassmith)
status: Confirmed → Fix Committed
Didier Roche (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
Didier Roche (didrocks) on 2011-04-19
Changed in unity (Ubuntu):
status: Confirmed → Triaged
Andrea Azzarone (azzar1) on 2011-07-10
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) on 2011-07-12
Changed in unity:
status: In Progress → Fix Committed
Omer Akram (om26er) on 2011-07-18
Changed in unity (Ubuntu):
status: In Progress → Fix Committed
Gord Allott (gordallott) on 2011-07-21
Changed in unity:
milestone: none → 4.4.0
Didier Roche (didrocks) on 2011-07-21
Changed in unity:
status: Fix Committed → Fix Released
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  Edit
Everyone can see this information.

Other bug subscribers