From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v4 1/2] shmem: Support for registration of driver/file owner specific ops Date: Wed, 20 Apr 2016 14:38:11 +0200 Message-ID: <20160420123811.GT2510@phenom.ffwll.local> References: <1459775891-32442-1-git-send-email-chris@chris-wilson.co.uk> <20160415160924.GQ19990@nuc-i3427.alporthouse.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-x231.google.com (mail-wm0-x231.google.com [IPv6:2a00:1450:400c:c09::231]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6126389EA6 for ; Wed, 20 Apr 2016 12:38:16 +0000 (UTC) Received: by mail-wm0-x231.google.com with SMTP id u206so79183301wme.1 for ; Wed, 20 Apr 2016 05:38:16 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20160415160924.GQ19990@nuc-i3427.alporthouse.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org, linux-mm@kvack.org, Akash Goel , linux-kernel@vger.linux.org, Hugh Dickins , Sourab Gupta List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBcHIgMTUsIDIwMTYgYXQgMDU6MDk6MjRQTSArMDEwMCwgQ2hyaXMgV2lsc29uIHdy b3RlOgo+IE9uIE1vbiwgQXByIDA0LCAyMDE2IGF0IDAyOjE4OjEwUE0gKzAxMDAsIENocmlzIFdp bHNvbiB3cm90ZToKPiA+IEZyb206IEFrYXNoIEdvZWwgPGFrYXNoLmdvZWxAaW50ZWwuY29tPgo+ ID4gCj4gPiBUaGlzIHByb3ZpZGVzIHN1cHBvcnQgZm9yIHRoZSBkcml2ZXJzIG9yIHNobWVtIGZp bGUgb3duZXJzIHRvIHJlZ2lzdGVyCj4gPiBhIHNldCBvZiBjYWxsYmFja3MsIHdoaWNoIGNhbiBi ZSBpbnZva2VkIGZyb20gdGhlIGFkZHJlc3Mgc3BhY2UKPiA+IG9wZXJhdGlvbnMgbWV0aG9kcyBp bXBsZW1lbnRlZCBieSBzaG1lbS4gIFRoaXMgYWxsb3cgdGhlIGZpbGUgb3duZXJzIHRvCj4gPiBo b29rIGludG8gdGhlIHNobWVtIGFkZHJlc3Mgc3BhY2Ugb3BlcmF0aW9ucyB0byBkbyBzb21lIGV4 dHJhL2N1c3RvbQo+ID4gb3BlcmF0aW9ucyBpbiBhZGRpdGlvbiB0byB0aGUgZGVmYXVsdCBvbmVz Lgo+ID4gCj4gPiBUaGUgcHJpdmF0ZV9kYXRhIGZpZWxkIG9mIGFkZHJlc3Nfc3BhY2Ugc3RydWN0 IGlzIHVzZWQgdG8gc3RvcmUgdGhlCj4gPiBwb2ludGVyIHRvIGRyaXZlciBzcGVjaWZpYyBvcHMu ICBDdXJyZW50bHkgb25seSBvbmUgb3BzIGZpZWxkIGlzIGRlZmluZWQsCj4gPiB3aGljaCBpcyBt aWdyYXRlcGFnZSwgYnV0IGNhbiBiZSBleHRlbmRlZCBvbiBhbiBhcy1uZWVkZWQgYmFzaXMuCj4g PiAKPiA+IFRoZSBuZWVkIGZvciBkcml2ZXIgc3BlY2lmaWMgb3BlcmF0aW9ucyBhcmlzZXMgc2lu Y2Ugc29tZSBvZiB0aGUKPiA+IG9wZXJhdGlvbnMgKGxpa2UgbWlncmF0ZXBhZ2UpIG1heSBub3Qg YmUgaGFuZGxlZCBjb21wbGV0ZWx5IHdpdGhpbiBzaG1lbSwKPiA+IHNvIGFzIHRvIGJlIGVmZmVj dGl2ZSwgYW5kIHdvdWxkIG5lZWQgc29tZSBkcml2ZXIgc3BlY2lmaWMgaGFuZGxpbmcgYWxzby4K PiA+IFNwZWNpZmljYWxseSwgaTkxNS5rbyB3b3VsZCBsaWtlIHRvIHBhcnRpY2lwYXRlIGluIG1p Z3JhdGVwYWdlKCkuCj4gPiBpOTE1LmtvIHVzZXMgc2htZW1mcyB0byBwcm92aWRlIHN3YXBwYWJs ZSBiYWNraW5nIHN0b3JhZ2UgZm9yIGl0cyB1c2VyCj4gPiBvYmplY3RzLCBidXQgd2hlbiB0aG9z ZSBvYmplY3RzIGFyZSBpbiB1c2UgYnkgdGhlIEdQVSBpdCBtdXN0IHBpbiB0aGUKPiA+IGVudGly ZSBvYmplY3QgdW50aWwgdGhlIEdQVSBpcyBpZGxlLiAgQXMgYSByZXN1bHQsIGxhcmdlIGNodW5r cyBvZiBtZW1vcnkKPiA+IGNhbiBiZSBhcmJpdHJhcmlseSB3aXRoZHJhd24gZnJvbSBwYWdlIG1p Z3JhdGlvbiwgcmVzdWx0aW5nIGluIHByZW1hdHVyZQo+ID4gb3V0LW9mLW1lbW9yeSBkdWUgdG8g ZnJhZ21lbnRhdGlvbi4gIEhvd2V2ZXIsIGlmIGk5MTUua28gY2FuIHJlY2VpdmUgdGhlCj4gPiBt aWdyYXRlcGFnZSgpIHJlcXVlc3QsIGl0IGNhbiB0aGVuIGZsdXNoIHRoZSBvYmplY3QgZnJvbSB0 aGUgR1BVLCByZW1vdmUKPiA+IGl0cyBwaW4gYW5kIHRodXMgZW5hYmxlIHRoZSBtaWdyYXRpb24u Cj4gPiAKPiA+IFNpbmNlIGdmeCBhbGxvY2F0aW9ucyBhcmUgb25lIG9mIHRoZSBtYWpvciBjb25z dW1lciBvZiBzeXN0ZW0gbWVtb3J5LCBpdHMKPiA+IGltcGVyYXRpdmUgdG8gaGF2ZSBzdWNoIGEg bWVjaGFuaXNtIHRvIGVmZmVjdGl2ZWx5IGRlYWwgd2l0aAo+ID4gZnJhZ21lbnRhdGlvbi4gIEFu ZCB0aGVyZWZvcmUgdGhlIG5lZWQgZm9yIHN1Y2ggYSBwcm92aXNpb24gZm9yIGluaXRpYXRpbmcK PiA+IGRyaXZlciBzcGVjaWZpYyBhY3Rpb25zIGR1cmluZyBhZGRyZXNzIHNwYWNlIG9wZXJhdGlv bnMuCj4gPiAKPiA+IENjOiBIdWdoIERpY2tpbnMgPGh1Z2hkQGdvb2dsZS5jb20+Cj4gPiBDYzog bGludXgtbW1Aa3ZhY2sub3JnCj4gPiBDYzogbGludXgta2VybmVsQHZnZXIubGludXgub3JnCj4g PiBTaWduZWQtb2ZmLWJ5OiBTb3VyYWIgR3VwdGEgPHNvdXJhYi5ndXB0YUBpbnRlbC5jb20+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBBa2FzaCBHb2VsIDxha2FzaC5nb2VsQGludGVsLmNvbT4KPiA+IFJl dmlld2VkLWJ5OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAKPiBQ aW5nPwoKVGhpcyBhZGRyZXNzZXMgYSBsb25nLXN0YW5kaW5nIGlzc3VlIHdlIGhhdmUgaW4gaTkx NSBnZW0gb2YgZXNzZW50aWFsbHkKcGlubmluZyB3YXkgdG8gbXVjaCBtZW1vcnkgYXMgdW5tb3Zl YWJsZS4gV291bGQgYmUgbmljZSB0byBnZXQgdGhpcwptZXJnZWQuIEl0IGFsc28gZG9lcyBzZWVt IHRvIGZpeCBzb21lIHJlYWwtd29ybGQgaXNzdWVzIHdlJ3JlIHNlZWluZwoobGlua2VkIGZyb20g dGhlIGk5MTUgcGF0Y2gpLgoKQ2FuIEkgaGF2ZSBhY2tzL3Jldmlld3MgZnJvbSAtbW0gZm9sa3Mg dG8gZ2V0IHRoaXMgaW4gdGhyb3VnaCBkcm0gdHJlZXMKcGxlYXNlPwoKVGhhbmtzLCBEYW5pZWwK Cj4gCj4gPiAtLS0KPiA+ICBpbmNsdWRlL2xpbnV4L3NobWVtX2ZzLmggfCAxNyArKysrKysrKysr KysrKysrKwo+ID4gIG1tL3NobWVtLmMgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKysr KystCj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0p Cj4gPiAKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L3NobWVtX2ZzLmggYi9pbmNsdWRl L2xpbnV4L3NobWVtX2ZzLmgKPiA+IGluZGV4IDRkNDc4MGMwMGQzNC4uZDc5MjViNjZjMjQwIDEw MDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9saW51eC9zaG1lbV9mcy5oCj4gPiArKysgYi9pbmNsdWRl L2xpbnV4L3NobWVtX2ZzLmgKPiA+IEBAIC0zNCwxMSArMzQsMjggQEAgc3RydWN0IHNobWVtX3Ni X2luZm8gewo+ID4gIAlzdHJ1Y3QgbWVtcG9saWN5ICptcG9sOyAgICAgLyogZGVmYXVsdCBtZW1v cnkgcG9saWN5IGZvciBtYXBwaW5ncyAqLwo+ID4gIH07Cj4gPiAgCj4gPiArc3RydWN0IHNobWVt X2Rldl9pbmZvIHsKPiA+ICsJdm9pZCAqZGV2X3ByaXZhdGVfZGF0YTsKPiA+ICsJaW50ICgqZGV2 X21pZ3JhdGVwYWdlKShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKPiA+ICsJCQkgICAg ICAgc3RydWN0IHBhZ2UgKm5ld3BhZ2UsIHN0cnVjdCBwYWdlICpwYWdlLAo+ID4gKwkJCSAgICAg ICBlbnVtIG1pZ3JhdGVfbW9kZSBtb2RlLCB2b2lkICpkZXZfcHJpdl9kYXRhKTsKPiA+ICt9Owo+ ID4gKwo+ID4gIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNobWVtX2lub2RlX2luZm8gKlNITUVNX0ko c3RydWN0IGlub2RlICppbm9kZSkKPiA+ICB7Cj4gPiAgCXJldHVybiBjb250YWluZXJfb2YoaW5v ZGUsIHN0cnVjdCBzaG1lbV9pbm9kZV9pbmZvLCB2ZnNfaW5vZGUpOwo+ID4gIH0KPiA+ICAKPiA+ ICtzdGF0aWMgaW5saW5lIGludCBzaG1lbV9zZXRfZGV2aWNlX29wcyhzdHJ1Y3QgYWRkcmVzc19z cGFjZSAqbWFwcGluZywKPiA+ICsJCQkJICAgICAgIHN0cnVjdCBzaG1lbV9kZXZfaW5mbyAqaW5m bykKPiA+ICt7Cj4gPiArCWlmIChtYXBwaW5nLT5wcml2YXRlX2RhdGEgIT0gTlVMTCkKPiA+ICsJ CXJldHVybiAtRUVYSVNUOwo+ID4gKwo+ID4gKwltYXBwaW5nLT5wcml2YXRlX2RhdGEgPSBpbmZv Owo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiAgLyoKPiA+ICAgKiBGdW5jdGlvbnMg aW4gbW0vc2htZW0uYyBjYWxsZWQgZGlyZWN0bHkgZnJvbSBlbHNld2hlcmU6Cj4gPiAgICovCj4g PiBkaWZmIC0tZ2l0IGEvbW0vc2htZW0uYyBiL21tL3NobWVtLmMKPiA+IGluZGV4IDk0MjhjNTFh YjJkNi4uNmVkOTUzMTkzODgzIDEwMDY0NAo+ID4gLS0tIGEvbW0vc2htZW0uYwo+ID4gKysrIGIv bW0vc2htZW0uYwo+ID4gQEAgLTk0Nyw2ICs5NDcsMjEgQEAgcmVkaXJ0eToKPiA+ICAJcmV0dXJu IDA7Cj4gPiAgfQo+ID4gIAo+ID4gKyNpZmRlZiBDT05GSUdfTUlHUkFUSU9OCj4gPiArc3RhdGlj IGludCBzaG1lbV9taWdyYXRlcGFnZShzdHJ1Y3QgYWRkcmVzc19zcGFjZSAqbWFwcGluZywKPiA+ ICsJCQkgICAgIHN0cnVjdCBwYWdlICpuZXdwYWdlLCBzdHJ1Y3QgcGFnZSAqcGFnZSwKPiA+ICsJ CQkgICAgIGVudW0gbWlncmF0ZV9tb2RlIG1vZGUpCj4gPiArewo+ID4gKwlzdHJ1Y3Qgc2htZW1f ZGV2X2luZm8gKmRldl9pbmZvID0gbWFwcGluZy0+cHJpdmF0ZV9kYXRhOwo+ID4gKwo+ID4gKwlp ZiAoZGV2X2luZm8gJiYgZGV2X2luZm8tPmRldl9taWdyYXRlcGFnZSkKPiA+ICsJCXJldHVybiBk ZXZfaW5mby0+ZGV2X21pZ3JhdGVwYWdlKG1hcHBpbmcsIG5ld3BhZ2UsIHBhZ2UsCj4gPiArCQkJ CW1vZGUsIGRldl9pbmZvLT5kZXZfcHJpdmF0ZV9kYXRhKTsKPiA+ICsKPiA+ICsJcmV0dXJuIG1p Z3JhdGVfcGFnZShtYXBwaW5nLCBuZXdwYWdlLCBwYWdlLCBtb2RlKTsKPiA+ICt9Cj4gPiArI2Vu ZGlmCj4gPiArCj4gPiAgI2lmZGVmIENPTkZJR19OVU1BCj4gPiAgI2lmZGVmIENPTkZJR19UTVBG Uwo+ID4gIHN0YXRpYyB2b2lkIHNobWVtX3Nob3dfbXBvbChzdHJ1Y3Qgc2VxX2ZpbGUgKnNlcSwg c3RydWN0IG1lbXBvbGljeSAqbXBvbCkKPiA+IEBAIC0zMTYxLDcgKzMxNzYsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGFkZHJlc3Nfc3BhY2Vfb3BlcmF0aW9ucyBzaG1lbV9hb3BzID0gewo+ID4g IAkud3JpdGVfZW5kCT0gc2htZW1fd3JpdGVfZW5kLAo+ID4gICNlbmRpZgo+ID4gICNpZmRlZiBD T05GSUdfTUlHUkFUSU9OCj4gPiAtCS5taWdyYXRlcGFnZQk9IG1pZ3JhdGVfcGFnZSwKPiA+ICsJ Lm1pZ3JhdGVwYWdlCT0gc2htZW1fbWlncmF0ZXBhZ2UsCj4gPiAgI2VuZGlmCj4gPiAgCS5lcnJv cl9yZW1vdmVfcGFnZSA9IGdlbmVyaWNfZXJyb3JfcmVtb3ZlX3BhZ2UsCj4gPiAgfTsKPiAKPiAt LSAKPiBDaHJpcyBXaWxzb24sIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudHJlCj4g Cj4gLS0KPiBUbyB1bnN1YnNjcmliZSwgc2VuZCBhIG1lc3NhZ2Ugd2l0aCAndW5zdWJzY3JpYmUg bGludXgtbW0nIGluCj4gdGhlIGJvZHkgdG8gbWFqb3Jkb21vQGt2YWNrLm9yZy4gIEZvciBtb3Jl IGluZm8gb24gTGludXggTU0sCj4gc2VlOiBodHRwOi8vd3d3LmxpbnV4LW1tLm9yZy8gLgo+IERv bid0IGVtYWlsOiA8YSBocmVmPW1haWx0bzoiZG9udEBrdmFjay5vcmciPiBlbWFpbEBrdmFjay5v cmcgPC9hPgoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBv cmF0aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-f69.google.com (mail-wm0-f69.google.com [74.125.82.69]) by kanga.kvack.org (Postfix) with ESMTP id EF2F36B0274 for ; Wed, 20 Apr 2016 08:38:16 -0400 (EDT) Received: by mail-wm0-f69.google.com with SMTP id w143so34038315wmw.2 for ; Wed, 20 Apr 2016 05:38:16 -0700 (PDT) Received: from mail-wm0-x22d.google.com (mail-wm0-x22d.google.com. [2a00:1450:400c:c09::22d]) by mx.google.com with ESMTPS id qa9si5825564wjc.112.2016.04.20.05.38.14 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 20 Apr 2016 05:38:15 -0700 (PDT) Received: by mail-wm0-x22d.google.com with SMTP id e201so48954416wme.0 for ; Wed, 20 Apr 2016 05:38:14 -0700 (PDT) Date: Wed, 20 Apr 2016 14:38:11 +0200 From: Daniel Vetter Subject: Re: [Intel-gfx] [PATCH v4 1/2] shmem: Support for registration of driver/file owner specific ops Message-ID: <20160420123811.GT2510@phenom.ffwll.local> References: <1459775891-32442-1-git-send-email-chris@chris-wilson.co.uk> <20160415160924.GQ19990@nuc-i3427.alporthouse.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160415160924.GQ19990@nuc-i3427.alporthouse.com> Sender: owner-linux-mm@kvack.org List-ID: To: Chris Wilson , intel-gfx@lists.freedesktop.org, linux-mm@kvack.org, Akash Goel , linux-kernel@vger.linux.org, Hugh Dickins , Sourab Gupta On Fri, Apr 15, 2016 at 05:09:24PM +0100, Chris Wilson wrote: > On Mon, Apr 04, 2016 at 02:18:10PM +0100, Chris Wilson wrote: > > From: Akash Goel > > > > This provides support for the drivers or shmem file owners to register > > a set of callbacks, which can be invoked from the address space > > operations methods implemented by shmem. This allow the file owners to > > hook into the shmem address space operations to do some extra/custom > > operations in addition to the default ones. > > > > The private_data field of address_space struct is used to store the > > pointer to driver specific ops. Currently only one ops field is defined, > > which is migratepage, but can be extended on an as-needed basis. > > > > The need for driver specific operations arises since some of the > > operations (like migratepage) may not be handled completely within shmem, > > so as to be effective, and would need some driver specific handling also. > > Specifically, i915.ko would like to participate in migratepage(). > > i915.ko uses shmemfs to provide swappable backing storage for its user > > objects, but when those objects are in use by the GPU it must pin the > > entire object until the GPU is idle. As a result, large chunks of memory > > can be arbitrarily withdrawn from page migration, resulting in premature > > out-of-memory due to fragmentation. However, if i915.ko can receive the > > migratepage() request, it can then flush the object from the GPU, remove > > its pin and thus enable the migration. > > > > Since gfx allocations are one of the major consumer of system memory, its > > imperative to have such a mechanism to effectively deal with > > fragmentation. And therefore the need for such a provision for initiating > > driver specific actions during address space operations. > > > > Cc: Hugh Dickins > > Cc: linux-mm@kvack.org > > Cc: linux-kernel@vger.linux.org > > Signed-off-by: Sourab Gupta > > Signed-off-by: Akash Goel > > Reviewed-by: Chris Wilson > > Ping? This addresses a long-standing issue we have in i915 gem of essentially pinning way to much memory as unmoveable. Would be nice to get this merged. It also does seem to fix some real-world issues we're seeing (linked from the i915 patch). Can I have acks/reviews from -mm folks to get this in through drm trees please? Thanks, Daniel > > > --- > > include/linux/shmem_fs.h | 17 +++++++++++++++++ > > mm/shmem.c | 17 ++++++++++++++++- > > 2 files changed, 33 insertions(+), 1 deletion(-) > > > > diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h > > index 4d4780c00d34..d7925b66c240 100644 > > --- a/include/linux/shmem_fs.h > > +++ b/include/linux/shmem_fs.h > > @@ -34,11 +34,28 @@ struct shmem_sb_info { > > struct mempolicy *mpol; /* default memory policy for mappings */ > > }; > > > > +struct shmem_dev_info { > > + void *dev_private_data; > > + int (*dev_migratepage)(struct address_space *mapping, > > + struct page *newpage, struct page *page, > > + enum migrate_mode mode, void *dev_priv_data); > > +}; > > + > > static inline struct shmem_inode_info *SHMEM_I(struct inode *inode) > > { > > return container_of(inode, struct shmem_inode_info, vfs_inode); > > } > > > > +static inline int shmem_set_device_ops(struct address_space *mapping, > > + struct shmem_dev_info *info) > > +{ > > + if (mapping->private_data != NULL) > > + return -EEXIST; > > + > > + mapping->private_data = info; > > + return 0; > > +} > > + > > /* > > * Functions in mm/shmem.c called directly from elsewhere: > > */ > > diff --git a/mm/shmem.c b/mm/shmem.c > > index 9428c51ab2d6..6ed953193883 100644 > > --- a/mm/shmem.c > > +++ b/mm/shmem.c > > @@ -947,6 +947,21 @@ redirty: > > return 0; > > } > > > > +#ifdef CONFIG_MIGRATION > > +static int shmem_migratepage(struct address_space *mapping, > > + struct page *newpage, struct page *page, > > + enum migrate_mode mode) > > +{ > > + struct shmem_dev_info *dev_info = mapping->private_data; > > + > > + if (dev_info && dev_info->dev_migratepage) > > + return dev_info->dev_migratepage(mapping, newpage, page, > > + mode, dev_info->dev_private_data); > > + > > + return migrate_page(mapping, newpage, page, mode); > > +} > > +#endif > > + > > #ifdef CONFIG_NUMA > > #ifdef CONFIG_TMPFS > > static void shmem_show_mpol(struct seq_file *seq, struct mempolicy *mpol) > > @@ -3161,7 +3176,7 @@ static const struct address_space_operations shmem_aops = { > > .write_end = shmem_write_end, > > #endif > > #ifdef CONFIG_MIGRATION > > - .migratepage = migrate_page, > > + .migratepage = shmem_migratepage, > > #endif > > .error_remove_page = generic_error_remove_page, > > }; > > -- > Chris Wilson, Intel Open Source Technology Centre > > -- > To unsubscribe, send a message with 'unsubscribe linux-mm' in > the body to majordomo@kvack.org. For more info on Linux MM, > see: http://www.linux-mm.org/ . > Don't email: email@kvack.org -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: email@kvack.org