From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey.Brodkin@synopsys.com (Alexey Brodkin) Date: Wed, 13 Dec 2017 21:53:06 +0000 Subject: UDL's fbdev doesn't work for user-space apps In-Reply-To: <370a9121-788d-a0eb-e4cb-c3b09f7bd6ce@tronnes.org> References: <1512387175.4977.24.camel@synopsys.com> <370a9121-788d-a0eb-e4cb-c3b09f7bd6ce@tronnes.org> List-ID: Message-ID: <1513201984.9373.28.camel@synopsys.com> To: linux-snps-arc@lists.infradead.org Hi Noralf, On Tue, 2017-12-12@22:58 +0100, Noralf Tr?nnes wrote: > Den 04.12.2017 12.32, skrev Alexey Brodkin: > > Hello, > > > > I'm trying to use DisplayLink USB2.0-to-HDMI adapter as the one and only > > video output and I want to get Xserver working on top of that. > > > > I'm not very familiar with all the parts of Linux GPU/video stack > > (especially its user-space counterpart) so my assumptions might be wrong > > in that case please correct me. > > > > My first [probably incorrect] assumption is Xserver requires fbdev (/dev/fbX) > > and it cannot use DRI video card natively. Is that correct? > > > > So to get /ded/fb0 with UDL I just enabled CONFIG_DRM_UDL & CONFIG_DRM_FBDEV_EMULATION. > > That gave me boot console on HDMI screen and I was full of expectations. > > But when I tried to use /dev/fb0 from whatever user-space app nothing got > > displayed on the screen... as well as no error messages appeared. > > > > After eyeballing at UDL code (especially in comparison with QXC which uses deferredio > > as well) I noticed that in UDL fb_deferred_io_init() is called from udl_fb_open(), > > i.e. .fb_open call-back (in other words every time user-space app opens /dev/fb0) > > while in QXC this is done only once and much earlier in qxlfb_create(), which is > > called with .fb_probe call-back. So moved fb_deferred_io_init() in UDL driver from > > udl_fb_open() to udlfb_create() which is also called from .fb_probe. > > > > With that change I finally got video output via fbdev from user-space app, > > but only on the first run. The next attempt to run inevitably ends with > > kernel crash showing the following stack-trace (having half of the new screen > > rendered on display): > > ------------------------>8------------------------- > > Stack Trace: > > udl_handle_damage+0x48/0x210 > > udl_crtc_mode_set+0x6ee/0x754 > > drm_crtc_helper_set_mode+0x25e/0x438 > > drm_crtc_helper_set_config+0x6d6/0x814 > > __drm_mode_set_config_internal+0x48/0xc8 > > drm_mode_setcrtc+0x320/0x478 > > drm_ioctl+0x22c/0x3e4 > > SyS_ioctl+0xa4/0x8cc > > EV_Trap+0x108/0x10c > > random: crng init done > > ------------------------>8------------------------- > > > > I'm wondering if UDL driver (its DRM flavor) was ever tested for > > fbdev in user-space? If so and it really works for somebody > > maybe I'm doing something terribly wrong - in that case any comments > > are very welcome. > > udl uses shmem buffers which doesn't work with fbdev deferred io. > They fight over page->lru and page->mapping. See this commit: > drm/udl: disable fb_defio by default > 677d23b70bf949f75746c80cbae92c233c6b5e2a Well that's interesting indeed, but IMHO that's not the most important problem with UDL as of now since DRI-aware apps and Xserver stuff work fine with /dev/dri/cardX. What bothers me is some problem [probably] with export of its DMA buffers, so Vivante GPU does render stuff but it is not displayed on the screen... in absense of error messages I'd conclude that the GPU just renders to some virtuall addresses which are not mapped to UDL's "frame-buffers". And it's not about improper handling of caches - I tried with data caches disabled but still to no avail :( -Alexey From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexey Brodkin Subject: Re: UDL's fbdev doesn't work for user-space apps Date: Wed, 13 Dec 2017 21:53:06 +0000 Message-ID: <1513201984.9373.28.camel@synopsys.com> References: <1512387175.4977.24.camel@synopsys.com> <370a9121-788d-a0eb-e4cb-c3b09f7bd6ce@tronnes.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <370a9121-788d-a0eb-e4cb-c3b09f7bd6ce@tronnes.org> Content-Language: en-US Content-ID: Sender: linux-kernel-owner@vger.kernel.org To: "noralf@tronnes.org" Cc: "linux-kernel@vger.kernel.org" , "daniel.vetter@ffwll.ch" , "hshi@chromium.org" , "linux-snps-arc@lists.infradead.org" , "tutankhamen@chromium.org" , "airlied@redhat.com" , "dri-devel@lists.freedesktop.org" , "airlied@gmail.com" List-Id: dri-devel@lists.freedesktop.org SGkgTm9yYWxmLA0KDQpPbiBUdWUsIDIwMTctMTItMTIgYXQgMjI6NTggKzAxMDAsIE5vcmFsZiBU csO4bm5lcyB3cm90ZToNCj4gRGVuIDA0LjEyLjIwMTcgMTIuMzIsIHNrcmV2IEFsZXhleSBCcm9k a2luOg0KPiA+IEhlbGxvLA0KPiA+IA0KPiA+IEknbSB0cnlpbmcgdG8gdXNlIERpc3BsYXlMaW5r IFVTQjIuMC10by1IRE1JIGFkYXB0ZXIgYXMgdGhlIG9uZSBhbmQgb25seQ0KPiA+IHZpZGVvIG91 dHB1dCBhbmQgSSB3YW50IHRvIGdldCBYc2VydmVyIHdvcmtpbmcgb24gdG9wIG9mIHRoYXQuDQo+ ID4gDQo+ID4gSSdtIG5vdCB2ZXJ5IGZhbWlsaWFyIHdpdGggYWxsIHRoZSBwYXJ0cyBvZiBMaW51 eCBHUFUvdmlkZW8gc3RhY2sNCj4gPiAoZXNwZWNpYWxseSBpdHMgdXNlci1zcGFjZSBjb3VudGVy cGFydCkgc28gbXkgYXNzdW1wdGlvbnMgbWlnaHQgYmUgd3JvbmcNCj4gPiBpbiB0aGF0IGNhc2Ug cGxlYXNlIGNvcnJlY3QgbWUuDQo+ID4gDQo+ID4gTXkgZmlyc3QgW3Byb2JhYmx5IGluY29ycmVj dF0gYXNzdW1wdGlvbiBpcyBYc2VydmVyIHJlcXVpcmVzIGZiZGV2ICgvZGV2L2ZiWCkNCj4gPiBh bmQgaXQgY2Fubm90IHVzZSBEUkkgdmlkZW8gY2FyZCBuYXRpdmVseS4gSXMgdGhhdCBjb3JyZWN0 Pw0KPiA+IA0KPiA+IFNvIHRvIGdldCAvZGVkL2ZiMCB3aXRoIFVETCBJIGp1c3QgZW5hYmxlZCBD T05GSUdfRFJNX1VETCAmIENPTkZJR19EUk1fRkJERVZfRU1VTEFUSU9OLg0KPiA+IFRoYXQgZ2F2 ZSBtZSBib290IGNvbnNvbGUgb24gSERNSSBzY3JlZW4gYW5kIEkgd2FzIGZ1bGwgb2YgZXhwZWN0 YXRpb25zLg0KPiA+IEJ1dCB3aGVuIEkgdHJpZWQgdG8gdXNlIC9kZXYvZmIwIGZyb20gd2hhdGV2 ZXIgdXNlci1zcGFjZSBhcHAgbm90aGluZyBnb3QNCj4gPiBkaXNwbGF5ZWQgb24gdGhlIHNjcmVl bi4uLiBhcyB3ZWxsIGFzIG5vIGVycm9yIG1lc3NhZ2VzIGFwcGVhcmVkLg0KPiA+IA0KPiA+IEFm dGVyIGV5ZWJhbGxpbmcgYXQgVURMIGNvZGUgKGVzcGVjaWFsbHkgaW4gY29tcGFyaXNvbiB3aXRo IFFYQyB3aGljaCB1c2VzIGRlZmVycmVkaW8NCj4gPiBhcyB3ZWxsKSBJIG5vdGljZWQgdGhhdCBp biBVREwgZmJfZGVmZXJyZWRfaW9faW5pdCgpIGlzIGNhbGxlZCBmcm9tIHVkbF9mYl9vcGVuKCks DQo+ID4gaS5lLiAuZmJfb3BlbiBjYWxsLWJhY2sgKGluIG90aGVyIHdvcmRzIGV2ZXJ5IHRpbWUg dXNlci1zcGFjZSBhcHAgb3BlbnMgL2Rldi9mYjApDQo+ID4gd2hpbGUgaW4gUVhDIHRoaXMgaXMg ZG9uZSBvbmx5IG9uY2UgYW5kIG11Y2ggZWFybGllciBpbiBxeGxmYl9jcmVhdGUoKSwgd2hpY2gg aXMNCj4gPiBjYWxsZWQgd2l0aCAuZmJfcHJvYmUgY2FsbC1iYWNrLiBTbyBtb3ZlZCBmYl9kZWZl cnJlZF9pb19pbml0KCkgaW4gVURMIGRyaXZlciBmcm9tDQo+ID4gdWRsX2ZiX29wZW4oKSB0byB1 ZGxmYl9jcmVhdGUoKSB3aGljaCBpcyBhbHNvIGNhbGxlZCBmcm9tIC5mYl9wcm9iZS4NCj4gPiAN Cj4gPiBXaXRoIHRoYXQgY2hhbmdlIEkgZmluYWxseSBnb3QgdmlkZW8gb3V0cHV0IHZpYSBmYmRl diBmcm9tIHVzZXItc3BhY2UgYXBwLA0KPiA+IGJ1dCBvbmx5IG9uIHRoZSBmaXJzdCBydW4uIFRo ZSBuZXh0IGF0dGVtcHQgdG8gcnVuIGluZXZpdGFibHkgZW5kcyB3aXRoDQo+ID4ga2VybmVsIGNy YXNoIHNob3dpbmcgdGhlIGZvbGxvd2luZyBzdGFjay10cmFjZSAoaGF2aW5nIGhhbGYgb2YgdGhl IG5ldyBzY3JlZW4NCj4gPiByZW5kZXJlZCBvbiBkaXNwbGF5KToNCj4gPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0+OC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiBTdGFjayBUcmFjZToN Cj4gPiAgICB1ZGxfaGFuZGxlX2RhbWFnZSsweDQ4LzB4MjEwDQo+ID4gICAgdWRsX2NydGNfbW9k ZV9zZXQrMHg2ZWUvMHg3NTQNCj4gPiAgICBkcm1fY3J0Y19oZWxwZXJfc2V0X21vZGUrMHgyNWUv MHg0MzgNCj4gPiAgICBkcm1fY3J0Y19oZWxwZXJfc2V0X2NvbmZpZysweDZkNi8weDgxNA0KPiA+ ICAgIF9fZHJtX21vZGVfc2V0X2NvbmZpZ19pbnRlcm5hbCsweDQ4LzB4YzgNCj4gPiAgICBkcm1f bW9kZV9zZXRjcnRjKzB4MzIwLzB4NDc4DQo+ID4gICAgZHJtX2lvY3RsKzB4MjJjLzB4M2U0DQo+ ID4gICAgU3lTX2lvY3RsKzB4YTQvMHg4Y2MNCj4gPiAgICBFVl9UcmFwKzB4MTA4LzB4MTBjDQo+ ID4gcmFuZG9tOiBjcm5nIGluaXQgZG9uZQ0KPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT44 LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+IA0KPiA+IEknbSB3b25kZXJpbmcgaWYgVURM IGRyaXZlciAoaXRzIERSTSBmbGF2b3IpIHdhcyBldmVyIHRlc3RlZCBmb3INCj4gPiBmYmRldiBp biB1c2VyLXNwYWNlPyBJZiBzbyBhbmQgaXQgcmVhbGx5IHdvcmtzIGZvciBzb21lYm9keQ0KPiA+ IG1heWJlIEknbSBkb2luZyBzb21ldGhpbmcgdGVycmlibHkgd3JvbmcgLSBpbiB0aGF0IGNhc2Ug YW55IGNvbW1lbnRzDQo+ID4gYXJlIHZlcnkgd2VsY29tZS4NCj4gDQo+IHVkbCB1c2VzIHNobWVt IGJ1ZmZlcnMgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGggZmJkZXYgZGVmZXJyZWQgaW8uDQo+IFRo ZXkgZmlnaHQgb3ZlciBwYWdlLT5scnUgYW5kIHBhZ2UtPm1hcHBpbmcuIFNlZSB0aGlzIGNvbW1p dDoNCj4gZHJtL3VkbDogZGlzYWJsZSBmYl9kZWZpbyBieSBkZWZhdWx0DQo+IDY3N2QyM2I3MGJm OTQ5Zjc1NzQ2YzgwY2JhZTkyYzIzM2M2YjVlMmENCg0KV2VsbCB0aGF0J3MgaW50ZXJlc3Rpbmcg aW5kZWVkLCBidXQgSU1ITyB0aGF0J3Mgbm90IHRoZSBtb3N0IGltcG9ydGFudA0KcHJvYmxlbSB3 aXRoIFVETCBhcyBvZiBub3cgc2luY2UgRFJJLWF3YXJlIGFwcHMgYW5kIFhzZXJ2ZXIgc3R1ZmYg d29yaw0KZmluZSB3aXRoIC9kZXYvZHJpL2NhcmRYLiBXaGF0IGJvdGhlcnMgbWUgaXMgc29tZSBw cm9ibGVtIFtwcm9iYWJseV0gd2l0aA0KZXhwb3J0IG9mIGl0cyBETUEgYnVmZmVycywgc28gVml2 YW50ZSBHUFUgZG9lcyByZW5kZXIgc3R1ZmYgYnV0IGl0IGlzIG5vdCBkaXNwbGF5ZWQNCm9uIHRo ZSBzY3JlZW4uLi4gaW4gYWJzZW5zZSBvZiBlcnJvciBtZXNzYWdlcyBJJ2QgY29uY2x1ZGUgdGhh dCB0aGUgR1BVDQpqdXN0IHJlbmRlcnMgdG8gc29tZSB2aXJ0dWFsbCBhZGRyZXNzZXMgd2hpY2gg YXJlIG5vdCBtYXBwZWQgdG8gVURMJ3MNCiJmcmFtZS1idWZmZXJzIi4gQW5kIGl0J3Mgbm90IGFi b3V0IGltcHJvcGVyIGhhbmRsaW5nIG9mIGNhY2hlcyAtIEkgdHJpZWQNCndpdGggZGF0YSBjYWNo ZXMgZGlzYWJsZWQgYnV0IHN0aWxsIHRvIG5vIGF2YWlsIDooDQoNCi1BbGV4ZXk=