nspluginviewer priority on newer linux kernel

koos vriezen koos.vriezen at gmail.com
Thu Aug 16 08:08:44 BST 2007


2007/8/16, James Richard Tyrer <tyrerj at acm.org>:
> Konrad Rzepecki wrote:
> >    Hi
> >
> > I have detected some problem witch cpu cycles starvation with nspluginviewer
> > (KDE 3.5.7) probably related with new CFS scheduler (kernel 2.6.23-rcX). So

[..]
That should definitely  be reported a the lkml and not here.

[..]

> > So I have idea, is possible to run plugins in active tab at nice 0 and others
> > at 15? This should reduce slowdown to minimum and keep cpu usage in resonable
> > level.
> >
> I have noticed a general problem with Konqueror "clogging up" when you
> open several windows and/or several tabs.  It appears to me that *only*
> the tab and/or window that has focus should be running.  Since the tabs
> in a window are all running under one process, we need cooperative
> multitasking here that works well.  The best would be if you had
> preemption so that other tabs or windows could load in the background
> but be instantly preempted when mouse (button press not just movement)
> or keyboard input occurs.

Most CPU spend in khtml is for painting, so not for hidden tabs (at
least it shouldn't)

> However, the nsplugin is a separate process and we need for Konqueror to
> control it.  Since you can command Konqueror to stop animation, this
> control channel appears to already exist.

Exactly, nsplugins has nothing to do with khtml blocking the code path

> The ideal solution would be that having multiple windows and/or tabs
> open wouldn't slow things down at all except when a VM swap was
> necessary.  As things are, the more windows and tabs you open, the
> slower everything in Konqueror gets.
>
> The sad situation is that Linux isn't really designed to run a GUI (no
> *NIX is) and it isn't really that good at doing it.  IIUC, a process can
> only be actually stopped when it asks for input and receives none.  Yes,
> the scheduler starts and stops it as it multi-tasks, but the process is
> still scheduled to run till it is blocked when it asks for input.  So,
> really, the GUI is doing cooperative multitasking.

What nonsense is that? A X11 gui program nicely waits in 'select' or
'poll'. Remember that the connection with the Xserver is a socket.
Just ideal to also monitor other socket connections.

> You could improve this situation with multiple threads.  A small thread
> accepting the input and doing the GUI menus and controlling a large
> thread which actually does the work.  I have no idea how this would (or
> could) be implemented in C++ although I am sure I have a text somewhere
> that explains how to do it in a procedural language.

More non-sense ..

Br
Koos




More information about the kfm-devel mailing list