From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH] dma-buf: Implement simple read/write vfs ops Date: Thu, 19 Sep 2019 17:28:41 +0200 Message-ID: References: <20190919150853.18181-1-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190919150853.18181-1-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson Cc: intel-gfx , dri-devel , Sean Paul , Laura Abbott , Sumit Semwal List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBTZXAgMTksIDIwMTkgYXQgNTowOSBQTSBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlz LXdpbHNvbi5jby51az4gd3JvdGU6Cj4KPiBJdCBpcyBleHBlY3RlZCB0aGF0IHByb2Nlc3NlcyB3 aWxsIHBhc3MgZG1hLWJ1ZiBmZCBiZXR3ZWVuIGRyaXZlcnMsIGFuZAo+IG9ubHkgdXNpbmcgdGhl IGZkIHRoZW1zZWx2ZXMgZm9yIG1tYXBpbmcgYW5kIHN5bmNocm9uaXNhdGlvbiBpb2N0bHMuCj4g SG93ZXZlciwgaXQgbWF5IGJlIGNvbnZlbmllbnQgZm9yIGFuIGFwcGxpY2F0aW9uIHRvIHJlYWQv d3JpdGUgaW50byB0aGUKPiBkbWEtYnVmLCBmb3IgaW5zdGFuY2UgYSB0ZXN0IGNhc2UgdG8gY2hl Y2sgdGhlIGludGVybmFsCj4gZG1hX2J1Zi0+b3BzLT5rbWFwIGludGVyZmFjZS4gVGhlcmUgbWF5 IGFsc28gYmUgYSBzbWFsbCBhZHZhbnRhZ2UgdG8KPiBhdm9pZGluZyB0aGUgbW1hcCgpIGZvciB2 ZXJ5IHNpbXBsZS9zbWFsbCBvcGVyYXRpb25zLgo+Cj4gTm90ZSBpbiBwYXJ0aWN1bGFyLCBzeW5j aHJvbmlzYXRpb24gd2l0aCB0aGUgZGV2aWNlIGlzIGxlZnQgdG8gdGhlCj4gY2FsbGVyIHdpdGgg YW4gZXhwbGljaXQgRE1BX0JVRl9JT0NUTF9TWU5DLCByYXRoZXIgdGhhbiBkb25lIGltcGxpY2l0 bHkKPiBpbnNpZGUgdGhlIHJlYWQvd3JpdGUsIHNvIHRoYXQgdGhlIHVzZXIgY2FuIGF2b2lkIHN5 bmNocm9uaXNhdGlvbiBpZgo+IHRoZXkgc28gY2hvb3NlLgo+Cj4gIkl0IGlzIGVhc2llciB0byBh ZGQgc3luY2hyb25pc2F0aW9uIGxhdGVyLCB0aGFuIGl0IGlzIHRvIHRha2UgaXQgYXdheS4iCgpI bSBmb3IgbW1hcCBJIHRoaW5rIHRoZSBleHBsaWNpdCBzeW5jIG1ha2VzIHNlbnNlICh3ZSBtaWdo dCBldmVuIHdhbnQKdG8gZG8gaXQgaW4gdXNlcnNwYWNlKS4gTm90IHNvIHN1cmUgaXQncyBhIGdy ZWF0IGlkZWEgZm9yIHJlYWQvd3JpdGUKLi4uIEkgZ3Vlc3Mgd2UnZCBuZWVkIHRvIHNlZSB3aGF0 IHBlb3BsZSBoYXZlL2hhZCBpbiBtaW5kIGZvciB0aGUKdXNlcnNwYWNlIGZvciB0aGlzIHRvIGRl Y2lkZS4KCk9ubHkgb3RoZXIgdGhvdWdodCBJIGhhdmUgb24gdGhpcyBpcyB0aGF0IG1hbnkgZG1h LWJ1ZiBleHBvcnRlcnMgZG9uJ3QKYm90aGVyIHdpdGggdGhlIGttYXAva3VubWFwIGludGVyZmFj ZSAocHJvYmFibHkgZmV3ZXIgdGhhbiB0aG9zZSB3aG8KYm90aGVyIHdpdGgga2VybmVsIHZtYXAg YW5kIG1tYXApLCBtYXliZSB3ZSB3YW50IGF0IGxlYXN0IGEgdm1hcApmYWxsYmFjayBmb3IgdGhp cy4gT3IgbWF5YmUganVzdCB1c2UgdGhhdCBhcyBhbiBleGN1c2UgdG8gZ2V0IG1vcmUKcGVvcGxl IHRvIHdpcmUgdXAgdGhlIGttYXAgc3R1ZmYgOi0pCi1EYW5pZWwKCj4gdjI6IExvdHMgb2YgbGl0 dGxlIGZpeGVzLCBwbHVzIGEgcmVhbCBsbHNlZWsoKSBpbXBsZW1lbnRzIHNvIHRoYXQgdGhlCj4g Zmlyc3QgYmFzaWMgbGl0dGxlIHRlc3QgY2FzZXMgd29yayEKPgo+IFRlc3RjYXNlOiBpZ3QvcHJp bWVfcncKPiBTaWduZWQtb2ZmLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5j by51az4KPiBDYzogTGF1cmEgQWJib3R0IDxsYWJib3R0QHJlZGhhdC5jb20+Cj4gQ2M6IFN1bWl0 IFNlbXdhbCA8c3VtaXQuc2Vtd2FsQGxpbmFyby5vcmc+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRh bmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0u b3JnPgo+IENjOiBKYW51c3ogS3J6eXN6dG9maWsgPGphbnVzei5rcnp5c3p0b2Zpa0BsaW51eC5p bnRlbC5jb20+Cj4gVGVzdGVkLWJ5OiBMYXVyYSBBYmJvdHQgPGxhYmJvdHRAcmVkaGF0LmNvbT4K PiAtLS0KPiBEdXN0aW5nIHRoaXMgb2ZmIGFnYWluIGFzIGl0IHdvdWxkIGJlIG5pY2UgYXMgYSB1 c2VyIHRvIG9wZXJhdGUgb24gZG1hYnVmCj4gYWdub3N0aWMgdG8gdGhlIHVuZGVyeWxpbmcgZHJp dmVyLiBXZSBoYXZlIG1tYXAsIHNvIG5hdHVyYWxseSB3ZSB3b3VsZAo+IGxpa2UgdG8gaGF2ZSBy ZWFkL3dyaXRlIGFzIHdlbGwhCj4KPiAtLS0KPiAgZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyB8 IDEwOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQo+ICAxIGZpbGUgY2hh bmdlZCwgOTMgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYyBiL2RyaXZlcnMvZG1hLWJ1Zi9kbWEtYnVmLmMKPiBp bmRleCA0MzNkOTFkNzEwZTQuLmExOWZjODgxYTk5YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2Rt YS1idWYvZG1hLWJ1Zi5jCj4gKysrIGIvZHJpdmVycy9kbWEtYnVmL2RtYS1idWYuYwo+IEBAIC0x MzUsMjggKzEzNSwxMDQgQEAgc3RhdGljIGludCBkbWFfYnVmX21tYXBfaW50ZXJuYWwoc3RydWN0 IGZpbGUgKmZpbGUsIHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQo+Cj4gIHN0YXRpYyBsb2Zm X3QgZG1hX2J1Zl9sbHNlZWsoc3RydWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCB3 aGVuY2UpCj4gIHsKPiAtICAgICAgIHN0cnVjdCBkbWFfYnVmICpkbWFidWY7Cj4gLSAgICAgICBs b2ZmX3QgYmFzZTsKPiArICAgICAgIHN0cnVjdCBkbWFfYnVmICpkbWFidWYgPSBmaWxlLT5wcml2 YXRlX2RhdGE7Cj4KPiAgICAgICAgIGlmICghaXNfZG1hX2J1Zl9maWxlKGZpbGUpKQo+ICAgICAg ICAgICAgICAgICByZXR1cm4gLUVCQURGOwo+Cj4gLSAgICAgICBkbWFidWYgPSBmaWxlLT5wcml2 YXRlX2RhdGE7Cj4gKyAgICAgICByZXR1cm4gZml4ZWRfc2l6ZV9sbHNlZWsoZmlsZSwgb2Zmc2V0 LCB3aGVuY2UsIGRtYWJ1Zi0+c2l6ZSk7Cj4gK30KPgo+IC0gICAgICAgLyogb25seSBzdXBwb3J0 IGRpc2NvdmVyaW5nIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciwKPiAtICAgICAgICAgIGJ1dCBhbHNv IGFsbG93IFNFRUtfU0VUIHRvIG1haW50YWluIHRoZSBpZGlvbWF0aWMKPiAtICAgICAgICAgIFNF RUtfRU5EKDApLCBTRUVLX0NVUigwKSBwYXR0ZXJuICovCj4gLSAgICAgICBpZiAod2hlbmNlID09 IFNFRUtfRU5EKQo+IC0gICAgICAgICAgICAgICBiYXNlID0gZG1hYnVmLT5zaXplOwo+IC0gICAg ICAgZWxzZSBpZiAod2hlbmNlID09IFNFRUtfU0VUKQo+IC0gICAgICAgICAgICAgICBiYXNlID0g MDsKPiAtICAgICAgIGVsc2UKPiAtICAgICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gK3N0 YXRpYyBzc2l6ZV90IGRtYV9idWZfcmVhZChzdHJ1Y3QgZmlsZSAqZmlsZSwKPiArICAgICAgICAg ICAgICAgICAgICAgICAgICAgY2hhciBfX3VzZXIgKnVidWYsIHNpemVfdCByZW1haW4sCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgIGxvZmZfdCAqb2Zmc2V0KQo+ICt7Cj4gKyAgICAgICBz dHJ1Y3QgZG1hX2J1ZiAqZG1hYnVmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwo+ICsgICAgICAgdW5z aWduZWQgbG9uZyBpZHg7Cj4gKyAgICAgICB1bnNpZ25lZCBpbnQgc3RhcnQ7Cj4gKyAgICAgICBz aXplX3QgdG90YWw7Cj4KPiAtICAgICAgIGlmIChvZmZzZXQgIT0gMCkKPiAtICAgICAgICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7Cj4gKyAgICAgICBpZiAoIWlzX2RtYV9idWZfZmlsZShmaWxlKSkK PiArICAgICAgICAgICAgICAgcmV0dXJuIC1FQkFERjsKPiArCj4gKyAgICAgICB0b3RhbCA9IDA7 Cj4gKyAgICAgICBpZHggPSAqb2Zmc2V0ID4+IFBBR0VfU0hJRlQ7Cj4gKyAgICAgICBzdGFydCA9 IG9mZnNldF9pbl9wYWdlKCpvZmZzZXQpOwo+ICsgICAgICAgd2hpbGUgKHJlbWFpbikgewo+ICsg ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbGVuID0gbWluX3Qoc2l6ZV90LCByZW1haW4sIFBB R0VfU0laRSAtIHN0YXJ0KTsKPiArICAgICAgICAgICAgICAgdW5zaWduZWQgaW50IGNvcGllZDsK PiArICAgICAgICAgICAgICAgdm9pZCAqdmFkZHI7Cj4gKwo+ICsgICAgICAgICAgICAgICBpZiAo Km9mZnNldCA+PSBkbWFidWYtPnNpemUpCj4gKyAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu IHRvdGFsOwo+ICsKPiArICAgICAgICAgICAgICAgdmFkZHIgPSBkbWFfYnVmX2ttYXAoZG1hYnVm LCBpZHgpOwo+ICsgICAgICAgICAgICAgICBpZiAoIXZhZGRyKQo+ICsgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybiB0b3RhbCA/OiAtRUlPOwo+ICsKPiArICAgICAgICAgICAgICAgY29waWVk ID0gY29weV90b191c2VyKHVidWYsIHZhZGRyICsgc3RhcnQsIGxlbik7Cj4gKyAgICAgICAgICAg ICAgIGRtYV9idWZfa3VubWFwKGRtYWJ1ZiwgaWR4LCB2YWRkcik7Cj4gKwo+ICsgICAgICAgICAg ICAgICB0b3RhbCArPSBjb3BpZWQgPzogbGVuOwo+ICsgICAgICAgICAgICAgICBpZiAoY29waWVk KSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgKm9mZnNldCArPSBjb3BpZWQ7Cj4gKyAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsID86IC1FRkFVTFQ7Cj4gKyAgICAgICAgICAg ICAgIH0KPiArCj4gKyAgICAgICAgICAgICAgIHJlbWFpbiAtPSBsZW47Cj4gKyAgICAgICAgICAg ICAgICpvZmZzZXQgKz0gbGVuOwo+ICsgICAgICAgICAgICAgICB1YnVmICs9IGxlbjsKPiArICAg ICAgICAgICAgICAgc3RhcnQgPSAwOwo+ICsgICAgICAgICAgICAgICBpZHgrKzsKPiArICAgICAg IH0KPiArCj4gKyAgICAgICByZXR1cm4gdG90YWw7Cj4gK30KPiArCj4gK3N0YXRpYyBzc2l6ZV90 IGRtYV9idWZfd3JpdGUoc3RydWN0IGZpbGUgKmZpbGUsCj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjb25zdCBjaGFyIF9fdXNlciAqdWJ1Ziwgc2l6ZV90IHJlbWFpbiwKPiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxvZmZfdCAqb2Zmc2V0KQo+ICt7Cj4gKyAgICAgICBzdHJ1 Y3QgZG1hX2J1ZiAqZG1hYnVmID0gZmlsZS0+cHJpdmF0ZV9kYXRhOwo+ICsgICAgICAgdW5zaWdu ZWQgbG9uZyBpZHg7Cj4gKyAgICAgICB1bnNpZ25lZCBpbnQgc3RhcnQ7Cj4gKyAgICAgICBzaXpl X3QgdG90YWw7Cj4gKwo+ICsgICAgICAgaWYgKCFpc19kbWFfYnVmX2ZpbGUoZmlsZSkpCj4gKyAg ICAgICAgICAgICAgIHJldHVybiAtRUJBREY7Cj4gKwo+ICsgICAgICAgdG90YWwgPSAwOwo+ICsg ICAgICAgaWR4ID0gKm9mZnNldCA+PiBQQUdFX1NISUZUOwo+ICsgICAgICAgc3RhcnQgPSBvZmZz ZXRfaW5fcGFnZSgqb2Zmc2V0KTsKPiArICAgICAgIHdoaWxlIChyZW1haW4pIHsKPiArICAgICAg ICAgICAgICAgdW5zaWduZWQgaW50IGxlbiA9IG1pbl90KHNpemVfdCwgcmVtYWluLCBQQUdFX1NJ WkUgLSBzdGFydCk7Cj4gKyAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjb3BpZWQ7Cj4gKyAg ICAgICAgICAgICAgIHZvaWQgKnZhZGRyOwo+ICsKPiArICAgICAgICAgICAgICAgaWYgKCpvZmZz ZXQgPj0gZG1hYnVmLT5zaXplKQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0b3Rh bDsKPiArCj4gKyAgICAgICAgICAgICAgIHZhZGRyID0gZG1hX2J1Zl9rbWFwKGRtYWJ1ZiwgaWR4 KTsKPiArICAgICAgICAgICAgICAgaWYgKCF2YWRkcikKPiArICAgICAgICAgICAgICAgICAgICAg ICByZXR1cm4gdG90YWwgPzogLUVJTzsKPiArCj4gKyAgICAgICAgICAgICAgIGNvcGllZCA9IGNv cHlfZnJvbV91c2VyKHZhZGRyICsgc3RhcnQsIHVidWYsIGxlbik7Cj4gKyAgICAgICAgICAgICAg IGRtYV9idWZfa3VubWFwKGRtYWJ1ZiwgaWR4LCB2YWRkcik7Cj4gKwo+ICsgICAgICAgICAgICAg ICB0b3RhbCArPSBjb3BpZWQgPzogbGVuOwo+ICsgICAgICAgICAgICAgICBpZiAoY29waWVkKSB7 Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgKm9mZnNldCArPSBjb3BpZWQ7Cj4gKyAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIHRvdGFsID86IC1FRkFVTFQ7Cj4gKyAgICAgICAgICAgICAg IH0KPiArCj4gKyAgICAgICAgICAgICAgIHJlbWFpbiAtPSBsZW47Cj4gKyAgICAgICAgICAgICAg ICpvZmZzZXQgKz0gbGVuOwo+ICsgICAgICAgICAgICAgICB1YnVmICs9IGxlbjsKPiArICAgICAg ICAgICAgICAgc3RhcnQgPSAwOwo+ICsgICAgICAgICAgICAgICBpZHgrKzsKPiArICAgICAgIH0K Pgo+IC0gICAgICAgcmV0dXJuIGJhc2UgKyBvZmZzZXQ7Cj4gKyAgICAgICByZXR1cm4gdG90YWw7 Cj4gIH0KPgo+ICAvKioKPiBAQCAtNDEzLDYgKzQ4OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qg ZmlsZV9vcGVyYXRpb25zIGRtYV9idWZfZm9wcyA9IHsKPiAgICAgICAgIC5yZWxlYXNlICAgICAg ICA9IGRtYV9idWZfcmVsZWFzZSwKPiAgICAgICAgIC5tbWFwICAgICAgICAgICA9IGRtYV9idWZf bW1hcF9pbnRlcm5hbCwKPiAgICAgICAgIC5sbHNlZWsgICAgICAgICA9IGRtYV9idWZfbGxzZWVr LAo+ICsgICAgICAgLnJlYWQgICAgICAgICAgID0gZG1hX2J1Zl9yZWFkLAo+ICsgICAgICAgLndy aXRlICAgICAgICAgID0gZG1hX2J1Zl93cml0ZSwKPiAgICAgICAgIC5wb2xsICAgICAgICAgICA9 IGRtYV9idWZfcG9sbCwKPiAgICAgICAgIC51bmxvY2tlZF9pb2N0bCA9IGRtYV9idWZfaW9jdGws Cj4gICNpZmRlZiBDT05GSUdfQ09NUEFUCj4gLS0KPiAyLjIzLjAKPgoKCi0tIApEYW5pZWwgVmV0 dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgorNDEgKDApIDc5IDM2NSA1 NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==