From mboxrd@z Thu Jan 1 00:00:00 1970 From: ankitprasad.r.sharma@intel.com Subject: [PATCH 3/4] drm/i915: Add support for stealing purgable stolen pages Date: Wed, 1 Jul 2015 14:55:46 +0530 Message-ID: <1435742747-3782-4-git-send-email-ankitprasad.r.sharma@intel.com> References: <1435742747-3782-1-git-send-email-ankitprasad.r.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id F17D87A006 for ; Wed, 1 Jul 2015 02:39:45 -0700 (PDT) In-Reply-To: <1435742747-3782-1-git-send-email-ankitprasad.r.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: akash.goel@intel.com, shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org RnJvbTogQ2hyaXMgV2lsc29uIDxjaHJpcyBhdCBjaHJpcy13aWxzb24uY28udWs+CgpJZiB3ZSBy dW4gb3V0IG9mIHN0b2xlbiBtZW1vcnkgd2hlbiB0cnlpbmcgdG8gYWxsb2NhdGUgYW4gb2JqZWN0 LCBzZWUgaWYKd2UgY2FuIHJlYXAgZW5vdWdoIHB1cmdlYWJsZSBvYmplY3RzIHRvIGZyZWUgdXAg ZW5vdWdoIGNvbnRpZ3VvdXMgZnJlZQpzcGFjZSBmb3IgdGhlIGFsbG9jYXRpb24uIFRoaXMgaXMg aW4gcHJpbmNpcGxlIHZlcnkgbXVjaCBsaWtlIGV2aWN0aW5nCm9iamVjdHMgdG8gZnJlZSB1cCBl bm91Z2ggY29udGlndW91cyBzcGFjZSBpbiB0aGUgdm1hIHdoZW4gYmluZGluZwphIG5ldyBvYmpl Y3QgLSBhbmQgeW91IHdpbGwgYmUgZm9yZ2l2ZW4gZm9yIHRoaW5raW5nIHRoYXQgdGhlIGNvZGUg bG9va3MKdmVyeSBzaW1pbGFyLgoKQXQgdGhlIG1vbWVudCwgd2UgZG8gbm90IGFsbG93IHVzZXJz cGFjZSB0byBhbGxvY2F0ZSBvYmplY3RzIGluIHN0b2xlbiwKc28gdGhlcmUgaXMgbmVpdGhlciB0 aGUgbWVtb3J5IHByZXNzdXJlIHRvIHRyaWdnZXIgc3RvbGVuIGV2aWN0aW9uIG5vcgphbnkgcHVy Z2VhYmxlIG9iamVjdHMgaW5zaWRlIHRoZSBzdG9sZW4gYXJlbmEuIEhvd2V2ZXIsIHRoaXMgd2ls bCBjaGFuZ2UKaW4gdGhlIG5lYXIgZnV0dXJlLCBhbmQgc28gYmV0dGVyIG1hbmFnZW1lbnQgYW5k IGRlZnJhZ21lbnRhdGlvbiBvZgpzdG9sZW4gbWVtb3J5IHdpbGwgYmVjb21lIGEgcmVhbCBpc3N1 ZS4KCnYyOiBSZW1lbWJlciB0byByZW1vdmUgdGhlIGRybV9tbV9ub2RlLgoKdjM6IFJlYmFzZWQg dG8gdGhlIGxhdGVzdCBkcm0taW50ZWwtbmlnaHRseSAoQW5raXQpCgp0ZXN0Y2FzZTogaWd0L2dl bV9zdG9sZW4KClNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXMgYXQgY2hyaXMtd2ls c29uLmNvLnVrPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIHwg MTIxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQogMSBmaWxlIGNoYW5nZWQsIDEx MCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf Z2VtX3N0b2xlbi5jCmluZGV4IDM0OGVkNWEuLjdlMjE2YmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZ2VtX3N0b2xlbi5jCkBAIC00MzAsMTggKzQzMCwyOSBAQCBjbGVhbnVwOgogCXJldHVy biBOVUxMOwogfQogCi1zdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCi1pOTE1X2dlbV9vYmpl Y3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB1MzIgc2l6ZSkKK3N0YXRp YyBib29sIG1hcmtfZnJlZShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCBzdHJ1Y3Qg bGlzdF9oZWFkICp1bndpbmQpCit7CisJaWYgKG9iai0+c3RvbGVuID09IE5VTEwpCisJCXJldHVy biBmYWxzZTsKKworCWlmIChvYmotPm1hZHYgIT0gSTkxNV9NQURWX0RPTlRORUVEKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlpZiAoaTkxNV9nZW1fb2JqX2lzX3Bpbm5lZChvYmopKQorCQlyZXR1cm4g ZmFsc2U7CisKKwlsaXN0X2FkZCgmb2JqLT5vYmpfZXhlY19saW5rLCB1bndpbmQpOworCXJldHVy biBkcm1fbW1fc2Nhbl9hZGRfYmxvY2sob2JqLT5zdG9sZW4pOworfQorCitzdGF0aWMgc3RydWN0 IGRybV9tbV9ub2RlICoKK3N0b2xlbl9hbGxvYyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIHUzMiBzaXplKQogewotCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Ci0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAlz dHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbjsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqOworCXN0cnVjdCBsaXN0X2hlYWQgdW53aW5kLCBldmljdDsKIAlpbnQgcmV0OwogCi0JaWYg KCFkcm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQotCQlyZXR1cm4gTlVM TDsKLQotCURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9JXhcbiIs IHNpemUpOwogCWlmIChzaXplID09IDApCiAJCXJldHVybiBOVUxMOwogCkBAIC00NTEsMTEgKzQ2 Miw5OSBAQCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB1MzIgc2l6ZSkKIAogCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZSgmZGV2X3ByaXYtPm1t LnN0b2xlbiwgc3RvbGVuLCBzaXplLAogCQkJCSA0MDk2LCBEUk1fTU1fU0VBUkNIX0RFRkFVTFQp OwotCWlmIChyZXQpIHsKLQkJa2ZyZWUoc3RvbGVuKTsKLQkJcmV0dXJuIE5VTEw7CisJaWYgKHJl dCA9PSAwKQorCQlyZXR1cm4gc3RvbGVuOworCisJLyogTm8gbW9yZSBzdG9sZW4gbWVtb3J5IGF2 YWlsYWJsZSwgb3IgdG9vIGZyYWdtZW50ZWQuCisJICogVHJ5IGV2aWN0aW5nIHB1cmdlYWJsZSBv YmplY3RzIGFuZCBzZWFyY2ggYWdhaW4uCisJICovCisKKwlkcm1fbW1faW5pdF9zY2FuKCZkZXZf cHJpdi0+bW0uc3RvbGVuLCBzaXplLCA0MDk2LCAwKTsKKwlJTklUX0xJU1RfSEVBRCgmdW53aW5k KTsKKworCWxpc3RfZm9yX2VhY2hfZW50cnkob2JqLCAmZGV2X3ByaXYtPm1tLnVuYm91bmRfbGlz dCwgZ2xvYmFsX2xpc3QpCisJCWlmIChtYXJrX2ZyZWUob2JqLCAmdW53aW5kKSkKKwkJCWdvdG8g Zm91bmQ7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KG9iaiwgJmRldl9wcml2LT5tbS5ib3VuZF9s aXN0LCBnbG9iYWxfbGlzdCkKKwkJaWYgKG1hcmtfZnJlZShvYmosICZ1bndpbmQpKQorCQkJZ290 byBmb3VuZDsKKworZm91bmQ6CisJSU5JVF9MSVNUX0hFQUQoJmV2aWN0KTsKKwl3aGlsZSAoIWxp c3RfZW1wdHkoJnVud2luZCkpIHsKKwkJb2JqID0gbGlzdF9maXJzdF9lbnRyeSgmdW53aW5kLAor CQkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwKKwkJCQkgICAgICAgb2JqX2V4 ZWNfbGluayk7CisJCWxpc3RfZGVsX2luaXQoJm9iai0+b2JqX2V4ZWNfbGluayk7CisKKwkJaWYg KGRybV9tbV9zY2FuX3JlbW92ZV9ibG9jayhvYmotPnN0b2xlbikpIHsKKwkJCWxpc3RfYWRkKCZv YmotPm9ial9leGVjX2xpbmssICZldmljdCk7CisJCQlkcm1fZ2VtX29iamVjdF9yZWZlcmVuY2Uo Jm9iai0+YmFzZSk7CisJCX0KIAl9CiAKKwlyZXQgPSAwOworCXdoaWxlICghbGlzdF9lbXB0eSgm ZXZpY3QpKSB7CisJCW9iaiA9IGxpc3RfZmlyc3RfZW50cnkoJmV2aWN0LAorCQkJCSAgICAgICBz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwKKwkJCQkgICAgICAgb2JqX2V4ZWNfbGluayk7CisJ CWxpc3RfZGVsX2luaXQoJm9iai0+b2JqX2V4ZWNfbGluayk7CisKKwkJaWYgKHJldCA9PSAwKSB7 CisJCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKnZtYV9uZXh0OworCisJCQlsaXN0X2Zvcl9lYWNo X2VudHJ5X3NhZmUodm1hLCB2bWFfbmV4dCwKKwkJCQkJCSAmb2JqLT52bWFfbGlzdCwKKwkJCQkJ CSB2bWFfbGluaykKKwkJCQlpZiAoaTkxNV92bWFfdW5iaW5kKHZtYSkpCisJCQkJCWJyZWFrOwor CisJCQkvKiBTdG9sZW4gcGlucyBpdHMgcGFnZXMgdG8gcHJldmVudCB0aGUKKwkJCSAqIG5vcm1h bCBzaHJpbmtlciBmcm9tIHByb2Nlc3Npbmcgc3RvbGVuCisJCQkgKiBvYmplY3RzLgorCQkJICov CisJCQlpOTE1X2dlbV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKKworCQkJcmV0ID0gaTkxNV9n ZW1fb2JqZWN0X3B1dF9wYWdlcyhvYmopOworCQkJaWYgKHJldCA9PSAwKSB7CisJCQkJaTkxNV9n ZW1fb2JqZWN0X3JlbGVhc2Vfc3RvbGVuKG9iaik7CisJCQkJb2JqLT5tYWR2ID0gX19JOTE1X01B RFZfUFVSR0VEOworCQkJfSBlbHNlCisJCQkJaTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmop OworCQl9CisKKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7CisJfQor CisJaWYgKHJldCA9PSAwKQorCQlyZXQgPSBkcm1fbW1faW5zZXJ0X25vZGUoJmRldl9wcml2LT5t bS5zdG9sZW4sIHN0b2xlbiwgc2l6ZSwKKwkJCQkJIDQwOTYsIERSTV9NTV9TRUFSQ0hfREVGQVVM VCk7CisJaWYgKHJldCA9PSAwKQorCQlyZXR1cm4gc3RvbGVuOworCisJa2ZyZWUoc3RvbGVuKTsK KwlyZXR1cm4gTlVMTDsKK30KKworc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgoraTkxNV9n ZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIHNpemUp Cit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOworCXN0cnVjdCBkcm1fbW1fbm9k ZSAqc3RvbGVuOworCisJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwor CisJaWYgKCFkcm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQorCQlyZXR1 cm4gTlVMTDsKKworCURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmplY3Q6IHNpemU9 JXhcbiIsIHNpemUpOworCisJc3RvbGVuID0gc3RvbGVuX2FsbG9jKGRldl9wcml2LCBzaXplKTsK KwlpZiAoc3RvbGVuID09IE5VTEwpCisJCXJldHVybiBOVUxMOworCiAJb2JqID0gX2k5MTVfZ2Vt X29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgc3RvbGVuKTsKIAlpZiAob2JqKQogCQlyZXR1cm4g b2JqOwotLSAKMS45LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwt Z2Z4Cg==