From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lyude Subject: Re: [PATCH v4 0/6] Finally fix watermarks Date: Fri, 29 Jul 2016 15:46:07 -0400 Message-ID: <1469821567.23735.38.camel@redhat.com> References: <1469554483-24999-1-git-send-email-cpaul@redhat.com> <20160729000352.GR32025@intel.com> <20160729093905.GU4329@intel.com> <1469818089.23735.32.camel@redhat.com> <20160729192620.GK4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160729192620.GK4329@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCAyMDE2LTA3LTI5IGF0IDIyOjI2ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 Cj4gT24gRnJpLCBKdWwgMjksIDIwMTYgYXQgMDI6NDg6MDlQTSAtMDQwMCwgTHl1ZGUgd3JvdGU6 Cj4gPiAKPiA+IFNvIEkndmUgYmVlbiB3b3JraW5nIG9uIHRyeWluZyB0byBmaXggdGhpcyBlbnRp cmVseSBhZ2FpbiAoZS5nLgo+ID4gd3JpdGluZwo+ID4gdGhlIGRkYiBwcm9wZXJseSksIHNpbmNl IGZyb20gYnVnIHJlcG9ydHMgaXQgc3RpbGwgZG9lc24ndCBzb3VuZAo+ID4gbGlrZQo+ID4gd2Un dmUgZ290IGVub3VnaCB3b3JrYXJvdW5kcyB0byBtYWtlIHRoaXMgdG9sZXJhYmxlLiBJJ3ZlIHNo b3duCj4gPiB0aGlzIHRvCj4gPiBtYXR0IHJvcGVyLCBidXQgSSBzaG91bGQgcHJvYmFibHkgcG9z dCB3aGF0IEkndmUgYmVlbiB0cnlpbmcgdG8gZG8KPiA+IGZvcgo+ID4geW91IGFzIHdlbGwuCj4g PiAKPiA+IFNvIHRoZSBhcHByb2FjaCBJIGNhbWUgdXAgd2l0aCBpcyBoZXJlCj4gPiAKPiA+IGh0 dHBzOi8vZ2l0aHViLmNvbS9seXVkZS9saW51eC90cmVlL3dpcC9za2wtZml4LXdtcy12NXIyCj4g PiAKPiA+IE15IGFwcHJvYWNoIGRpZmZlcnMgYSBsaXR0bGUgYml0IGZyb20gd2hhdCB0aGUgYnNw ZWMgcmVjb21tZW5kcywKPiA+IGJ1dCBJCj4gPiB0aGluayBpdCdzIGdvaW5nIHRvIGJlIGEgYml0 IGVhc2llciB0byBpbXBsZW1lbnQuIEF0IHRoZSBlbmQgb2YgYWxsCj4gPiB0aGUKPiA+IGNoYW5n ZXMgSSdtIGF0dGVtcHRpbmcgaXQgc2hvdWxkIGxvb2sgbGlrZSB0aGlzOgo+ID4gCj4gPiDCoCog V2Ugbm8gbG9uZ2VyIGhhdmUgYSBnbG9iYWwgd2F0ZXJtYXJrIHVwZGF0ZSBmb3Igc2tsCj4gPiDC oCogQSBuZXcgaG9vayBjYWxsZWQgInVwZGF0ZV9kZGJzIiBpcyBhZGRlZCB0byBpOTE1X2Rpc3Bs YXlfZnVuY3MuCj4gPiBUaGlzCj4gPiDCoMKgwqBnZXRzIGNhbGxlZCBpbiBpbnRlbF9hdG9taWNf Y29tbWl0X3RhaWwoKSBhZnRlciB3ZSd2ZSBkaXNhYmxlZAo+ID4gYW55Cj4gPiDCoMKgwqBDUlRD cyB0aGF0IG5lZWRlZCBkaXNhYmxpbmcsIGFuZCBiZWZvcmUgd2UgYmVnaW4KPiA+IGVuYWJsaW5n L3VwZGF0aW5nCj4gPiDCoMKgwqBDUlRDcwo+ID4gwqAqIEJlY2F1c2UgcGlwZSBkZGIgYWxsb2Nh dGlvbnMgKG5vdCB0aGUgaW5uZXItcGlwZSBkZGIgYWxsb2NhdGlvbnMKPiA+IMKgwqDCoHRoYXQg YXBwbHkgdG8gZWFjaCBwaXBlJ3MgcGxhbmVzKSBvbmx5IGNoYW5nZSB3aGlsZQo+ID4gwqDCoMKg ZW5hYmxpbmcvZGlzYWJsaW5nIGNydGNzOgo+ID4gwqDCoMKgwqAqIFBhc3MgMTogRmluZCB3aGlj aCBwaXBlJ3MgbmV3IGRkYiBhbGxvY2F0aW9uIHdvbid0IG92ZXJsYXAKPiA+IHdpdGgKPiA+IMKg wqDCoMKgwqDCoGFub3RoZXIgcGlwZSdzIHByZXZpb3VzIGFsbG9jYXRpb24sIGFuZCB1cGRhdGUg dGhhdCBwaXBlCj4gPiBmaXJzdAo+ID4gwqDCoMKgwqAqIFBhc3MgMjogVXBkYXRlIHRoZSBhbGxv Y2F0aW9uIG9mIHRoZSByZW1haW5pbmcgcGlwZQo+ID4gCj4gPiBIZXJlJ3MgYW4gaWxsdXN0cmF0 aW9uIG9mIHdoYXQgdGhpcyBsb29rcyBsaWtlLiBQYXJ0cyBvZiB0aGUgZGRiCj4gPiBub3QKPiA+ IGJlaW5nIHVzZWQgYnkgYW55IENSVENzIGFyZSBtYXJrZWQgb3V0IHdpdGggJ3gnczoKPiA+IAo+ ID4gV2l0aCBwaXBlIEEgZW5hYmxlZCwgd2UgZW5hYmxlIHBpcGUgQjoKPiA+IEluaXRpYWwgRERC OiDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgQSDCoCDCoCDCoCDCoCDCoCB8Cj4gPiB1cGRhdGVfZGRi czogwqAgwqB8IMKgIMKgIEEgwqAgwqAgfHh4eHh4eHh4eHh4fCBQYXNzIDEKPiA+IEVuYWJsZSBw aXBlIEI6IMKgfCDCoCDCoCBBIMKgIMKgIHwgwqAgwqAgQiDCoCDCoCB8Cj4gPiAKPiA+IFdpdGgg cGlwZXMgQiBhbmQgQSBhY3RpdmUsIHdlIGVuYWJsZSBwaXBlIEM6Cj4gPiAKPiA+IEluaXRpYWwg RERCOiDCoCDCoHwgwqAgwqAgQiDCoCDCoCB8IMKgIMKgIEEgwqAgwqAgfAo+ID4gdXBkYXRlX2Rk YnM6IMKgIMKgfCDCoCBCIMKgIHx4eHh8IMKgIMKgIEEgwqAgwqAgfCBQYXNzIDEKPiA+IHVwZGF0 ZV9kZGJzOiDCoCDCoHwgwqAgQiDCoCB8IMKgIEEgwqAgfHh4eHh4eHh8IFBhc3MgMgo+ID4gRW5h YmxlIHBpcGUgQzogwqB8IMKgIEIgwqAgfCDCoCBBIMKgIHwgwqAgQyDCoCB8Cj4gPiAKPiA+IFdp dGggcGlwZXMgQSwgQiwgYW5kIEMgYWN0aXZlLCB3ZSBkaXNhYmxlIEI6Cj4gPiBJbml0aWFsIERE QjogwqAgwqB8IMKgIEEgwqAgfCDCoCBCIMKgIHwgwqAgQyDCoCB8Cj4gPiBEaXNhYmxlIHBpcGUg QjogfCDCoCBBIMKgIHx4eHh4eHh4fCDCoCBDIMKgIHwKPiA+IHVwZGF0ZV9kZGJzOiDCoCDCoHwg wqAgwqAgQSDCoCDCoCB8IMKgIMKgIEMgwqAgwqAgfCBQYXNzIDEKPiA+IFNpbmNlIG5laXRoZXIg cGlwZSdzIG5ldyBhbGxvY2F0aW9uIG92ZXJsYXBwZWQsIHdlIHNraXAgcGFzcyAyCj4gPiAKPiA+ IEFub3RoZXIgYWxsb2NhdGlvbiB3aXRoIEEsIEIsIGFuZCBDIGFjdGl2ZSwgZGlzYWJsaW5nIEE6 Cj4gPiBJbml0aWFsIEREQjogwqAgwqB8IMKgIEEgwqAgfCDCoCBCIMKgIHwgwqAgQyDCoCB8Cj4g PiBEaXNhYmxlIHBpcGUgQTogfHh4eHh4eHh8IMKgIEIgwqAgfCDCoCBDIMKgIHwKPiA+IHVwZGF0 ZV9kZGJzOiDCoCDCoHwgwqAgwqAgQiDCoCDCoCB8eHh4fCDCoCBDIMKgIHwgUGFzcyAxCj4gPiB1 cGRhdGVfZGRiczogwqAgwqB8IMKgIMKgIEIgwqAgwqAgfCDCoCDCoCBDIMKgIMKgIHwgUGFzcyAy Cj4gPiAKPiA+IFRoaXMgc2hvdWxkIGVuc3VyZSB3ZSBjYW4gYWx3YXlzIG1vdmUgYXJvdW5kIHRo ZSBhbGxvY2F0aW9ucyBvZgo+ID4gcGlwZXMKPiA+IHdpdGhvdXQgdGhlbSBldmVyIG92ZXJsYXBw aW5nIGFuZCBleHBsb2RpbmcuCj4gCj4gVGhhdCdzIHdoYXQgdGhlIGN1cnJlbnQgZmx1c2ggdGhp bmcgZG9lcywgb3IgYXQgbGVhc3QgdGhhdCB3aGF0IGl0Cj4gdXNlZAo+IHRvIGRvIGF0IGxlYXN0 LiBOb3Qgc3VyZSBpdCdzIHJlYWxseSBkb2luZyBpdCBhbnltb3JlLCBidXQgSSdtIHByZXR0eQo+ IHN1cmUgdGhlIG9yZGVyIGluIHdoaWNoIGl0IGRpZCB0aGluZ3Mgd2FzIHNvdW5kIGF0IHNvbWUg cG9pbnQuCj4gCj4gPiAKPiA+IAo+ID4gVGhpcyBicmFuY2ggZG9lc24ndCBlbnRpcmVseSBmaXgg dW5kZXJydW4gaXNzdWVzLCBidXQgSSdtIG1vc3RseQo+ID4gc3VyZQo+ID4gdGhhdCdzIHRoZSBm YXVsdCBvZiBzdGlsbCBub3QgaGF2aW5nIHJlbW92ZWQgdGhlIGdsb2JhbCB3bSB1cGRhdGUKPiA+ IGhvb2sKPiA+IHlldCAod2hpY2ggaXMgbGVhZGluZyB0byBhZGRpdGlvbmFsIHBpcGUgZmx1c2hl cyBpbiBwbGFjZXMgdGhleQo+ID4gc2hvdWxkbid0IGJlKToKPiAKPiBXZWxsIGl0IHNob3VsZCBi YXNpY2FsbHkgYm9pbCBkb3duIHRvIHMvdXBkYXRlX3dtL3VwZGF0ZV9kZGIvCj4gT25seSBEREIg cmVhbGxvY2F0aW9uIHJlYWxseSB3YXJyYW50cyBhIGdsb2JhbCBob29rLiBFdmVyeXRoaW5nIGVs c2UKPiBzaG91bGQgYmUgaGFuZGxlZCB2aWEgcGVyLWNydGMgaG9va3MsIG9uIGFsbCBwbGF0Zm9y bXMuCj4gCj4gPiAKPiA+IAo+ID4gaHR0cHM6Ly9naXRodWIuY29tL2x5dWRlL2xpbnV4L3RyZWUv d2lwL3NrbC1maXgtd21zLXY1cjIKPiA+IAo+ID4gQXMgZm9yIHVwZGF0aW5nIGlubmVyLXBpcGUg ZGRiIGFsbG9jYXRpb25zIGZvciBlYWNoIHBsYW5lIG9uIGEKPiA+IHBpcGUsIHdlCj4gPiBzaG91 bGQgYmUgYWJsZSB0byBqdXN0IGRvIHRoYXQgYXQgdGhlIHNhbWUgdGltZSB3ZSB1cGRhdGUgZWFj aAo+ID4gcGlwZSdzCj4gPiB3YXRlcm1hcmtzCj4gCj4gWWVzLgo+IAo+IE5vbmUgb2YgdGhhdCBj aGFuZ2VzIHdoYXQgSSBzYWlkIGJlZm9yZSB0aG91Z2guIEVpdGhlciB5b3UgbmVlZCB0bwo+IGxv Y2sgZG93biBldmVyeXRoaW5nIHdoZW4gdGhlIEREQiBuZWVkcyB0byBiZSByZXBhcnRpdGlvbmVk LCBvciB5b3UKPiBkbyB3aGF0IEkgb3V0bGluZWQgaW4gdGhlIHByZXZpb3VzIG1haWwuIE90aGVy d2lzZSBhIHBsYW5lIHVwZGF0ZQo+IGV0Yy4gaGFwcGVuaW5nIGluIHBhcmFsbGVsIHdpbGwgc3Rp bGwgYmxvdyB1cCBvbiBhY2NvdW50IG9mIHRoZSBEREIKPiBzdGF0ZSBjaGFuZ2luZyB1bmRlcm5l YXRoIHRoZSBwbGFuZSB1cGRhdGUgc29tZXdoZXJlIGJldHdlZW4gY29tcHV0ZQo+IGFuZCBjb21t aXQuIEkgY2FuJ3QgcmVhbGx5IHRoaW5rIG9mIHRoaXJkIG9wdGlvbiB0aGF0IHdvdWxkIHdvcmsu Cj4gCkJsZWghIEkgZGlkbid0IGV2ZW4gcmVhbGl6ZSBwbGFuZSB1cGRhdGVzIGNvdWxkIGhhcHBl biBpbiBwYXJhbGxlbCBsaWtlCnRoYXQuIFN1ZGRlbmx5IHlvdXIgcHJvcG9zYWwgbWFrZXMgYSBs b3QgbW9yZSBzZW5zZS4uLgoKQW55d2F5LCB5b3VyIG1ldGhvZCBkZWZpbml0ZWx5IHNvdW5kcyBs aWtlIHRoZSByaWdodCBvbmUuIFVubGVzcyBNYXR0CnRoaW5rcyB0aGVyZSdzIHNvbWV0aGluZyB0 aGF0IGNvdWxkIGdvIHdyb25nIHRoZXJlLCBJJ20gZ29pbmcgdG8gc3RhcnQKd29ya2luZyB0aGF0 IGludG8gdGhlIGRyaXZlciBhbmQgcmVwb3N0IHRoZSBwYXRjaHNldCBvbmNlIEkndmUgYWRkZWQK dGhhdCBpbnRvIHRoZSBkcml2ZXIuCgpDaGVlcnMsCglMeXVkZcKgCj4gPiAKPiA+IAo+ID4gTGV0 IG1lIGtub3cgd2hhdCB5b3UgdGhpbmsKPiA+IAlMeXVkZQo+ID4gCj4gPiBPbiBGcmksIDIwMTYt MDctMjkgYXQgMTI6MzkgKzAzMDAsIFZpbGxlIFN5cmrDpGzDpCB3cm90ZToKPiA+ID4gCj4gPiA+ IE9uIFRodSwgSnVsIDI4LCAyMDE2IGF0IDA1OjAzOjUyUE0gLTA3MDAsIE1hdHQgUm9wZXIgd3Jv dGU6Cj4gPiA+ID4gCj4gPiA+ID4gCj4gPiA+ID4gVGhpcyBpcyBjb21wbGV0ZWx5IHVudGVzdGVk IChhbmQgcHJvYmFibHkgaG9ycmlibHkKPiA+ID4gPiBicm9rZW4vYnVnZ3kpLAo+ID4gPiA+IGJ1 dAo+ID4gPiA+IGhlcmUncyBhIHF1aWNrIG1vY2t1cCBvZiB0aGUgZ2VuZXJhbCBhcHByb2FjaCBJ IHdhcyB0aGlua2luZwo+ID4gPiA+IGZvcgo+ID4gPiA+IGVuc3VyaW5nIEREQiAmIFdNJ3MgY2Fu IGJlIHVwZGF0ZWQgdG9nZXRoZXIgd2hpbGUgZW5zdXJpbmcgdGhlCj4gPiA+ID4gdGhyZWUtc3Rl cCBwaXBlIGZsdXNoaW5nIHByb2Nlc3MgaXMgaG9ub3JlZDoKPiA+ID4gPiAKPiA+ID4gPiDCoMKg wqDCoMKgwqDCoMKgaHR0cHM6Ly9naXRodWIuY29tL21hdHRyb3BlL2tlcm5lbC9jb21taXRzL2V4 cGVyaW1lbnRhbAo+ID4gPiA+IC9seXUKPiA+ID4gPiBkZV9kZGIKPiA+ID4gPiAKPiA+ID4gPiBC YXNpY2FsbHkgdGhlIGlkZWEgaXMgdG8gdGFrZSBub3RlIG9mIHdoYXQncyBoYXBwZW5pbmcgdG8g dGhlCj4gPiA+ID4gcGlwZSdzIEREQgo+ID4gPiA+IGFsbG9jYXRpb24gKHNocmlua2luZywgZ3Jv d2luZywgdW5jaGFuZ2VkLCBldGMuKSBkdXJpbmcgdGhlCj4gPiA+ID4gYXRvbWljCj4gPiA+ID4g Y2hlY2sKPiA+ID4gPiBwaGFzZTsKPiA+ID4gCj4gPiA+IERpZG4ndCBsb29rIHRvbyBjbG9zZWx5 LCBidXQgSSB0aGluayB5b3UgY2FuJ3QgYWN0dWFsbHkgZG8gdGhhdAo+ID4gPiB1bmxlc3MKPiA+ ID4geW91IGxvY2sgYWxsIHRoZSBjcnRjcyB3aGVuZXZlciB0aGUgbnVtYmVyIG9mIGFjdGl2ZSBw aXBlcyBpcwo+ID4gPiBnb2luZAo+ID4gPiB0bwo+ID4gPiBjaGFuZ2UuIE1lYW5pbmcgd2UnZCBl c3NlbnRpYWxseSBiZSBiYWNrIHRvIHRoZSBvbmUtYmlnLW1vZGVzZXQtCj4gPiA+IGxvY2sKPiA+ ID4gYXBwb3JhY2gsIHdoaWNoIHdpbGwgY2F1c2UgbWlzc2VkIGZsaXBzIGFuZCB3aGFub3Qgb24g dGhlIG90aGVyCj4gPiA+IHBpcGVzLgo+ID4gPiAKPiA+ID4gVGhlIGFsdGVybmF0aXZlIEkgdGhp bmsgd291bGQgY29uc2lzdCBvZjoKPiA+ID4gLSBtYWtlIHN1cmUgbGV2ZWwgMCB3YXRlcm1hcmsg bmV2ZXIgZXhjZWVkcwo+ID4gPiB0b3RhbF9kZGJfc2l6ZS9tYXhfcGlwZXMsCj4gPiA+IMKgIHNv IHRoYXQgYSBtb2Rlc2V0IGRvZXNuJ3QgaGF2ZSB0byBjYXJlIGFib3V0IHRoZSB3bXMgZm9yIHRo ZQo+ID4gPiBvdGhlcgo+ID4gPiDCoCBwaXBlcyBub3QgZml0dGluZyBpbgo+ID4gPiAtIGxldmVs IDErIHdhdGVybWFya3Mgd291bGQgYmUgY2hlY2tlZCBhZ2FpbnN0IHRvdGFsX2RkYl9zaXplCj4g PiA+IC0gcHJvdGVjdCB0aGUgcGxhbmUvcGlwZSBjb21taXQgd2l0aCB0aGUgd20gbXV0ZXggd2hl bmV2ZXIgdGhlCj4gPiA+IHdtcwo+ID4gPiDCoCBuZWVkIHRvIGJlIHJlcHJvZ3JhbW1lZAo+ID4g PiAtIGtlZXAgdGhlIGZsdXNoX3dtIHRoaW5nIGFyb3VuZCBmb3IgdGhlIGNhc2Ugd2hlbiBkZGIg c2l6ZSBkb2VzCj4gPiA+IGdldAo+ID4gPiDCoCBjaGFuZ2VkLCBwcm90ZWN0IGl0IHdpdGggdGhl IHdtIGxvY2sKPiA+ID4gLSB3aGVuIHByb2dyYW1taW5nIHdtcywgd2Ugd2lsbCBmaXJzdCBmaWx0 ZXIgb3V0IGFueSBsZXZlbCB0aGF0Cj4gPiA+IMKgIGRvZXNuJ3QgZml0IGluIHdpdGggdGhlIGN1 cnJlbnQgZGRiIHNpemUsIGFuZCB0aGVuIHByb2dyYW0gdGhlCj4gPiA+IMKgIHJlc3QgaW4KPiA+ ID4gLSBwb3RlbnRpYWxseSBpbnRyb2R1Y2UgcGVyLXBpcGUgd20gbG9ja3MgaWYgdGhlIG9uZSBi aWcgbG9jawo+ID4gPiBsb29rcwo+ID4gPiDCoCBsaWtlIGFuIGlzc3VlLCB3aGljaCBpdCBtaWdo dCBpZiB0aGUgZmx1c2hfd20gaG9sZHMgaXQgYWxsIHRoZQo+ID4gPiB3YXkKPiA+ID4gwqAgdGhy b3VnaAo+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiAKPiA+ID4gPiB0aGVuIGR1cmluZyB0aGUgY29t bWl0IHBoYXNlLCB3ZSBsb29wIG92ZXIgdGhlIENSVEMncyB0aHJlZQo+ID4gPiA+IHRpbWVzCj4g PiA+ID4gaW5zdGVhZCBvZiBqdXN0IG9uY2UsIGJ1dCBvbmx5IG9wZXJhdGUgb24gYSBzdWJzZXQg b2YgdGhlCj4gPiA+ID4gQ1JUQydzIGluCj4gPiA+ID4gZWFjaAo+ID4gPiA+IGxvb3AuwqDCoFdo aWxlIG9wZXJhdGluZyBvbiBlYWNoIENSVEMsIHRoZSBwbGFuZSwgV00sIGFuZCBEREIgYWxsCj4g PiA+ID4gZ2V0Cj4gPiA+ID4gcHJvZ3JhbW1lZCB0b2dldGhlciBhbmQgaGF2ZSBhIHNpbmdsZSBm bHVzaCBmb3IgYWxsIHRocmVlLgo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+IAo+ ID4gPiA+IE1hdHQKPiA+ID4gPiAKPiA+ID4gPiBPbiBUdWUsIEp1bCAyNiwgMjAxNiBhdCAwMToz NDozNlBNIC0wNDAwLCBMeXVkZSB3cm90ZToKPiA+ID4gPiA+IAo+ID4gPiA+ID4gCj4gPiA+ID4g PiBMYXRlc3QgdmVyc2lvbiBvZiBodHRwczovL2xrbWwub3JnL2xrbWwvMjAxNi83LzI2LzI5MCAu Cj4gPiA+ID4gPiBSZXNlbmRpbmcKPiA+ID4gPiA+IHRoZSB3aG9sZQo+ID4gPiA+ID4gdGhpbmcg dG8ga2VlcCBpdCBpbiBvbmUgcGxhY2UuCj4gPiA+ID4gPiAKPiA+ID4gPiA+IEx5dWRlICg1KToK PiA+ID4gPiA+IMKgIGRybS9pOTE1L3NrbDogQWRkIHN1cHBvcnQgZm9yIHRoZSBTQUdWLCBmaXgg dW5kZXJydW4gaGFuZ3MKPiA+ID4gPiA+IMKgIGRybS9pOTE1L3NrbDogT25seSBmbHVzaCBwaXBl cyB3aGVuIHdlIGNoYW5nZSB0aGUgZGRiCj4gPiA+ID4gPiBhbGxvY2F0aW9uCj4gPiA+ID4gPiDC oCBkcm0vaTkxNS9za2w6IEZpeCBleHRyYSB3aGl0ZXNwYWNlIGluIHNrbF9mbHVzaF93bV92YWx1 ZXMoKQo+ID4gPiA+ID4gwqAgZHJtL2k5MTUvc2tsOiBVcGRhdGUgcGxhbmUgd2F0ZXJtYXJrcyBh dG9taWNhbGx5IGR1cmluZwo+ID4gPiA+ID4gcGxhbmUKPiA+ID4gPiA+IHVwZGF0ZXMKPiA+ID4g PiA+IMKgIGRybS9pOTE1L3NrbDogQWx3YXlzIHdhaXQgZm9yIHBpcGVzIHRvIHVwZGF0ZSBhZnRl ciBhIGZsdXNoCj4gPiA+ID4gPiAKPiA+ID4gPiA+IE1hdHQgUm9wZXIgKDEpOgo+ID4gPiA+ID4g wqAgZHJtL2k5MTUvZ2VuOTogT25seSBjb3B5IFdNIHJlc3VsdHMgZm9yIGNoYW5nZWQgcGlwZXMg dG8KPiA+ID4gPiA+IHNrbF9odwo+ID4gPiA+ID4gCj4gPiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmjCoMKgwqDCoMKgwqB8wqDCoMKgMyArCj4gPiA+ID4gPiDCoGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmjCoMKgwqDCoMKgwqB8wqDCoMKgNSArCj4gPiA+ID4g PiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8wqDCoDI0ICsrKysKPiA+ ID4gPiA+IMKgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmjCoMKgwqDCoMKgfMKgwqDC oDQgKwo+ID4gPiA+ID4gwqBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jwqDCoMKgwqDC oMKgfCAyNDAKPiA+ID4gPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tCj4g PiA+ID4gPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jwqDCoHzCoMKgwqAy ICsKPiA+ID4gPiA+IMKgNiBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5zZXJ0aW9ucygrKSwgMjMgZGVs ZXRpb25zKC0pCj4gPiA+ID4gPiAKPiA+ID4gPiA+IC0twqAKPiA+ID4gPiA+IDIuNy40Cj4gPiA+ ID4gPiAKPiA+ID4gPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gPiA+ID4gPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gPiA+ID4gPiBJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gPiA+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo+ID4gPiA+IAo+ID4gPiA+IC0twqAK PiA+ID4gPiBNYXR0IFJvcGVyCj4gPiA+ID4gR3JhcGhpY3MgU29mdHdhcmUgRW5naW5lZXIKPiA+ ID4gPiBJb1RHIFBsYXRmb3JtIEVuYWJsaW5nICYgRGV2ZWxvcG1lbnQKPiA+ID4gPiBJbnRlbCBD b3Jwb3JhdGlvbgo+ID4gPiA+ICg5MTYpIDM1Ni0yNzk1Cj4gPiA+IAo+ID4gLS3CoAo+ID4gQ2hl ZXJzLAo+ID4gCUx5dWRlCj4gCi0tIApDaGVlcnMsCglMeXVkZQpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVs LWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752885AbcG2TqS (ORCPT ); Fri, 29 Jul 2016 15:46:18 -0400 Received: from mx1.redhat.com ([209.132.183.28]:52594 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751695AbcG2TqK (ORCPT ); Fri, 29 Jul 2016 15:46:10 -0400 Message-ID: <1469821567.23735.38.camel@redhat.com> Subject: Re: [Intel-gfx] [PATCH v4 0/6] Finally fix watermarks From: Lyude To: Ville =?ISO-8859-1?Q?Syrj=E4l=E4?= Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org Date: Fri, 29 Jul 2016 15:46:07 -0400 In-Reply-To: <20160729192620.GK4329@intel.com> References: <1469554483-24999-1-git-send-email-cpaul@redhat.com> <20160729000352.GR32025@intel.com> <20160729093905.GU4329@intel.com> <1469818089.23735.32.camel@redhat.com> <20160729192620.GK4329@intel.com> Organization: Red Hat Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Fri, 29 Jul 2016 19:46:09 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 2016-07-29 at 22:26 +0300, Ville Syrjälä wrote: > On Fri, Jul 29, 2016 at 02:48:09PM -0400, Lyude wrote: > > > > So I've been working on trying to fix this entirely again (e.g. > > writing > > the ddb properly), since from bug reports it still doesn't sound > > like > > we've got enough workarounds to make this tolerable. I've shown > > this to > > matt roper, but I should probably post what I've been trying to do > > for > > you as well. > > > > So the approach I came up with is here > > > > https://github.com/lyude/linux/tree/wip/skl-fix-wms-v5r2 > > > > My approach differs a little bit from what the bspec recommends, > > but I > > think it's going to be a bit easier to implement. At the end of all > > the > > changes I'm attempting it should look like this: > > > >  * We no longer have a global watermark update for skl > >  * A new hook called "update_ddbs" is added to i915_display_funcs. > > This > >    gets called in intel_atomic_commit_tail() after we've disabled > > any > >    CRTCs that needed disabling, and before we begin > > enabling/updating > >    CRTCs > >  * Because pipe ddb allocations (not the inner-pipe ddb allocations > >    that apply to each pipe's planes) only change while > >    enabling/disabling crtcs: > >     * Pass 1: Find which pipe's new ddb allocation won't overlap > > with > >       another pipe's previous allocation, and update that pipe > > first > >     * Pass 2: Update the allocation of the remaining pipe > > > > Here's an illustration of what this looks like. Parts of the ddb > > not > > being used by any CRTCs are marked out with 'x's: > > > > With pipe A enabled, we enable pipe B: > > Initial DDB:    |           A           | > > update_ddbs:    |     A     |xxxxxxxxxxx| Pass 1 > > Enable pipe B:  |     A     |     B     | > > > > With pipes B and A active, we enable pipe C: > > > > Initial DDB:    |     B     |     A     | > > update_ddbs:    |   B   |xxx|     A     | Pass 1 > > update_ddbs:    |   B   |   A   |xxxxxxx| Pass 2 > > Enable pipe C:  |   B   |   A   |   C   | > > > > With pipes A, B, and C active, we disable B: > > Initial DDB:    |   A   |   B   |   C   | > > Disable pipe B: |   A   |xxxxxxx|   C   | > > update_ddbs:    |     A     |     C     | Pass 1 > > Since neither pipe's new allocation overlapped, we skip pass 2 > > > > Another allocation with A, B, and C active, disabling A: > > Initial DDB:    |   A   |   B   |   C   | > > Disable pipe A: |xxxxxxx|   B   |   C   | > > update_ddbs:    |     B     |xxx|   C   | Pass 1 > > update_ddbs:    |     B     |     C     | Pass 2 > > > > This should ensure we can always move around the allocations of > > pipes > > without them ever overlapping and exploding. > > That's what the current flush thing does, or at least that what it > used > to do at least. Not sure it's really doing it anymore, but I'm pretty > sure the order in which it did things was sound at some point. > > > > > > > This branch doesn't entirely fix underrun issues, but I'm mostly > > sure > > that's the fault of still not having removed the global wm update > > hook > > yet (which is leading to additional pipe flushes in places they > > shouldn't be): > > Well it should basically boil down to s/update_wm/update_ddb/ > Only DDB reallocation really warrants a global hook. Everything else > should be handled via per-crtc hooks, on all platforms. > > > > > > > https://github.com/lyude/linux/tree/wip/skl-fix-wms-v5r2 > > > > As for updating inner-pipe ddb allocations for each plane on a > > pipe, we > > should be able to just do that at the same time we update each > > pipe's > > watermarks > > Yes. > > None of that changes what I said before though. Either you need to > lock down everything when the DDB needs to be repartitioned, or you > do what I outlined in the previous mail. Otherwise a plane update > etc. happening in parallel will still blow up on account of the DDB > state changing underneath the plane update somewhere between compute > and commit. I can't really think of third option that would work. > Bleh! I didn't even realize plane updates could happen in parallel like that. Suddenly your proposal makes a lot more sense... Anyway, your method definitely sounds like the right one. Unless Matt thinks there's something that could go wrong there, I'm going to start working that into the driver and repost the patchset once I've added that into the driver. Cheers, Lyude  > > > > > > Let me know what you think > > Lyude > > > > On Fri, 2016-07-29 at 12:39 +0300, Ville Syrjälä wrote: > > > > > > On Thu, Jul 28, 2016 at 05:03:52PM -0700, Matt Roper wrote: > > > > > > > > > > > > This is completely untested (and probably horribly > > > > broken/buggy), > > > > but > > > > here's a quick mockup of the general approach I was thinking > > > > for > > > > ensuring DDB & WM's can be updated together while ensuring the > > > > three-step pipe flushing process is honored: > > > > > > > >         https://github.com/mattrope/kernel/commits/experimental > > > > /lyu > > > > de_ddb > > > > > > > > Basically the idea is to take note of what's happening to the > > > > pipe's DDB > > > > allocation (shrinking, growing, unchanged, etc.) during the > > > > atomic > > > > check > > > > phase; > > > > > > Didn't look too closely, but I think you can't actually do that > > > unless > > > you lock all the crtcs whenever the number of active pipes is > > > goind > > > to > > > change. Meaning we'd essentially be back to the one-big-modeset- > > > lock > > > apporach, which will cause missed flips and whanot on the other > > > pipes. > > > > > > The alternative I think would consist of: > > > - make sure level 0 watermark never exceeds > > > total_ddb_size/max_pipes, > > >   so that a modeset doesn't have to care about the wms for the > > > other > > >   pipes not fitting in > > > - level 1+ watermarks would be checked against total_ddb_size > > > - protect the plane/pipe commit with the wm mutex whenever the > > > wms > > >   need to be reprogrammed > > > - keep the flush_wm thing around for the case when ddb size does > > > get > > >   changed, protect it with the wm lock > > > - when programming wms, we will first filter out any level that > > >   doesn't fit in with the current ddb size, and then program the > > >   rest in > > > - potentially introduce per-pipe wm locks if the one big lock > > > looks > > >   like an issue, which it might if the flush_wm holds it all the > > > way > > >   through > > > > > > > > > > > > > > > then during the commit phase, we loop over the CRTC's three > > > > times > > > > instead of just once, but only operate on a subset of the > > > > CRTC's in > > > > each > > > > loop.  While operating on each CRTC, the plane, WM, and DDB all > > > > get > > > > programmed together and have a single flush for all three. > > > > > > > > > > > > > > > > > > > > Matt > > > > > > > > On Tue, Jul 26, 2016 at 01:34:36PM -0400, Lyude wrote: > > > > > > > > > > > > > > > Latest version of https://lkml.org/lkml/2016/7/26/290 . > > > > > Resending > > > > > the whole > > > > > thing to keep it in one place. > > > > > > > > > > Lyude (5): > > > > >   drm/i915/skl: Add support for the SAGV, fix underrun hangs > > > > >   drm/i915/skl: Only flush pipes when we change the ddb > > > > > allocation > > > > >   drm/i915/skl: Fix extra whitespace in skl_flush_wm_values() > > > > >   drm/i915/skl: Update plane watermarks atomically during > > > > > plane > > > > > updates > > > > >   drm/i915/skl: Always wait for pipes to update after a flush > > > > > > > > > > Matt Roper (1): > > > > >   drm/i915/gen9: Only copy WM results for changed pipes to > > > > > skl_hw > > > > > > > > > >  drivers/gpu/drm/i915/i915_drv.h      |   3 + > > > > >  drivers/gpu/drm/i915/i915_reg.h      |   5 + > > > > >  drivers/gpu/drm/i915/intel_display.c |  24 ++++ > > > > >  drivers/gpu/drm/i915/intel_drv.h     |   4 + > > > > >  drivers/gpu/drm/i915/intel_pm.c      | 240 > > > > > +++++++++++++++++++++++++++++++---- > > > > >  drivers/gpu/drm/i915/intel_sprite.c  |   2 + > > > > >  6 files changed, 255 insertions(+), 23 deletions(-) > > > > > > > > > > --  > > > > > 2.7.4 > > > > > > > > > > _______________________________________________ > > > > > Intel-gfx mailing list > > > > > Intel-gfx@lists.freedesktop.org > > > > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx > > > > > > > > --  > > > > Matt Roper > > > > Graphics Software Engineer > > > > IoTG Platform Enabling & Development > > > > Intel Corporation > > > > (916) 356-2795 > > > > > --  > > Cheers, > > Lyude > -- Cheers, Lyude