From owner-freebsd-x11@FreeBSD.ORG Mon Apr 21 17:55:17 2014 Return-Path: Delivered-To: x11@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 59C32285; Mon, 21 Apr 2014 17:55:17 +0000 (UTC) Received: from frv154.fwdcdn.com (frv154.fwdcdn.com [212.42.77.154]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 132E21314; Mon, 21 Apr 2014 17:55:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ukr.net; s=fsm; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Subject:Cc:To:From:Date; bh=y6ZT5ZxLS/KpUZ3DYzOukrinebxyc6b7c7G+5eRXhP4=; b=qPw0py4T9g0QWd3g1Td5eWA+LgVjxEpo19hTD4+GkJOtBSawEI/x3wYHznNNT56/+0Zc1jgidGVlxVfyh3WHztiFEOUBVUqwDCTaSC874gTHb4Ui+ii53lrqVN+/N2exsRNUhs8+58rWFrZLdMJR5JHtkiclMvrR8AxVb1CQiog=; Received: from [134.249.90.229] (helo=nonamehost.local) by frv154.fwdcdn.com with esmtpsa ID 1WcDJt-0000pt-84 ; Mon, 21 Apr 2014 15:27:33 +0300 Date: Mon, 21 Apr 2014 15:27:32 +0300 From: Ivan Klymenko To: Niclas Zeising Subject: Re: [CFT] x11-servers/xorg-server with initial (GCD) Grand Central Dispatch support Message-ID: <20140421152732.716b897b@nonamehost.local> In-Reply-To: <5354E550.7050803@freebsd.org> References: <20140420200534.72226779@nonamehost.local> <5354E550.7050803@freebsd.org> X-Mailer: Claws Mail 3.9.3 (GTK+ 2.24.22; amd64-portbld-freebsd10.0) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Authentication-Result: IP=134.249.90.229; mail.from=fidaj@ukr.net; dkim=pass; header.d=ukr.net Cc: ports@FreeBSD.org, x11@FreeBSD.org X-BeenThere: freebsd-x11@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: X11 on FreeBSD -- maintaining and support List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Apr 2014 17:55:17 -0000 =D0=92 Mon, 21 Apr 2014 11:30:56 +0200 Niclas Zeising =D0=BF=D0=B8=D1=88=D0=B5=D1=82: > On 04/20/14 19:05, Ivan Klymenko wrote: > > Hi all. > >=20 > > 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. ... > > " > > ? > >=20 > > :) > >=20 > > Then you here! :) > >=20 > > Patch attached :) > >=20 > > If you like, we can continue to develop this area. >=20 > 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.