[CFT] x11-servers/xorg-server with initial (GCD) Grand Central Dispatch support

Ivan Klymenko fidaj at ukr.net
Mon Apr 21 17:55:17 UTC 2014


В Mon, 21 Apr 2014 11:30:56 +0200
Niclas Zeising <zeising at freebsd.org> пишет:

> On 04/20/14 19:05, Ivan Klymenko wrote:
> > Hi all.
> > 
> > You are tired of frequent friezes xorg server?
> > Are you bored messages in /var/log/Xorg.0.log:
> > "
> > ...
> > [mi] EQ overflowing.  Additional events will be discarded until
> > existing events are processed. ...
> > "
> > ?
> > 
> > :)
> > 
> > Then you here! :)
> > 
> > Patch attached :)
> > 
> > If you like, we can continue to develop this area.
> 
> First of all, what is GCD.

What is GCD - for example can be read here:
http://en.wikipedia.org/wiki/Grand_Central_Dispatch

> Second of all, how does this affect the normal way things are done?

X server has a single queue of requests, which processed
sequentially.
Some applications for various reasons, either block the queue or
handled too long.
And as a result - have dead GUI (server refuses to accept new requests
for processing, until the guilty process it works), and messages
similar to the following:
" ...
[mi] EQ overflowing.  Additional events will be discarded until
existing events are processed.
...
"
or any other type of "overflowing"...
It regards changes in mi/mieq.c and mi/mipointer.c

In this case using GCD queue handled on separate threads.
GUI - always responsive.

Yes - I suspect that there is a risk of attack on xorg-server where the
threads limit is exceeded in the system, but we can modify and somehow
eliminate in the future ...

> Thirdly, are there any plans to upstream this?

Unfortunately I'm not too familiar with the plans xorg community,
but xorg still single threaded and it s one of its key weaknesses.
I also do not have any information - whether GCD support in other
operating systems (likely they are united to advance wayland - not
xorg-server) which can be used xorg-server... So I think that these
changes will be specific only for FreeBSD.

Frankly, I think i do not have arguments and knowledge of the
English tongue, that would implement support GCD in upstream :)

> Lastly, which versions of xorg-server does this work with?

These changes were in xorg-server-1.12.4 and up...


Sorry for my english.


More information about the freebsd-x11 mailing list