Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1193566 > unrolled thread

hugetlb pages not accounted for in rss

Started byMike Kravetz <mike.kravetz@oracle.com>
First post2015-07-28 01:30 +0200
Last post2015-08-12 01:50 +0200
Articles 20 on this page of 32 — 5 participants

Back to article view | Back to linux.kernel


Contents

  hugetlb pages not accounted for in rss Mike Kravetz <mike.kravetz@oracle.com> - 2015-07-28 01:30 +0200
    Re: hugetlb pages not accounted for in rss Mike Kravetz <mike.kravetz@oracle.com> - 2015-07-28 23:20 +0200
      Re: hugetlb pages not accounted for in rss Jörn Engel <joern@purestorage.com> - 2015-07-29 03:00 +0200
        Re: hugetlb pages not accounted for in rss Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-04 05:00 +0200
          [PATCH] smaps: fill missing fields for vma(VM_HUGETLB) Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-04 07:20 +0200
            Re: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB) Jörn Engel <joern@purestorage.com> - 2015-08-04 20:30 +0200
              Re: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB) David Rientjes <rientjes@google.com> - 2015-08-06 04:20 +0200
                Re: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB) Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-06 09:50 +0200
                  [PATCH v2 0/2] hugetlb: display per-process/per-vma usage Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-07 09:30 +0200
                    [PATCH v2 2/2] mm: hugetlb: add VmHugetlbRSS: field in  /proc/pid/status Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-07 09:30 +0200
                      Re: [PATCH v2 2/2] mm: hugetlb: add VmHugetlbRSS: field in  /proc/pid/status Andrew Morton <akpm@linux-foundation.org> - 2015-08-08 01:00 +0200
                        [PATCH v3 3/3] Documentation/filesystems/proc.txt: document hugetlb  RSS Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-10 02:50 +0200
                          Re: [PATCH v3 3/3] Documentation/filesystems/proc.txt: document  hugetlb RSS David Rientjes <rientjes@google.com> - 2015-08-11 02:50 +0200
                            Re: [PATCH v3 3/3] Documentation/filesystems/proc.txt: document  hugetlb RSS Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-12 02:10 +0200
                              [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/status Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-12 09:50 +0200
                                Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/status David Rientjes <rientjes@google.com> - 2015-08-12 22:40 +0200
                                  Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/status Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-13 02:50 +0200
                                    Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/status Jörn Engel <joern@purestorage.com> - 2015-08-13 23:20 +0200
                                  Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/status Jörn Engel <joern@purestorage.com> - 2015-08-13 23:20 +0200
                                  Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/status David Rientjes <rientjes@google.com> - 2015-08-17 23:30 +0200
                              [PATCH v4 1/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/smaps Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-12 09:50 +0200
                                Re: [PATCH v4 1/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/smaps David Rientjes <rientjes@google.com> - 2015-08-12 22:30 +0200
                                  Re: [PATCH v4 1/2] mm: hugetlb: proc: add HugetlbPages field to  /proc/PID/smaps Jörn Engel <joern@purestorage.com> - 2015-08-13 23:20 +0200
                        [PATCH v3 2/3] mm: hugetlb: add VmHugetlbRSS: field in  /proc/pid/status Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-10 02:50 +0200
                          Re: [PATCH v3 2/3] mm: hugetlb: add VmHugetlbRSS: field in  /proc/pid/status Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-10 03:20 +0200
                        [PATCH v3 1/3] smaps: fill missing fields for vma(VM_HUGETLB) Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-10 02:50 +0200
                        Re: [PATCH v2 2/2] mm: hugetlb: add VmHugetlbRSS: field in  /proc/pid/status Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-10 02:50 +0200
                    [PATCH v2 1/2] smaps: fill missing fields for vma(VM_HUGETLB) Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-07 09:30 +0200
                      Re: [PATCH v2 1/2] smaps: fill missing fields for vma(VM_HUGETLB) Andrew Morton <akpm@linux-foundation.org> - 2015-08-08 01:00 +0200
                      Re: [PATCH v2 1/2] smaps: fill missing fields for vma(VM_HUGETLB) David Rientjes <rientjes@google.com> - 2015-08-11 02:40 +0200
                        Re: [PATCH v2 1/2] smaps: fill missing fields for vma(VM_HUGETLB) Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> - 2015-08-12 01:40 +0200
                          Re: [PATCH v2 1/2] smaps: fill missing fields for vma(VM_HUGETLB) David Rientjes <rientjes@google.com> - 2015-08-12 01:50 +0200

Page 1 of 2  [1] 2  Next page →


#1193566 — hugetlb pages not accounted for in rss

FromMike Kravetz <mike.kravetz@oracle.com>
Date2015-07-28 01:30 +0200
Subjecthugetlb pages not accounted for in rss
Message-ID<pR00h-8jZ-3@gated-at.bofh.it>
I started looking at the hugetlb self tests.  The test hugetlbfstest
expects hugetlb pages to be accounted for in rss.  However, there is
no code in the kernel to do this accounting.

It looks like there was an effort to add the accounting back in 2013.
The test program made it into tree, but the accounting code did not.

The easiest way to resolve this issue would be to remove the test and
perhaps document that hugetlb pages are not accounted for in rss.
However, it does seem like a big oversight that hugetlb pages are not
accounted for in rss.  From a quick scan of the code it appears THP
pages are properly accounted for.

Thoughts?
-- 
Mike Kravetz
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1194675

FromMike Kravetz <mike.kravetz@oracle.com>
Date2015-07-28 23:20 +0200
Message-ID<pRks2-4ju-11@gated-at.bofh.it>
In reply to#1193566
On 07/28/2015 11:32 AM, Jörn Engel wrote:
> On Mon, Jul 27, 2015 at 04:26:47PM -0700, Mike Kravetz wrote:
>> I started looking at the hugetlb self tests.  The test hugetlbfstest
>> expects hugetlb pages to be accounted for in rss.  However, there is
>> no code in the kernel to do this accounting.
>>
>> It looks like there was an effort to add the accounting back in 2013.
>> The test program made it into tree, but the accounting code did not.
>
> My apologies.  Upstream work always gets axed first when I run out of
> time - which happens more often than not.

No worries, I just noticed the inconsistency of the test program and
no supporting code in the kernel.

>> The easiest way to resolve this issue would be to remove the test and
>> perhaps document that hugetlb pages are not accounted for in rss.
>> However, it does seem like a big oversight that hugetlb pages are not
>> accounted for in rss.  From a quick scan of the code it appears THP
>> pages are properly accounted for.
>>
>> Thoughts?
>
> Unsurprisingly I agree that hugepages should count towards rss.  Keeping
> the test in keeps us honest.  Actually fixing the issue would make us
> honest and correct.
>
> Increasingly we have tiny processes (by rss) that actually consume large
> fractions of total memory.  Makes rss somewhat useless as a measure of
> anything.

I'll take a look at what it would take to get the accounting in place.
-- 
Mike Kravetz

>
> Jörn
>
> --
> Consensus is no proof!
> -- John Naisbitt
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1194749

FromJörn Engel <joern@purestorage.com>
Date2015-07-29 03:00 +0200
Message-ID<pRnSV-Ns-1@gated-at.bofh.it>
In reply to#1194675
On Tue, Jul 28, 2015 at 04:30:19PM -0700, David Rientjes wrote:
> 
> It's not only the oom killer, I don't believe hugeltb pages are accounted 
> to the "rss" in memcg.  They use the hugetlb_cgroup for that.  Starting to 
> account for them in existing memcg deployments would cause them to hit 
> their memory limits much earlier.  The "rss_huge" field in memcg only 
> represents transparent hugepages.
> 
> I agree with your comment that having done this when hugetlbfs was 
> introduced would have been optimal.
> 
> It's always difficult to add a new class of memory to an existing metric 
> ("new" here because it's currently unaccounted).
> 
> If we can add yet another process metric to track hugetlbfs memory mapped, 
> then the test could be converted to use that.  I'm not sure if the 
> jusitifcation would be strong enough, but you could try.

Well, we definitely need something.  Having a 100GB process show 3GB of
rss is not very useful.  How would we notice a memory leak if it only
affects hugepages, for example?

Jörn

--
The object-oriented version of 'Spaghetti code' is, of course, 'Lasagna code'.
(Too many layers).
-- Roberto Waltman.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1199389

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-04 05:00 +0200
Message-ID<pTACl-5Ra-3@gated-at.bofh.it>
In reply to#1194749
T24gV2VkLCBKdWwgMjksIDIwMTUgYXQgMDQ6MjA6NTlQTSAtMDcwMCwgTWlrZSBLcmF2ZXR6IHdy
b3RlOg0KPiBPbiAwNy8yOS8yMDE1IDEyOjA4IFBNLCBEYXZpZCBSaWVudGplcyB3cm90ZToNCj4g
Pk9uIFR1ZSwgMjggSnVsIDIwMTUsIErDtnJuIEVuZ2VsIHdyb3RlOg0KPiA+DQo+ID4+V2VsbCwg
d2UgZGVmaW5pdGVseSBuZWVkIHNvbWV0aGluZy4gIEhhdmluZyBhIDEwMEdCIHByb2Nlc3Mgc2hv
dyAzR0Igb2YNCj4gPj5yc3MgaXMgbm90IHZlcnkgdXNlZnVsLiAgSG93IHdvdWxkIHdlIG5vdGlj
ZSBhIG1lbW9yeSBsZWFrIGlmIGl0IG9ubHkNCj4gPj5hZmZlY3RzIGh1Z2VwYWdlcywgZm9yIGV4
YW1wbGU/DQo+ID4+DQo+ID4NCj4gPlNpbmNlIHRoZSBodWdldGxiIHBvb2wgaXMgYSBnbG9iYWwg
cmVzb3VyY2UsIGl0IHdvdWxkIGFsc28gYmUgaGVscGZ1bCB0bw0KPiA+ZGV0ZXJtaW5lIGlmIGEg
cHJvY2VzcyBpcyBtYXBwaW5nIG1vcmUgdGhhbiBleHBlY3RlZC4gIFlvdSBjYW4ndCBkbyB0aGF0
DQo+ID5qdXN0IGJ5IGFkZGluZyBhIGh1Z2UgcnNzIG1ldHJpYywgaG93ZXZlcjogaWYgeW91IGhh
dmUgMk1CIGFuZCAxR0INCj4gPmh1Z2VwYWdlcyBjb25maWd1cmVkIHlvdSB3b3VsZG4ndCBrbm93
IGlmIGEgcHJvY2VzcyB3YXMgbWFwcGluZyA1MTIgMk1CDQo+ID5odWdlcGFnZXMgb3IgMSAxR0Ig
aHVnZXBhZ2UuDQo+ID4NCj4gPlRoYXQncyB0aGUgcHVycG9zZSBvZiBodWdldGxiX2Nncm91cCwg
YWZ0ZXIgYWxsLCBhbmQgaXQgc3VwcG9ydHMgdXNhZ2UNCj4gPmNvdW50ZXJzIGZvciBhbGwgaHN0
YXRlcy4gIFRoZSB0ZXN0IGNvdWxkIGJlIGNvbnZlcnRlZCB0byB1c2UgdGhhdCB0bw0KPiA+bWVh
c3VyZSB1c2FnZSBpZiBjb25maWd1cmVkIGluIHRoZSBrZXJuZWwuDQo+ID4NCj4gPkJleW9uZCB0
aGF0LCBJJ20gbm90IHN1cmUgaG93IGEgcGVyLWhzdGF0ZSByc3MgbWV0cmljIHdvdWxkIGJlIGV4
cG9ydGVkIHRvDQo+ID51c2Vyc3BhY2UgaW4gYSBjbGVhbiB3YXkgYW5kIG90aGVyIHdheXMgb2Yg
b2J0YWluaW5nIHRoZSBzYW1lIGRhdGEgYXJlDQo+ID5wb3NzaWJsZSB3aXRoIGh1Z2V0bGJfY2dy
b3VwLiAgSSdtIG5vdCBzdXJlIGhvdyBzdWNjZXNzZnVsIHlvdSdkIGJlIGluDQo+ID5hcmd1aW5n
IHRoYXQgd2UgbmVlZCBzZXBhcmF0ZSByc3MgY291bnRlcnMgZm9yIGl0Lg0KPg0KPiBJZiBJIHdh
bnQgdG8gdHJhY2sgaHVnZXRsYiB1c2FnZSBvbiBhIHBlci10YXNrIGJhc2lzLCBkbyBJIHRoZW4g
bmVlZCB0bw0KPiBjcmVhdGUgb25lIGNncm91cCBwZXIgdGFzaz8NCj4NCj4gRm9yIGV4YW1wbGUs
IHN1cHBvc2UgSSBoYXZlIG1hbnkgdGFza3MgdXNpbmcgaHVnZXRsYiBhbmQgdGhlIGdsb2JhbCBw
b29sDQo+IGlzIGdldHRpbmcgbG93IG9uIGZyZWUgcGFnZXMuICBJdCBtaWdodCBiZSB1c2VmdWwg
dG8ga25vdyB3aGljaCB0YXNrcyBhcmUNCj4gdXNpbmcgaHVnZXRsYiBwYWdlcywgYW5kIGhvdyBt
YW55IHRoZXkgYXJlIHVzaW5nLg0KPg0KPiBJIGRvbid0IGFjdHVhbGx5IGhhdmUgdGhpcyBuZWVk
IChJIHRoaW5rKSwgYnV0IGl0IGFwcGVhcnMgdG8gYmUgd2hhdA0KPiBKw7ZybiBpcyBhc2tpbmcg
Zm9yLg0KDQpPbmUgcG9zc2libGUgd2F5IHRvIGdldCBodWdldGxiIG1ldHJpYyBpbiBwZXItdGFz
ayBiYXNpcyBpcyB0byB3YWxrIHBhZ2UNCnRhYmxlIHZpYSAvcHJvYy9waWQvcGFnZW1hcCwgYW5k
IGNvdW50aW5nIHBhZ2UgZmxhZ3MgZm9yIGVhY2ggbWFwcGVkIHBhZ2UNCih3ZSBjYW4gZWFzaWx5
IGRvIHRoaXMgd2l0aCB0b29scy92bS9wYWdlLXR5cGVzLmMgbGlrZSAicGFnZS10eXBlcyAtcCA8
UElEPg0KLWIgaHVnZSIpLiBUaGlzIGlzIG9idmlvdXNseSBzbG93ZXIgdGhhbiBqdXN0IHN0b3Jp
bmcgdGhlIGNvdW50ZXIgYXMNCmluLWtlcm5lbCBkYXRhIGFuZCBqdXN0IGV4cG9ydGluZyBpdCwg
YnV0IG1pZ2h0IGJlIHVzZWZ1bCBpbiBzb21lIHNpdHVhdGlvbi4NCg0KVGhhbmtzLA0KTmFveWEg
SG9yaWd1Y2hp
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1199413 — [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-04 07:20 +0200
Subject[PATCH] smaps: fill missing fields for vma(VM_HUGETLB)
Message-ID<pTCNQ-Kb-7@gated-at.bofh.it>
In reply to#1199389
T24gVHVlLCBBdWcgMDQsIDIwMTUgYXQgMDI6NTU6MzBBTSArMDAwMCwgTmFveWEgSG9yaWd1Y2hp
IHdyb3RlOg0KPiBPbiBXZWQsIEp1bCAyOSwgMjAxNSBhdCAwNDoyMDo1OVBNIC0wNzAwLCBNaWtl
IEtyYXZldHogd3JvdGU6DQo+ID4gT24gMDcvMjkvMjAxNSAxMjowOCBQTSwgRGF2aWQgUmllbnRq
ZXMgd3JvdGU6DQo+ID4gPk9uIFR1ZSwgMjggSnVsIDIwMTUsIErDtnJuIEVuZ2VsIHdyb3RlOg0K
PiA+ID4NCj4gPiA+PldlbGwsIHdlIGRlZmluaXRlbHkgbmVlZCBzb21ldGhpbmcuICBIYXZpbmcg
YSAxMDBHQiBwcm9jZXNzIHNob3cgM0dCIG9mDQo+ID4gPj5yc3MgaXMgbm90IHZlcnkgdXNlZnVs
LiAgSG93IHdvdWxkIHdlIG5vdGljZSBhIG1lbW9yeSBsZWFrIGlmIGl0IG9ubHkNCj4gPiA+PmFm
ZmVjdHMgaHVnZXBhZ2VzLCBmb3IgZXhhbXBsZT8NCj4gPiA+Pg0KPiA+ID4NCj4gPiA+U2luY2Ug
dGhlIGh1Z2V0bGIgcG9vbCBpcyBhIGdsb2JhbCByZXNvdXJjZSwgaXQgd291bGQgYWxzbyBiZSBo
ZWxwZnVsIHRvDQo+ID4gPmRldGVybWluZSBpZiBhIHByb2Nlc3MgaXMgbWFwcGluZyBtb3JlIHRo
YW4gZXhwZWN0ZWQuICBZb3UgY2FuJ3QgZG8gdGhhdA0KPiA+ID5qdXN0IGJ5IGFkZGluZyBhIGh1
Z2UgcnNzIG1ldHJpYywgaG93ZXZlcjogaWYgeW91IGhhdmUgMk1CIGFuZCAxR0INCj4gPiA+aHVn
ZXBhZ2VzIGNvbmZpZ3VyZWQgeW91IHdvdWxkbid0IGtub3cgaWYgYSBwcm9jZXNzIHdhcyBtYXBw
aW5nIDUxMiAyTUINCj4gPiA+aHVnZXBhZ2VzIG9yIDEgMUdCIGh1Z2VwYWdlLg0KPiA+ID4NCj4g
PiA+VGhhdCdzIHRoZSBwdXJwb3NlIG9mIGh1Z2V0bGJfY2dyb3VwLCBhZnRlciBhbGwsIGFuZCBp
dCBzdXBwb3J0cyB1c2FnZQ0KPiA+ID5jb3VudGVycyBmb3IgYWxsIGhzdGF0ZXMuICBUaGUgdGVz
dCBjb3VsZCBiZSBjb252ZXJ0ZWQgdG8gdXNlIHRoYXQgdG8NCj4gPiA+bWVhc3VyZSB1c2FnZSBp
ZiBjb25maWd1cmVkIGluIHRoZSBrZXJuZWwuDQo+ID4gPg0KPiA+ID5CZXlvbmQgdGhhdCwgSSdt
IG5vdCBzdXJlIGhvdyBhIHBlci1oc3RhdGUgcnNzIG1ldHJpYyB3b3VsZCBiZSBleHBvcnRlZCB0
bw0KPiA+ID51c2Vyc3BhY2UgaW4gYSBjbGVhbiB3YXkgYW5kIG90aGVyIHdheXMgb2Ygb2J0YWlu
aW5nIHRoZSBzYW1lIGRhdGEgYXJlDQo+ID4gPnBvc3NpYmxlIHdpdGggaHVnZXRsYl9jZ3JvdXAu
ICBJJ20gbm90IHN1cmUgaG93IHN1Y2Nlc3NmdWwgeW91J2QgYmUgaW4NCj4gPiA+YXJndWluZyB0
aGF0IHdlIG5lZWQgc2VwYXJhdGUgcnNzIGNvdW50ZXJzIGZvciBpdC4NCj4gPg0KPiA+IElmIEkg
d2FudCB0byB0cmFjayBodWdldGxiIHVzYWdlIG9uIGEgcGVyLXRhc2sgYmFzaXMsIGRvIEkgdGhl
biBuZWVkIHRvDQo+ID4gY3JlYXRlIG9uZSBjZ3JvdXAgcGVyIHRhc2s/DQo+ID4NCj4gPiBGb3Ig
ZXhhbXBsZSwgc3VwcG9zZSBJIGhhdmUgbWFueSB0YXNrcyB1c2luZyBodWdldGxiIGFuZCB0aGUg
Z2xvYmFsIHBvb2wNCj4gPiBpcyBnZXR0aW5nIGxvdyBvbiBmcmVlIHBhZ2VzLiAgSXQgbWlnaHQg
YmUgdXNlZnVsIHRvIGtub3cgd2hpY2ggdGFza3MgYXJlDQo+ID4gdXNpbmcgaHVnZXRsYiBwYWdl
cywgYW5kIGhvdyBtYW55IHRoZXkgYXJlIHVzaW5nLg0KPiA+DQo+ID4gSSBkb24ndCBhY3R1YWxs
eSBoYXZlIHRoaXMgbmVlZCAoSSB0aGluayksIGJ1dCBpdCBhcHBlYXJzIHRvIGJlIHdoYXQNCj4g
PiBKw7ZybiBpcyBhc2tpbmcgZm9yLg0KPiANCj4gT25lIHBvc3NpYmxlIHdheSB0byBnZXQgaHVn
ZXRsYiBtZXRyaWMgaW4gcGVyLXRhc2sgYmFzaXMgaXMgdG8gd2FsayBwYWdlDQo+IHRhYmxlIHZp
YSAvcHJvYy9waWQvcGFnZW1hcCwgYW5kIGNvdW50aW5nIHBhZ2UgZmxhZ3MgZm9yIGVhY2ggbWFw
cGVkIHBhZ2UNCj4gKHdlIGNhbiBlYXNpbHkgZG8gdGhpcyB3aXRoIHRvb2xzL3ZtL3BhZ2UtdHlw
ZXMuYyBsaWtlICJwYWdlLXR5cGVzIC1wIDxQSUQ+DQo+IC1iIGh1Z2UiKS4gVGhpcyBpcyBvYnZp
b3VzbHkgc2xvd2VyIHRoYW4ganVzdCBzdG9yaW5nIHRoZSBjb3VudGVyIGFzDQo+IGluLWtlcm5l
bCBkYXRhIGFuZCBqdXN0IGV4cG9ydGluZyBpdCwgYnV0IG1pZ2h0IGJlIHVzZWZ1bCBpbiBzb21l
IHNpdHVhdGlvbi4NCg0KQlRXLCBjdXJyZW50bHkgc21hcHMgZG9lc24ndCByZXBvcnQgYW55IG1l
YW5pbmdmdWwgaW5mbyBmb3Igdm1hKFZNX0hVR0VUTEIpLg0KSSB3cm90ZSB0aGUgZm9sbG93aW5n
IHBhdGNoLCB3aGljaCBob3BlZnVsbHkgaXMgaGVscGZ1bCBmb3IgeW91ciBwdXJwb3NlLg0KDQpU
aGFua3MsDQpOYW95YSBIb3JpZ3VjaGkNCg0KLS0tDQpGcm9tOiBOYW95YSBIb3JpZ3VjaGkgPG4t
aG9yaWd1Y2hpQGFoLmpwLm5lYy5jb20+DQpTdWJqZWN0OiBbUEFUQ0hdIHNtYXBzOiBmaWxsIG1p
c3NpbmcgZmllbGRzIGZvciB2bWEoVk1fSFVHRVRMQikNCg0KQ3VycmVudGx5IHNtYXBzIHJlcG9y
dHMgbWFueSB6ZXJvIGZpZWxkcyBmb3Igdm1hKFZNX0hVR0VUTEIpLCB3aGljaCBpcw0KaW5jb252
ZW5pZW50IHdoZW4gd2Ugd2FudCB0byBrbm93IHBlci10YXNrIG9yIHBlci12bWEgYmFzZSBodWdl
dGxiIHVzYWdlLg0KVGhpcyBwYXRjaCBlbmFibGVzIHRoZXNlIGZpZWxkcyBieSBpbnRyb2R1Y2lu
ZyBzbWFwc19odWdldGxiX3JhbmdlKCkuDQoNCmJlZm9yZSBwYXRjaDoNCg0KICBTaXplOiAgICAg
ICAgICAgICAgMjA0ODAga0INCiAgUnNzOiAgICAgICAgICAgICAgICAgICAwIGtCDQogIFBzczog
ICAgICAgICAgICAgICAgICAgMCBrQg0KICBTaGFyZWRfQ2xlYW46ICAgICAgICAgIDAga0INCiAg
U2hhcmVkX0RpcnR5OiAgICAgICAgICAwIGtCDQogIFByaXZhdGVfQ2xlYW46ICAgICAgICAgMCBr
Qg0KICBQcml2YXRlX0RpcnR5OiAgICAgICAgIDAga0INCiAgUmVmZXJlbmNlZDogICAgICAgICAg
ICAwIGtCDQogIEFub255bW91czogICAgICAgICAgICAgMCBrQg0KICBBbm9uSHVnZVBhZ2VzOiAg
ICAgICAgIDAga0INCiAgU3dhcDogICAgICAgICAgICAgICAgICAwIGtCDQogIEtlcm5lbFBhZ2VT
aXplOiAgICAgMjA0OCBrQg0KICBNTVVQYWdlU2l6ZTogICAgICAgIDIwNDgga0INCiAgTG9ja2Vk
OiAgICAgICAgICAgICAgICAwIGtCDQogIFZtRmxhZ3M6IHJkIHdyIG1yIG13IG1lIGRlIGh0DQoN
CmFmdGVyIHBhdGNoOg0KDQogIFNpemU6ICAgICAgICAgICAgICAyMDQ4MCBrQg0KICBSc3M6ICAg
ICAgICAgICAgICAgMTg0MzIga0INCiAgUHNzOiAgICAgICAgICAgICAgIDE4NDMyIGtCDQogIFNo
YXJlZF9DbGVhbjogICAgICAgICAgMCBrQg0KICBTaGFyZWRfRGlydHk6ICAgICAgICAgIDAga0IN
CiAgUHJpdmF0ZV9DbGVhbjogICAgICAgICAwIGtCDQogIFByaXZhdGVfRGlydHk6ICAgICAxODQz
MiBrQg0KICBSZWZlcmVuY2VkOiAgICAgICAgMTg0MzIga0INCiAgQW5vbnltb3VzOiAgICAgICAg
IDE4NDMyIGtCDQogIEFub25IdWdlUGFnZXM6ICAgICAgICAgMCBrQg0KICBTd2FwOiAgICAgICAg
ICAgICAgICAgIDAga0INCiAgS2VybmVsUGFnZVNpemU6ICAgICAyMDQ4IGtCDQogIE1NVVBhZ2VT
aXplOiAgICAgICAgMjA0OCBrQg0KICBMb2NrZWQ6ICAgICAgICAgICAgICAgIDAga0INCiAgVm1G
bGFnczogcmQgd3IgbXIgbXcgbWUgZGUgaHQNCg0KU2lnbmVkLW9mZi1ieTogTmFveWEgSG9yaWd1
Y2hpIDxuLWhvcmlndWNoaUBhaC5qcC5uZWMuY29tPg0KLS0tDQogZnMvcHJvYy90YXNrX21tdS5j
IHwgMjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrDQogMSBmaWxlIGNoYW5nZWQsIDI3IGlu
c2VydGlvbnMoKykNCg0KZGlmZiAtLWdpdCBhL2ZzL3Byb2MvdGFza19tbXUuYyBiL2ZzL3Byb2Mv
dGFza19tbXUuYw0KaW5kZXggY2ExZTA5MTg4MWQ0Li5jNzIxODYwMzMwNmQgMTAwNjQ0DQotLS0g
YS9mcy9wcm9jL3Rhc2tfbW11LmMNCisrKyBiL2ZzL3Byb2MvdGFza19tbXUuYw0KQEAgLTYxMCwx
MiArNjEwLDM5IEBAIHN0YXRpYyB2b2lkIHNob3dfc21hcF92bWFfZmxhZ3Moc3RydWN0IHNlcV9m
aWxlICptLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkNCiAJc2VxX3B1dGMobSwgJ1xuJyk7
DQogfQ0KIA0KKyNpZmRlZiBDT05GSUdfSFVHRVRMQl9QQUdFDQorc3RhdGljIGludCBzbWFwc19o
dWdldGxiX3JhbmdlKHB0ZV90ICpwdGUsIHVuc2lnbmVkIGxvbmcgaG1hc2ssDQorCQkJCSB1bnNp
Z25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZW5kLA0KKwkJCQkgc3RydWN0IG1tX3dhbGsg
KndhbGspDQorew0KKwlzdHJ1Y3QgbWVtX3NpemVfc3RhdHMgKm1zcyA9IHdhbGstPnByaXZhdGU7
DQorCXN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hID0gd2Fsay0+dm1hOw0KKwlzdHJ1Y3QgcGFn
ZSAqcGFnZSA9IE5VTEw7DQorDQorCWlmIChwdGVfcHJlc2VudCgqcHRlKSkgew0KKwkJcGFnZSA9
IHZtX25vcm1hbF9wYWdlKHZtYSwgYWRkciwgKnB0ZSk7DQorCX0gZWxzZSBpZiAoaXNfc3dhcF9w
dGUoKnB0ZSkpIHsNCisJCXN3cF9lbnRyeV90IHN3cGVudCA9IHB0ZV90b19zd3BfZW50cnkoKnB0
ZSk7DQorDQorCQlpZiAoaXNfbWlncmF0aW9uX2VudHJ5KHN3cGVudCkpDQorCQkJcGFnZSA9IG1p
Z3JhdGlvbl9lbnRyeV90b19wYWdlKHN3cGVudCk7DQorCX0NCisJaWYgKHBhZ2UpDQorCQlzbWFw
c19hY2NvdW50KG1zcywgcGFnZSwgaHVnZV9wYWdlX3NpemUoaHN0YXRlX3ZtYSh2bWEpKSwNCisJ
CQkgICAgICBwdGVfeW91bmcoKnB0ZSksIHB0ZV9kaXJ0eSgqcHRlKSk7DQorCXJldHVybiAwOw0K
K30NCisjZW5kaWYgLyogSFVHRVRMQl9QQUdFICovDQorDQogc3RhdGljIGludCBzaG93X3NtYXAo
c3RydWN0IHNlcV9maWxlICptLCB2b2lkICp2LCBpbnQgaXNfcGlkKQ0KIHsNCiAJc3RydWN0IHZt
X2FyZWFfc3RydWN0ICp2bWEgPSB2Ow0KIAlzdHJ1Y3QgbWVtX3NpemVfc3RhdHMgbXNzOw0KIAlz
dHJ1Y3QgbW1fd2FsayBzbWFwc193YWxrID0gew0KIAkJLnBtZF9lbnRyeSA9IHNtYXBzX3B0ZV9y
YW5nZSwNCisjaWZkZWYgQ09ORklHX0hVR0VUTEJfUEFHRQ0KKwkJLmh1Z2V0bGJfZW50cnkgPSBz
bWFwc19odWdldGxiX3JhbmdlLA0KKyNlbmRpZg0KIAkJLm1tID0gdm1hLT52bV9tbSwNCiAJCS5w
cml2YXRlID0gJm1zcywNCiAJfTsNCi0tIA0KMi40LjMNCg==
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1200217 — Re: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)

FromJörn Engel <joern@purestorage.com>
Date2015-08-04 20:30 +0200
SubjectRe: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)
Message-ID<pTP8l-1Gf-3@gated-at.bofh.it>
In reply to#1199413
On Tue, Aug 04, 2015 at 05:13:39AM +0000, Naoya Horiguchi wrote:
> On Tue, Aug 04, 2015 at 02:55:30AM +0000, Naoya Horiguchi wrote:
> > 
> > One possible way to get hugetlb metric in per-task basis is to walk page
> > table via /proc/pid/pagemap, and counting page flags for each mapped page
> > (we can easily do this with tools/vm/page-types.c like "page-types -p <PID>
> > -b huge"). This is obviously slower than just storing the counter as
> > in-kernel data and just exporting it, but might be useful in some situation.

Maybe.  The current situation is a mess and I don't know the best way
out of it yet.

> BTW, currently smaps doesn't report any meaningful info for vma(VM_HUGETLB).
> I wrote the following patch, which hopefully is helpful for your purpose.
> 
> Thanks,
> Naoya Horiguchi
> 
> ---
> From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> Subject: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)
> 
> Currently smaps reports many zero fields for vma(VM_HUGETLB), which is
> inconvenient when we want to know per-task or per-vma base hugetlb usage.
> This patch enables these fields by introducing smaps_hugetlb_range().
> 
> before patch:
> 
>   Size:              20480 kB
>   Rss:                   0 kB
>   Pss:                   0 kB
>   Shared_Clean:          0 kB
>   Shared_Dirty:          0 kB
>   Private_Clean:         0 kB
>   Private_Dirty:         0 kB
>   Referenced:            0 kB
>   Anonymous:             0 kB
>   AnonHugePages:         0 kB
>   Swap:                  0 kB
>   KernelPageSize:     2048 kB
>   MMUPageSize:        2048 kB
>   Locked:                0 kB
>   VmFlags: rd wr mr mw me de ht
> 
> after patch:
> 
>   Size:              20480 kB
>   Rss:               18432 kB
>   Pss:               18432 kB
>   Shared_Clean:          0 kB
>   Shared_Dirty:          0 kB
>   Private_Clean:         0 kB
>   Private_Dirty:     18432 kB
>   Referenced:        18432 kB
>   Anonymous:         18432 kB
>   AnonHugePages:         0 kB
>   Swap:                  0 kB
>   KernelPageSize:     2048 kB
>   MMUPageSize:        2048 kB
>   Locked:                0 kB
>   VmFlags: rd wr mr mw me de ht

Nice!

> Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> ---
>  fs/proc/task_mmu.c | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
> 
> diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
> index ca1e091881d4..c7218603306d 100644
> --- a/fs/proc/task_mmu.c
> +++ b/fs/proc/task_mmu.c
> @@ -610,12 +610,39 @@ static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma)
>  	seq_putc(m, '\n');
>  }
>  
> +#ifdef CONFIG_HUGETLB_PAGE
> +static int smaps_hugetlb_range(pte_t *pte, unsigned long hmask,
> +				 unsigned long addr, unsigned long end,
> +				 struct mm_walk *walk)
> +{
> +	struct mem_size_stats *mss = walk->private;
> +	struct vm_area_struct *vma = walk->vma;
> +	struct page *page = NULL;
> +
> +	if (pte_present(*pte)) {
> +		page = vm_normal_page(vma, addr, *pte);
> +	} else if (is_swap_pte(*pte)) {
> +		swp_entry_t swpent = pte_to_swp_entry(*pte);
> +
> +		if (is_migration_entry(swpent))
> +			page = migration_entry_to_page(swpent);
> +	}
> +	if (page)
> +		smaps_account(mss, page, huge_page_size(hstate_vma(vma)),
> +			      pte_young(*pte), pte_dirty(*pte));
> +	return 0;
> +}
> +#endif /* HUGETLB_PAGE */
> +
>  static int show_smap(struct seq_file *m, void *v, int is_pid)
>  {
>  	struct vm_area_struct *vma = v;
>  	struct mem_size_stats mss;
>  	struct mm_walk smaps_walk = {
>  		.pmd_entry = smaps_pte_range,
> +#ifdef CONFIG_HUGETLB_PAGE
> +		.hugetlb_entry = smaps_hugetlb_range,
> +#endif

Not too fond of the #ifdef.  But I won't blame you, as there already is
an example of the same and - worse - a contradicting example that
unconditionally assigns and moved the #ifdef elsewhere.

Hugetlb is the unloved stepchild with 13 years of neglect and
half-measures.  It shows.

Patch looks good to me.

Acked-by: Jörn Engel <joern@logfs.org>

Jörn

--
Functionality is an asset, but code is a liability.
--Ted Dziuba
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1201390 — Re: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)

FromDavid Rientjes <rientjes@google.com>
Date2015-08-06 04:20 +0200
SubjectRe: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)
Message-ID<pUiWK-3cM-5@gated-at.bofh.it>
In reply to#1200217

[Multipart message — attachments visible in raw view] — view raw

On Tue, 4 Aug 2015, Jörn Engel wrote:

> > From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> > Subject: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)
> > 
> > Currently smaps reports many zero fields for vma(VM_HUGETLB), which is
> > inconvenient when we want to know per-task or per-vma base hugetlb usage.
> > This patch enables these fields by introducing smaps_hugetlb_range().
> > 
> > before patch:
> > 
> >   Size:              20480 kB
> >   Rss:                   0 kB
> >   Pss:                   0 kB
> >   Shared_Clean:          0 kB
> >   Shared_Dirty:          0 kB
> >   Private_Clean:         0 kB
> >   Private_Dirty:         0 kB
> >   Referenced:            0 kB
> >   Anonymous:             0 kB
> >   AnonHugePages:         0 kB
> >   Swap:                  0 kB
> >   KernelPageSize:     2048 kB
> >   MMUPageSize:        2048 kB
> >   Locked:                0 kB
> >   VmFlags: rd wr mr mw me de ht
> > 
> > after patch:
> > 
> >   Size:              20480 kB
> >   Rss:               18432 kB
> >   Pss:               18432 kB
> >   Shared_Clean:          0 kB
> >   Shared_Dirty:          0 kB
> >   Private_Clean:         0 kB
> >   Private_Dirty:     18432 kB
> >   Referenced:        18432 kB
> >   Anonymous:         18432 kB
> >   AnonHugePages:         0 kB
> >   Swap:                  0 kB
> >   KernelPageSize:     2048 kB
> >   MMUPageSize:        2048 kB
> >   Locked:                0 kB
> >   VmFlags: rd wr mr mw me de ht
> 
> Nice!
> 

Hmm, wouldn't this be confusing since VmRSS in /proc/pid/status doesn't 
match the rss shown in smaps, since hugetlb mappings aren't accounted in 
get_mm_rss()?

Not sure this is a good idea, I think consistency amongst rss values would 
be more important.

[toc] | [prev] | [next] | [standalone]


#1201524 — Re: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-06 09:50 +0200
SubjectRe: [PATCH] smaps: fill missing fields for vma(VM_HUGETLB)
Message-ID<pUo65-2mn-1@gated-at.bofh.it>
In reply to#1201390
T24gV2VkLCBBdWcgMDUsIDIwMTUgYXQgMDc6MTg6NDRQTSAtMDcwMCwgRGF2aWQgUmllbnRqZXMg
d3JvdGU6DQouLi4NCj4gSG1tLCB3b3VsZG4ndCB0aGlzIGJlIGNvbmZ1c2luZyBzaW5jZSBWbVJT
UyBpbiAvcHJvYy9waWQvc3RhdHVzIGRvZXNuJ3QgDQo+IG1hdGNoIHRoZSByc3Mgc2hvd24gaW4g
c21hcHMsIHNpbmNlIGh1Z2V0bGIgbWFwcGluZ3MgYXJlbid0IGFjY291bnRlZCBpbiANCj4gZ2V0
X21tX3JzcygpPw0KPiANCj4gTm90IHN1cmUgdGhpcyBpcyBhIGdvb2QgaWRlYSwgSSB0aGluayBj
b25zaXN0ZW5jeSBhbW9uZ3N0IHJzcyB2YWx1ZXMgd291bGQgDQo+IGJlIG1vcmUgaW1wb3J0YW50
Lg0KDQpSaWdodCwgc28gb25lIG9wdGlvbiBpcyBtYWtpbmcgZ2V0X21tX3JzcygpIGNvdW50IGh1
Z2V0bGIsIGJ1dCB0aGF0IGNvdWxkDQptYWtlIG9vbS9tZW1jZyBsZXNzIGVmZmljaWVudCBvciBi
cm9rZW4gYXMgeW91IHN0YXRlZCBpbiBhIHByZXZpb3VzIGVtYWlsLg0KU28gYW5vdGhlciBvbmUg
aXMgdG8gYWRkICJWbUh1Z2V0bGJSU1M6IiBmaWVsZCBpbiAvcHJvYy9waWQvc3RhdHVzPw0KDQpU
aGFua3MsDQpOYW95YSBIb3JpZ3VjaGk=
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1202357 — [PATCH v2 0/2] hugetlb: display per-process/per-vma usage

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-07 09:30 +0200
Subject[PATCH v2 0/2] hugetlb: display per-process/per-vma usage
Message-ID<pUKgi-10c-17@gated-at.bofh.it>
In reply to#1201524
SSB3cm90ZSBwYXRjaGVzIHRvIGV4cG9ydCBodWdldGxiIHVzYWdlIGluZm8gdmlhIC9wcm9jL3Bp
ZC97c21hcHMsc3RhdHVzfS4NCkluIHRoaXMgdmVyc2lvbiwgSSBhZGRlZCBwYXRjaCAyIGZvciAv
cHJvYy9waWQvc3RhdHVzIHRvIGRlYWwgd2l0aCB0aGUNCmluY29uc2lzdGVuY3kgY29uY2VybiBm
cm9tIERhdmlkICh0aGFua3MgZm9yIHRoZSBjb21tZW50KS4NCg0KVGhhbmtzLA0KTmFveWEgSG9y
aWd1Y2hpDQotLS0NClN1bW1hcnk6DQoNCk5hb3lhIEhvcmlndWNoaSAoMik6DQogICAgICBzbWFw
czogZmlsbCBtaXNzaW5nIGZpZWxkcyBmb3Igdm1hKFZNX0hVR0VUTEIpDQogICAgICBtbTogaHVn
ZXRsYjogYWRkIFZtSHVnZXRsYlJTUzogZmllbGQgaW4gL3Byb2MvcGlkL3N0YXR1cw0KDQogZnMv
cHJvYy90YXNrX21tdS5jICAgICAgIHwgMzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Ky0NCiBpbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaCAgfCAxOCArKysrKysrKysrKysrKysrKysNCiBp
bmNsdWRlL2xpbnV4L21tLmggICAgICAgfCAgMyArKysNCiBpbmNsdWRlL2xpbnV4L21tX3R5cGVz
LmggfCAgMyArKysNCiBtbS9odWdldGxiLmMgICAgICAgICAgICAgfCAgOSArKysrKysrKysNCiBt
bS9tZW1vcnkuYyAgICAgICAgICAgICAgfCAgNCArKy0tDQogbW0vcm1hcC5jICAgICAgICAgICAg
ICAgIHwgIDQgKysrLQ0KIDcgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgNCBkZWxl
dGlvbnMoLSk=
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1202366 — [PATCH v2 2/2] mm: hugetlb: add VmHugetlbRSS: field in /proc/pid/status

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-07 09:30 +0200
Subject[PATCH v2 2/2] mm: hugetlb: add VmHugetlbRSS: field in /proc/pid/status
Message-ID<pUKgi-10c-31@gated-at.bofh.it>
In reply to#1202357
Q3VycmVudGx5IHRoZXJlJ3Mgbm8gZWFzeSB3YXkgdG8gZ2V0IHBlci1wcm9jZXNzIHVzYWdlIG9m
IGh1Z2V0bGIgcGFnZXMsIHdoaWNoDQppcyBpbmNvbnZlbmllbnQgYmVjYXVzZSBhcHBsaWNhdGlv
bnMgd2hpY2ggdXNlIGh1Z2V0bGIgdHlwaWNhbGx5IHdhbnQgdG8gY29udHJvbA0KdGhlaXIgcHJv
Y2Vzc2VzIG9uIHRoZSBiYXNpcyBvZiBob3cgbXVjaCBtZW1vcnkgKGluY2x1ZGluZyBodWdldGxi
KSB0aGV5IHVzZS4NClNvIHRoaXMgcGF0Y2ggc2ltcGx5IHByb3ZpZGVzIGVhc3kgYWNjZXNzIHRv
IHRoZSBpbmZvIHZpYSAvcHJvYy9waWQvc3RhdHVzLg0KDQpUaGlzIHBhdGNoIHNob3VsZG4ndCBj
aGFuZ2UgdGhlIE9PTSBiZWhhdmlvciAoc28gaHVnZXRsYiB1c2FnZSBpcyBpZ25vcmVkIGFzDQpp
cyBub3csKSB3aGljaCBJIGd1ZXNzIGlzIGZpbmUgdW50aWwgd2UgaGF2ZSBzb21lIHN0cm9uZyBy
ZWFzb24gdG8gZG8gaXQuDQoNClNpZ25lZC1vZmYtYnk6IE5hb3lhIEhvcmlndWNoaSA8bi1ob3Jp
Z3VjaGlAYWguanAubmVjLmNvbT4NCi0tLQ0KIGZzL3Byb2MvdGFza19tbXUuYyAgICAgICB8ICA1
ICsrKystDQogaW5jbHVkZS9saW51eC9odWdldGxiLmggIHwgMTggKysrKysrKysrKysrKysrKysr
DQogaW5jbHVkZS9saW51eC9tbS5oICAgICAgIHwgIDMgKysrDQogaW5jbHVkZS9saW51eC9tbV90
eXBlcy5oIHwgIDMgKysrDQogbW0vaHVnZXRsYi5jICAgICAgICAgICAgIHwgIDkgKysrKysrKysr
DQogbW0vbWVtb3J5LmMgICAgICAgICAgICAgIHwgIDQgKystLQ0KIG1tL3JtYXAuYyAgICAgICAg
ICAgICAgICB8ICA0ICsrKy0NCiA3IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDQg
ZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgdjQuMi1yYzQub3JpZy9mcy9wcm9jL3Rhc2tfbW11
LmMgdjQuMi1yYzQvZnMvcHJvYy90YXNrX21tdS5jDQppbmRleCBjNzIxODYwMzMwNmQuLmYxODFm
NTZmY2NlMiAxMDA2NDQNCi0tLSB2NC4yLXJjNC5vcmlnL2ZzL3Byb2MvdGFza19tbXUuYw0KKysr
IHY0LjItcmM0L2ZzL3Byb2MvdGFza19tbXUuYw0KQEAgLTIyLDcgKzIyLDcgQEANCiB2b2lkIHRh
c2tfbWVtKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IG1tX3N0cnVjdCAqbW0pDQogew0KIAl1
bnNpZ25lZCBsb25nIGRhdGEsIHRleHQsIGxpYiwgc3dhcCwgcHRlcywgcG1kczsNCi0JdW5zaWdu
ZWQgbG9uZyBoaXdhdGVyX3ZtLCB0b3RhbF92bSwgaGl3YXRlcl9yc3MsIHRvdGFsX3JzczsNCisJ
dW5zaWduZWQgbG9uZyBoaXdhdGVyX3ZtLCB0b3RhbF92bSwgaGl3YXRlcl9yc3MsIHRvdGFsX3Jz
cywgaHVnZXRsYl9yc3M7DQogDQogCS8qDQogCSAqIE5vdGU6IHRvIG1pbmltaXplIHRoZWlyIG92
ZXJoZWFkLCBtbSBtYWludGFpbnMgaGl3YXRlcl92bSBhbmQNCkBAIC0zNyw2ICszNyw3IEBAIHZv
aWQgdGFza19tZW0oc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSkNCiAJ
aGl3YXRlcl9yc3MgPSB0b3RhbF9yc3MgPSBnZXRfbW1fcnNzKG1tKTsNCiAJaWYgKGhpd2F0ZXJf
cnNzIDwgbW0tPmhpd2F0ZXJfcnNzKQ0KIAkJaGl3YXRlcl9yc3MgPSBtbS0+aGl3YXRlcl9yc3M7
DQorCWh1Z2V0bGJfcnNzID0gZ2V0X2h1Z2V0bGJfcnNzKG1tKTsNCiANCiAJZGF0YSA9IG1tLT50
b3RhbF92bSAtIG1tLT5zaGFyZWRfdm0gLSBtbS0+c3RhY2tfdm07DQogCXRleHQgPSAoUEFHRV9B
TElHTihtbS0+ZW5kX2NvZGUpIC0gKG1tLT5zdGFydF9jb2RlICYgUEFHRV9NQVNLKSkgPj4gMTA7
DQpAQCAtNTEsNiArNTIsNyBAQCB2b2lkIHRhc2tfbWVtKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3Ry
dWN0IG1tX3N0cnVjdCAqbW0pDQogCQkiVm1QaW46XHQlOGx1IGtCXG4iDQogCQkiVm1IV006XHQl
OGx1IGtCXG4iDQogCQkiVm1SU1M6XHQlOGx1IGtCXG4iDQorCQkiVm1IdWdldGxiUlNTOlx0JThs
dSBrQlxuIg0KIAkJIlZtRGF0YTpcdCU4bHUga0JcbiINCiAJCSJWbVN0azpcdCU4bHUga0JcbiIN
CiAJCSJWbUV4ZTpcdCU4bHUga0JcbiINCkBAIC02NCw2ICs2Niw3IEBAIHZvaWQgdGFza19tZW0o
c3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSkNCiAJCW1tLT5waW5uZWRf
dm0gPDwgKFBBR0VfU0hJRlQtMTApLA0KIAkJaGl3YXRlcl9yc3MgPDwgKFBBR0VfU0hJRlQtMTAp
LA0KIAkJdG90YWxfcnNzIDw8IChQQUdFX1NISUZULTEwKSwNCisJCWh1Z2V0bGJfcnNzIDw8IChQ
QUdFX1NISUZULTEwKSwNCiAJCWRhdGEgPDwgKFBBR0VfU0hJRlQtMTApLA0KIAkJbW0tPnN0YWNr
X3ZtIDw8IChQQUdFX1NISUZULTEwKSwgdGV4dCwgbGliLA0KIAkJcHRlcyA+PiAxMCwNCmRpZmYg
LS1naXQgdjQuMi1yYzQub3JpZy9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaCB2NC4yLXJjNC9pbmNs
dWRlL2xpbnV4L2h1Z2V0bGIuaA0KaW5kZXggZDg5MWY5NDk0NjZhLi42MzE5ZGYxMjRlNjggMTAw
NjQ0DQotLS0gdjQuMi1yYzQub3JpZy9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaA0KKysrIHY0LjIt
cmM0L2luY2x1ZGUvbGludXgvaHVnZXRsYi5oDQpAQCAtNDY5LDYgKzQ2OSwyMSBAQCBzdGF0aWMg
aW5saW5lIHNwaW5sb2NrX3QgKmh1Z2VfcHRlX2xvY2twdHIoc3RydWN0IGhzdGF0ZSAqaCwNCiAj
ZGVmaW5lIGh1Z2VwYWdlc19zdXBwb3J0ZWQoKSAoSFBBR0VfU0hJRlQgIT0gMCkNCiAjZW5kaWYN
CiANCisvKg0KKyAqIFRoaXMgc2ltcGxlIHdyYXBwZXJzIGFyZSB0byBoaWRlIE1NX0hVR0VUTEJQ
QUdFUyBmcm9tIG91dHNpZGUgaHVnZXRsYmZzDQorICogc3Vic3lzdGVtLiBUaGUgY291bnRlciBN
TV9IVUdFVExCUEFHRVMgaXMgbWFpbnRhaW5lZCBpbiBwYWdlIHVuaXQgYmFzaXMsDQorICogc28g
aXQgY2hhbmdlcyBieSA1MTIgZm9yIGV4YW1wbGUgaWYgYSAyTUIgaHVnZXBhZ2UgaXMgbWFwcGVk
IG9yIHVubWFwcGVkLg0KKyAqLw0KK3N0YXRpYyBpbmxpbmUgaW50IGdldF9odWdldGxiX3Jzcyhz
dHJ1Y3QgbW1fc3RydWN0ICptbSkNCit7DQorCXJldHVybiBnZXRfbW1fY291bnRlcihtbSwgTU1f
SFVHRVRMQlBBR0VTKTsNCit9DQorDQorc3RhdGljIGlubGluZSB2b2lkIG1vZF9odWdldGxiX3Jz
cyhzdHJ1Y3QgbW1fc3RydWN0ICptbSwgbG9uZyB2YWx1ZSkNCit7DQorCWFkZF9tbV9jb3VudGVy
KG1tLCBNTV9IVUdFVExCUEFHRVMsIHZhbHVlKTsNCit9DQorDQogI2Vsc2UJLyogQ09ORklHX0hV
R0VUTEJfUEFHRSAqLw0KIHN0cnVjdCBoc3RhdGUge307DQogI2RlZmluZSBhbGxvY19odWdlX3Bh
Z2Vfbm9kZShoLCBuaWQpIE5VTEwNCkBAIC01MDQsNiArNTE5LDkgQEAgc3RhdGljIGlubGluZSBz
cGlubG9ja190ICpodWdlX3B0ZV9sb2NrcHRyKHN0cnVjdCBoc3RhdGUgKmgsDQogew0KIAlyZXR1
cm4gJm1tLT5wYWdlX3RhYmxlX2xvY2s7DQogfQ0KKw0KKyNkZWZpbmUgZ2V0X2h1Z2V0bGJfcnNz
KG1tKQkwDQorI2RlZmluZSBtb2RfaHVnZXRsYl9yc3MobW0sIHZhbHVlKQlkbyB7fSB3aGlsZSAo
MCkNCiAjZW5kaWYJLyogQ09ORklHX0hVR0VUTEJfUEFHRSAqLw0KIA0KIHN0YXRpYyBpbmxpbmUg
c3BpbmxvY2tfdCAqaHVnZV9wdGVfbG9jayhzdHJ1Y3QgaHN0YXRlICpoLA0KZGlmZiAtLWdpdCB2
NC4yLXJjNC5vcmlnL2luY2x1ZGUvbGludXgvbW0uaCB2NC4yLXJjNC9pbmNsdWRlL2xpbnV4L21t
LmgNCmluZGV4IDJlODcyZjkyZGJhYy4uOTIxOGE4ODU2NDgzIDEwMDY0NA0KLS0tIHY0LjItcmM0
Lm9yaWcvaW5jbHVkZS9saW51eC9tbS5oDQorKysgdjQuMi1yYzQvaW5jbHVkZS9saW51eC9tbS5o
DQpAQCAtMTM1NSw2ICsxMzU1LDkgQEAgc3RhdGljIGlubGluZSB2b2lkIHN5bmNfbW1fcnNzKHN0
cnVjdCBtbV9zdHJ1Y3QgKm1tKQ0KIH0NCiAjZW5kaWYNCiANCitleHRlcm4gaW5saW5lIHZvaWQg
aW5pdF9yc3NfdmVjKGludCAqcnNzKTsNCitleHRlcm4gaW5saW5lIHZvaWQgYWRkX21tX3Jzc192
ZWMoc3RydWN0IG1tX3N0cnVjdCAqbW0sIGludCAqcnNzKTsNCisNCiBpbnQgdm1hX3dhbnRzX3dy
aXRlbm90aWZ5KHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKTsNCiANCiBleHRlcm4gcHRlX3Qg
Kl9fZ2V0X2xvY2tlZF9wdGUoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHVuc2lnbmVkIGxvbmcgYWRk
ciwNCmRpZmYgLS1naXQgdjQuMi1yYzQub3JpZy9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmggdjQu
Mi1yYzQvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oDQppbmRleCAwMDM4YWM3NDY2ZmQuLjg4N2I0
M2JhNWExOCAxMDA2NDQNCi0tLSB2NC4yLXJjNC5vcmlnL2luY2x1ZGUvbGludXgvbW1fdHlwZXMu
aA0KKysrIHY0LjItcmM0L2luY2x1ZGUvbGludXgvbW1fdHlwZXMuaA0KQEAgLTM0OCw2ICszNDgs
OSBAQCBlbnVtIHsNCiAJTU1fRklMRVBBR0VTLA0KIAlNTV9BTk9OUEFHRVMsDQogCU1NX1NXQVBF
TlRTLA0KKyNpZmRlZiBDT05GSUdfSFVHRVRMQl9QQUdFDQorCU1NX0hVR0VUTEJQQUdFUywNCisj
ZW5kaWYNCiAJTlJfTU1fQ09VTlRFUlMNCiB9Ow0KIA0KZGlmZiAtLWdpdCB2NC4yLXJjNC5vcmln
L21tL2h1Z2V0bGIuYyB2NC4yLXJjNC9tbS9odWdldGxiLmMNCmluZGV4IGE4YzMwODcwODlkOC4u
MTJlNWU3ZDNiNjBmIDEwMDY0NA0KLS0tIHY0LjItcmM0Lm9yaWcvbW0vaHVnZXRsYi5jDQorKysg
djQuMi1yYzQvbW0vaHVnZXRsYi5jDQpAQCAtMjc0Myw5ICsyNzQzLDExIEBAIGludCBjb3B5X2h1
Z2V0bGJfcGFnZV9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICpkc3QsIHN0cnVjdCBtbV9zdHJ1Y3Qg
KnNyYywNCiAJdW5zaWduZWQgbG9uZyBtbXVuX3N0YXJ0OwkvKiBGb3IgbW11X25vdGlmaWVycyAq
Lw0KIAl1bnNpZ25lZCBsb25nIG1tdW5fZW5kOwkJLyogRm9yIG1tdV9ub3RpZmllcnMgKi8NCiAJ
aW50IHJldCA9IDA7DQorCWludCByc3NbTlJfTU1fQ09VTlRFUlNdOw0KIA0KIAljb3cgPSAodm1h
LT52bV9mbGFncyAmIChWTV9TSEFSRUQgfCBWTV9NQVlXUklURSkpID09IFZNX01BWVdSSVRFOw0K
IA0KKwlpbml0X3Jzc192ZWMocnNzKTsNCiAJbW11bl9zdGFydCA9IHZtYS0+dm1fc3RhcnQ7DQog
CW1tdW5fZW5kID0gdm1hLT52bV9lbmQ7DQogCWlmIChjb3cpDQpAQCAtMjc5Nyw2ICsyNzk5LDcg
QEAgaW50IGNvcHlfaHVnZXRsYl9wYWdlX3JhbmdlKHN0cnVjdCBtbV9zdHJ1Y3QgKmRzdCwgc3Ry
dWN0IG1tX3N0cnVjdCAqc3JjLA0KIAkJCWdldF9wYWdlKHB0ZXBhZ2UpOw0KIAkJCXBhZ2VfZHVw
X3JtYXAocHRlcGFnZSk7DQogCQkJc2V0X2h1Z2VfcHRlX2F0KGRzdCwgYWRkciwgZHN0X3B0ZSwg
ZW50cnkpOw0KKwkJCXJzc1tNTV9IVUdFVExCUEFHRVNdICs9IHBhZ2VzX3Blcl9odWdlX3BhZ2Uo
aCk7DQogCQl9DQogCQlzcGluX3VubG9jayhzcmNfcHRsKTsNCiAJCXNwaW5fdW5sb2NrKGRzdF9w
dGwpOw0KQEAgLTI4MDUsNiArMjgwOCw3IEBAIGludCBjb3B5X2h1Z2V0bGJfcGFnZV9yYW5nZShz
dHJ1Y3QgbW1fc3RydWN0ICpkc3QsIHN0cnVjdCBtbV9zdHJ1Y3QgKnNyYywNCiAJaWYgKGNvdykN
CiAJCW1tdV9ub3RpZmllcl9pbnZhbGlkYXRlX3JhbmdlX2VuZChzcmMsIG1tdW5fc3RhcnQsIG1t
dW5fZW5kKTsNCiANCisJYWRkX21tX3Jzc192ZWMoZHN0LCByc3MpOw0KIAlyZXR1cm4gcmV0Ow0K
IH0NCiANCkBAIC0yODIzLDYgKzI4MjcsNyBAQCB2b2lkIF9fdW5tYXBfaHVnZXBhZ2VfcmFuZ2Uo
c3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsDQogCXVu
c2lnbmVkIGxvbmcgc3ogPSBodWdlX3BhZ2Vfc2l6ZShoKTsNCiAJY29uc3QgdW5zaWduZWQgbG9u
ZyBtbXVuX3N0YXJ0ID0gc3RhcnQ7CS8qIEZvciBtbXVfbm90aWZpZXJzICovDQogCWNvbnN0IHVu
c2lnbmVkIGxvbmcgbW11bl9lbmQgICA9IGVuZDsJLyogRm9yIG1tdV9ub3RpZmllcnMgKi8NCisJ
aW50IHJzc1tOUl9NTV9DT1VOVEVSU107DQogDQogCVdBUk5fT04oIWlzX3ZtX2h1Z2V0bGJfcGFn
ZSh2bWEpKTsNCiAJQlVHX09OKHN0YXJ0ICYgfmh1Z2VfcGFnZV9tYXNrKGgpKTsNCkBAIC0yODMy
LDYgKzI4MzcsNyBAQCB2b2lkIF9fdW5tYXBfaHVnZXBhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRo
ZXIgKnRsYiwgc3RydWN0IHZtX2FyZWFfc3RydWN0ICp2bWEsDQogCW1tdV9ub3RpZmllcl9pbnZh
bGlkYXRlX3JhbmdlX3N0YXJ0KG1tLCBtbXVuX3N0YXJ0LCBtbXVuX2VuZCk7DQogCWFkZHJlc3Mg
PSBzdGFydDsNCiBhZ2FpbjoNCisJaW5pdF9yc3NfdmVjKHJzcyk7DQogCWZvciAoOyBhZGRyZXNz
IDwgZW5kOyBhZGRyZXNzICs9IHN6KSB7DQogCQlwdGVwID0gaHVnZV9wdGVfb2Zmc2V0KG1tLCBh
ZGRyZXNzKTsNCiAJCWlmICghcHRlcCkNCkBAIC0yODc3LDYgKzI4ODMsNyBAQCB2b2lkIF9fdW5t
YXBfaHVnZXBhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgc3RydWN0IHZtX2FyZWFf
c3RydWN0ICp2bWEsDQogCQlpZiAoaHVnZV9wdGVfZGlydHkocHRlKSkNCiAJCQlzZXRfcGFnZV9k
aXJ0eShwYWdlKTsNCiANCisJCXJzc1tNTV9IVUdFVExCUEFHRVNdIC09IHBhZ2VzX3Blcl9odWdl
X3BhZ2UoaCk7DQogCQlwYWdlX3JlbW92ZV9ybWFwKHBhZ2UpOw0KIAkJZm9yY2VfZmx1c2ggPSAh
X190bGJfcmVtb3ZlX3BhZ2UodGxiLCBwYWdlKTsNCiAJCWlmIChmb3JjZV9mbHVzaCkgew0KQEAg
LTI4OTIsNiArMjg5OSw3IEBAIHZvaWQgX191bm1hcF9odWdlcGFnZV9yYW5nZShzdHJ1Y3QgbW11
X2dhdGhlciAqdGxiLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiB1bmxvY2s6DQogCQlz
cGluX3VubG9jayhwdGwpOw0KIAl9DQorCWFkZF9tbV9yc3NfdmVjKG1tLCByc3MpOw0KIAkvKg0K
IAkgKiBtbXVfZ2F0aGVyIHJhbiBvdXQgb2Ygcm9vbSB0byBiYXRjaCBwYWdlcywgd2UgYnJlYWsg
b3V0IG9mDQogCSAqIHRoZSBQVEUgbG9jayB0byBhdm9pZCBkb2luZyB0aGUgcG90ZW50aWFsIGV4
cGVuc2l2ZSBUTEIgaW52YWxpZGF0ZQ0KQEAgLTMyNjEsNiArMzI2OSw3IEBAIHN0YXRpYyBpbnQg
aHVnZXRsYl9ub19wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1
Y3QgKnZtYSwNCiAJCQkJJiYgKHZtYS0+dm1fZmxhZ3MgJiBWTV9TSEFSRUQpKSk7DQogCXNldF9o
dWdlX3B0ZV9hdChtbSwgYWRkcmVzcywgcHRlcCwgbmV3X3B0ZSk7DQogDQorCW1vZF9odWdldGxi
X3JzcyhtbSwgcGFnZXNfcGVyX2h1Z2VfcGFnZShoKSk7DQogCWlmICgoZmxhZ3MgJiBGQVVMVF9G
TEFHX1dSSVRFKSAmJiAhKHZtYS0+dm1fZmxhZ3MgJiBWTV9TSEFSRUQpKSB7DQogCQkvKiBPcHRp
bWl6YXRpb24sIGRvIHRoZSBDT1cgd2l0aG91dCBhIHNlY29uZCBmYXVsdCAqLw0KIAkJcmV0ID0g
aHVnZXRsYl9jb3cobW0sIHZtYSwgYWRkcmVzcywgcHRlcCwgbmV3X3B0ZSwgcGFnZSwgcHRsKTsN
CmRpZmYgLS1naXQgdjQuMi1yYzQub3JpZy9tbS9tZW1vcnkuYyB2NC4yLXJjNC9tbS9tZW1vcnku
Yw0KaW5kZXggMzg4ZGNmOWFhMjgzLi5lMDliNTNkYTI3MzMgMTAwNjQ0DQotLS0gdjQuMi1yYzQu
b3JpZy9tbS9tZW1vcnkuYw0KKysrIHY0LjItcmM0L21tL21lbW9yeS5jDQpAQCAtNjIwLDEyICs2
MjAsMTIgQEAgaW50IF9fcHRlX2FsbG9jX2tlcm5lbChwbWRfdCAqcG1kLCB1bnNpZ25lZCBsb25n
IGFkZHJlc3MpDQogCXJldHVybiAwOw0KIH0NCiANCi1zdGF0aWMgaW5saW5lIHZvaWQgaW5pdF9y
c3NfdmVjKGludCAqcnNzKQ0KK2lubGluZSB2b2lkIGluaXRfcnNzX3ZlYyhpbnQgKnJzcykNCiB7
DQogCW1lbXNldChyc3MsIDAsIHNpemVvZihpbnQpICogTlJfTU1fQ09VTlRFUlMpOw0KIH0NCiAN
Ci1zdGF0aWMgaW5saW5lIHZvaWQgYWRkX21tX3Jzc192ZWMoc3RydWN0IG1tX3N0cnVjdCAqbW0s
IGludCAqcnNzKQ0KK2lubGluZSB2b2lkIGFkZF9tbV9yc3NfdmVjKHN0cnVjdCBtbV9zdHJ1Y3Qg
Km1tLCBpbnQgKnJzcykNCiB7DQogCWludCBpOw0KIA0KZGlmZiAtLWdpdCB2NC4yLXJjNC5vcmln
L21tL3JtYXAuYyB2NC4yLXJjNC9tbS9ybWFwLmMNCmluZGV4IDE3MWI2ODc2OGRmMS4uNzhlNzdi
MGVhM2MzIDEwMDY0NA0KLS0tIHY0LjItcmM0Lm9yaWcvbW0vcm1hcC5jDQorKysgdjQuMi1yYzQv
bW0vcm1hcC5jDQpAQCAtMTIzMCw3ICsxMjMwLDkgQEAgc3RhdGljIGludCB0cnlfdG9fdW5tYXBf
b25lKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJdXBk
YXRlX2hpd2F0ZXJfcnNzKG1tKTsNCiANCiAJaWYgKFBhZ2VIV1BvaXNvbihwYWdlKSAmJiAhKGZs
YWdzICYgVFRVX0lHTk9SRV9IV1BPSVNPTikpIHsNCi0JCWlmICghUGFnZUh1Z2UocGFnZSkpIHsN
CisJCWlmIChQYWdlSHVnZShwYWdlKSkgew0KKwkJCW1vZF9odWdldGxiX3JzcyhtbSwgLSgxIDw8
IGNvbXBvdW5kX29yZGVyKHBhZ2UpKSk7DQorCQl9IGVsc2Ugew0KIAkJCWlmIChQYWdlQW5vbihw
YWdlKSkNCiAJCQkJZGVjX21tX2NvdW50ZXIobW0sIE1NX0FOT05QQUdFUyk7DQogCQkJZWxzZQ0K
LS0gDQoyLjQuMw0K
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1203069 — Re: [PATCH v2 2/2] mm: hugetlb: add VmHugetlbRSS: field in /proc/pid/status

FromAndrew Morton <akpm@linux-foundation.org>
Date2015-08-08 01:00 +0200
SubjectRe: [PATCH v2 2/2] mm: hugetlb: add VmHugetlbRSS: field in /proc/pid/status
Message-ID<pUYMi-5gn-5@gated-at.bofh.it>
In reply to#1202366
On Fri, 7 Aug 2015 07:24:50 +0000 Naoya Horiguchi <n-horiguchi@ah.jp.nec.com> wrote:

> Currently there's no easy way to get per-process usage of hugetlb pages, which
> is inconvenient because applications which use hugetlb typically want to control
> their processes on the basis of how much memory (including hugetlb) they use.
> So this patch simply provides easy access to the info via /proc/pid/status.
> 
> This patch shouldn't change the OOM behavior (so hugetlb usage is ignored as
> is now,) which I guess is fine until we have some strong reason to do it.
> 

A procfs change triggers a documentation change.  Always, please. 
Documentation/filesystems/proc.txt is the place.

>
> ...
>
> @@ -504,6 +519,9 @@ static inline spinlock_t *huge_pte_lockptr(struct hstate *h,
>  {
>  	return &mm->page_table_lock;
>  }
> +
> +#define get_hugetlb_rss(mm)	0
> +#define mod_hugetlb_rss(mm, value)	do {} while (0)

I don't think these have to be macros?  inline functions are nicer in
several ways: more readable, more likely to be documented, can prevent
unused variable warnings.

>  #endif	/* CONFIG_HUGETLB_PAGE */
>  
>  static inline spinlock_t *huge_pte_lock(struct hstate *h,
>
> ...
>
> --- v4.2-rc4.orig/mm/memory.c
> +++ v4.2-rc4/mm/memory.c
> @@ -620,12 +620,12 @@ int __pte_alloc_kernel(pmd_t *pmd, unsigned long address)
>  	return 0;
>  }
>  
> -static inline void init_rss_vec(int *rss)
> +inline void init_rss_vec(int *rss)
>  {
>  	memset(rss, 0, sizeof(int) * NR_MM_COUNTERS);
>  }
>  
> -static inline void add_mm_rss_vec(struct mm_struct *mm, int *rss)
> +inline void add_mm_rss_vec(struct mm_struct *mm, int *rss)
>  {
>  	int i;

The inlines are a bit odd, but this does save ~10 bytes in memory.o for
some reason.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1203720 — [PATCH v3 3/3] Documentation/filesystems/proc.txt: document hugetlb RSS

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-10 02:50 +0200
Subject[PATCH v3 3/3] Documentation/filesystems/proc.txt: document hugetlb RSS
Message-ID<pVJrQ-5JM-1@gated-at.bofh.it>
In reply to#1203069
L3Byb2MvUElEL3tzdGF0dXMsc21hcHN9IGlzIGF3YXJlIG9mIGh1Z2V0bGIgUlNTIG5vdywgc28g
bGV0J3MgZG9jdW1lbnQgaXQuDQoNClNpZ25lZC1vZmYtYnk6IE5hb3lhIEhvcmlndWNoaSA8bi1o
b3JpZ3VjaGlAYWguanAubmVjLmNvbT4NCi0tLQ0KIERvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMv
cHJvYy50eHQgfCAxMCArKysrKysrKy0tDQogMSBmaWxlIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygr
KSwgMiBkZWxldGlvbnMoLSkNCg0KZGlmZiAtLWdpdCB2NC4yLXJjNC5vcmlnL0RvY3VtZW50YXRp
b24vZmlsZXN5c3RlbXMvcHJvYy50eHQgdjQuMi1yYzQvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVt
cy9wcm9jLnR4dA0KaW5kZXggNmY3ZmFmZGUwODg0Li5jYjg1NjVlMTUwZWQgMTAwNjQ0DQotLS0g
djQuMi1yYzQub3JpZy9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3Byb2MudHh0DQorKysgdjQu
Mi1yYzQvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnR4dA0KQEAgLTE2OCw2ICsxNjgs
NyBAQCBGb3IgZXhhbXBsZSwgdG8gZ2V0IHRoZSBzdGF0dXMgaW5mb3JtYXRpb24gb2YgYSBwcm9j
ZXNzLCBhbGwgeW91IGhhdmUgdG8gZG8gaXMNCiAgIFZtTGNrOiAgICAgICAgIDAga0INCiAgIFZt
SFdNOiAgICAgICA0NzYga0INCiAgIFZtUlNTOiAgICAgICA0NzYga0INCisgIFZtSHVnZXRsYlJT
UzogIDAga0INCiAgIFZtRGF0YTogICAgICAxNTYga0INCiAgIFZtU3RrOiAgICAgICAgODgga0IN
CiAgIFZtRXhlOiAgICAgICAgNjgga0INCkBAIC0yMzAsNiArMjMxLDcgQEAgVGFibGUgMS0yOiBD
b250ZW50cyBvZiB0aGUgc3RhdHVzIGZpbGVzIChhcyBvZiA0LjEpDQogIFZtTGNrICAgICAgICAg
ICAgICAgICAgICAgICBsb2NrZWQgbWVtb3J5IHNpemUNCiAgVm1IV00gICAgICAgICAgICAgICAg
ICAgICAgIHBlYWsgcmVzaWRlbnQgc2V0IHNpemUgKCJoaWdoIHdhdGVyIG1hcmsiKQ0KICBWbVJT
UyAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBvZiBtZW1vcnkgcG9ydGlvbnMNCisgVm1IdWdl
dGxiUlNTICAgICAgICAgICAgICAgIHNpemUgb2YgaHVnZXRsYiBtZW1vcnkgcG9ydGlvbnMNCiAg
Vm1EYXRhICAgICAgICAgICAgICAgICAgICAgIHNpemUgb2YgZGF0YSwgc3RhY2ssIGFuZCB0ZXh0
IHNlZ21lbnRzDQogIFZtU3RrICAgICAgICAgICAgICAgICAgICAgICBzaXplIG9mIGRhdGEsIHN0
YWNrLCBhbmQgdGV4dCBzZWdtZW50cw0KICBWbUV4ZSAgICAgICAgICAgICAgICAgICAgICAgc2l6
ZSBvZiB0ZXh0IHNlZ21lbnQNCkBAIC00NDAsOCArNDQyLDEyIEBAIGluZGljYXRlcyB0aGUgYW1v
dW50IG9mIG1lbW9yeSBjdXJyZW50bHkgbWFya2VkIGFzIHJlZmVyZW5jZWQgb3IgYWNjZXNzZWQu
DQogIkFub255bW91cyIgc2hvd3MgdGhlIGFtb3VudCBvZiBtZW1vcnkgdGhhdCBkb2VzIG5vdCBi
ZWxvbmcgdG8gYW55IGZpbGUuICBFdmVuDQogYSBtYXBwaW5nIGFzc29jaWF0ZWQgd2l0aCBhIGZp
bGUgbWF5IGNvbnRhaW4gYW5vbnltb3VzIHBhZ2VzOiB3aGVuIE1BUF9QUklWQVRFDQogYW5kIGEg
cGFnZSBpcyBtb2RpZmllZCwgdGhlIGZpbGUgcGFnZSBpcyByZXBsYWNlZCBieSBhIHByaXZhdGUg
YW5vbnltb3VzIGNvcHkuDQotIlN3YXAiIHNob3dzIGhvdyBtdWNoIHdvdWxkLWJlLWFub255bW91
cyBtZW1vcnkgaXMgYWxzbyB1c2VkLCBidXQgb3V0IG9uDQotc3dhcC4NCisiU3dhcCIgc2hvd3Mg
aG93IG11Y2ggd291bGQtYmUtYW5vbnltb3VzIG1lbW9yeSBpcyBhbHNvIHVzZWQsIGJ1dCBvdXQg
b24gc3dhcC4NCitTaW5jZSA0LjMsICJSU1MiIGNvbnRhaW5zIHRoZSBhbW91bnQgb2YgbWFwcGlu
Z3MgZm9yIGh1Z2V0bGIgcGFnZXMuIEFsdGhvdWdoDQorUlNTIG9mIGh1Z2V0bGIgbWFwcGluZ3Mg
aXMgbWFpbnRhaW5lZCBzZXBhcmF0ZWx5IGZyb20gbm9ybWFsIG1hcHBpbmdzDQorKGRpc3BsYXll
ZCBpbiAiVm1IdWdldGxiUlNTIiBmaWVsZCBvZiAvcHJvYy9QSUQvc3RhdHVzLCkgL3Byb2MvUElE
L3NtYXBzIHNob3dzDQorYm90aCBtYXBwaW5ncyBpbiAiUlNTIiBmaWVsZC4gVXNlcnNwYWNlIGFw
cGxpY2F0aW9ucyBjbGVhcmx5IGRpc3Rpbmd1aXNoIHRoZQ0KK3R5cGUgb2YgbWFwcGluZyB3aXRo
ICdodCcgZmxhZyBpbiAiVm1GbGFncyIgZmllbGQuDQogDQogIlZtRmxhZ3MiIGZpZWxkIGRlc2Vy
dmVzIGEgc2VwYXJhdGUgZGVzY3JpcHRpb24uIFRoaXMgbWVtYmVyIHJlcHJlc2VudHMgdGhlIGtl
cm5lbA0KIGZsYWdzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcGFydGljdWxhciB2aXJ0dWFsIG1lbW9y
eSBhcmVhIGluIHR3byBsZXR0ZXIgZW5jb2RlZA0KLS0gDQoyLjQuMw0K
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1204652 — Re: [PATCH v3 3/3] Documentation/filesystems/proc.txt: document hugetlb RSS

FromDavid Rientjes <rientjes@google.com>
Date2015-08-11 02:50 +0200
SubjectRe: [PATCH v3 3/3] Documentation/filesystems/proc.txt: document hugetlb RSS
Message-ID<pW5Vn-5Vd-5@gated-at.bofh.it>
In reply to#1203720
On Mon, 10 Aug 2015, Naoya Horiguchi wrote:

> diff --git v4.2-rc4.orig/Documentation/filesystems/proc.txt v4.2-rc4/Documentation/filesystems/proc.txt
> index 6f7fafde0884..cb8565e150ed 100644
> --- v4.2-rc4.orig/Documentation/filesystems/proc.txt
> +++ v4.2-rc4/Documentation/filesystems/proc.txt
> @@ -168,6 +168,7 @@ For example, to get the status information of a process, all you have to do is
>    VmLck:         0 kB
>    VmHWM:       476 kB
>    VmRSS:       476 kB
> +  VmHugetlbRSS:  0 kB
>    VmData:      156 kB
>    VmStk:        88 kB
>    VmExe:        68 kB
> @@ -230,6 +231,7 @@ Table 1-2: Contents of the status files (as of 4.1)
>   VmLck                       locked memory size
>   VmHWM                       peak resident set size ("high water mark")
>   VmRSS                       size of memory portions
> + VmHugetlbRSS                size of hugetlb memory portions
>   VmData                      size of data, stack, and text segments
>   VmStk                       size of data, stack, and text segments
>   VmExe                       size of text segment
> @@ -440,8 +442,12 @@ indicates the amount of memory currently marked as referenced or accessed.
>  "Anonymous" shows the amount of memory that does not belong to any file.  Even
>  a mapping associated with a file may contain anonymous pages: when MAP_PRIVATE
>  and a page is modified, the file page is replaced by a private anonymous copy.
> -"Swap" shows how much would-be-anonymous memory is also used, but out on
> -swap.
> +"Swap" shows how much would-be-anonymous memory is also used, but out on swap.
> +Since 4.3, "RSS" contains the amount of mappings for hugetlb pages. Although
> +RSS of hugetlb mappings is maintained separately from normal mappings
> +(displayed in "VmHugetlbRSS" field of /proc/PID/status,) /proc/PID/smaps shows
> +both mappings in "RSS" field. Userspace applications clearly distinguish the
> +type of mapping with 'ht' flag in "VmFlags" field.
>  
>  "VmFlags" field deserves a separate description. This member represents the kernel
>  flags associated with the particular virtual memory area in two letter encoded

My objection to adding hugetlb memory to the RSS field of /proc/pid/smaps 
still stands and can be addressed in the thread of the first patch.  Since 
this includes wording that describes that change, then the objection would 
also cover that.

With regard to adding VmHugetlbRSS, I think the change is fine, and I 
appreciate that you call it VmHugetlbRSS and not VmHugeRSS since that 
would be confused with thp.

My only concern regarding VmHugetlbRSS would be extendability and whether 
we will eventually, or even today, want to differentiate between various 
hugetlb page sizes.  For example, if 1GB hugetlb pages on x86 are a 
precious resource, then how do I determine which process has mapped it 
rather than 512 2MB hugetlb pages?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1205514 — Re: [PATCH v3 3/3] Documentation/filesystems/proc.txt: document hugetlb RSS

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-12 02:10 +0200
SubjectRe: [PATCH v3 3/3] Documentation/filesystems/proc.txt: document hugetlb RSS
Message-ID<pWrMe-45O-9@gated-at.bofh.it>
In reply to#1204652
T24gTW9uLCBBdWcgMTAsIDIwMTUgYXQgMDU6NDQ6NTRQTSAtMDcwMCwgRGF2aWQgUmllbnRqZXMg
d3JvdGU6DQo+IE9uIE1vbiwgMTAgQXVnIDIwMTUsIE5hb3lhIEhvcmlndWNoaSB3cm90ZToNCj4g
DQo+ID4gZGlmZiAtLWdpdCB2NC4yLXJjNC5vcmlnL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMv
cHJvYy50eHQgdjQuMi1yYzQvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnR4dA0KPiA+
IGluZGV4IDZmN2ZhZmRlMDg4NC4uY2I4NTY1ZTE1MGVkIDEwMDY0NA0KPiA+IC0tLSB2NC4yLXJj
NC5vcmlnL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcHJvYy50eHQNCj4gPiArKysgdjQuMi1y
YzQvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnR4dA0KPiA+IEBAIC0xNjgsNiArMTY4
LDcgQEAgRm9yIGV4YW1wbGUsIHRvIGdldCB0aGUgc3RhdHVzIGluZm9ybWF0aW9uIG9mIGEgcHJv
Y2VzcywgYWxsIHlvdSBoYXZlIHRvIGRvIGlzDQo+ID4gICAgVm1MY2s6ICAgICAgICAgMCBrQg0K
PiA+ICAgIFZtSFdNOiAgICAgICA0NzYga0INCj4gPiAgICBWbVJTUzogICAgICAgNDc2IGtCDQo+
ID4gKyAgVm1IdWdldGxiUlNTOiAgMCBrQg0KPiA+ICAgIFZtRGF0YTogICAgICAxNTYga0INCj4g
PiAgICBWbVN0azogICAgICAgIDg4IGtCDQo+ID4gICAgVm1FeGU6ICAgICAgICA2OCBrQg0KPiA+
IEBAIC0yMzAsNiArMjMxLDcgQEAgVGFibGUgMS0yOiBDb250ZW50cyBvZiB0aGUgc3RhdHVzIGZp
bGVzIChhcyBvZiA0LjEpDQo+ID4gICBWbUxjayAgICAgICAgICAgICAgICAgICAgICAgbG9ja2Vk
IG1lbW9yeSBzaXplDQo+ID4gICBWbUhXTSAgICAgICAgICAgICAgICAgICAgICAgcGVhayByZXNp
ZGVudCBzZXQgc2l6ZSAoImhpZ2ggd2F0ZXIgbWFyayIpDQo+ID4gICBWbVJTUyAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZSBvZiBtZW1vcnkgcG9ydGlvbnMNCj4gPiArIFZtSHVnZXRsYlJTUyAg
ICAgICAgICAgICAgICBzaXplIG9mIGh1Z2V0bGIgbWVtb3J5IHBvcnRpb25zDQo+ID4gICBWbURh
dGEgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBvZiBkYXRhLCBzdGFjaywgYW5kIHRleHQgc2Vn
bWVudHMNCj4gPiAgIFZtU3RrICAgICAgICAgICAgICAgICAgICAgICBzaXplIG9mIGRhdGEsIHN0
YWNrLCBhbmQgdGV4dCBzZWdtZW50cw0KPiA+ICAgVm1FeGUgICAgICAgICAgICAgICAgICAgICAg
IHNpemUgb2YgdGV4dCBzZWdtZW50DQo+ID4gQEAgLTQ0MCw4ICs0NDIsMTIgQEAgaW5kaWNhdGVz
IHRoZSBhbW91bnQgb2YgbWVtb3J5IGN1cnJlbnRseSBtYXJrZWQgYXMgcmVmZXJlbmNlZCBvciBh
Y2Nlc3NlZC4NCj4gPiAgIkFub255bW91cyIgc2hvd3MgdGhlIGFtb3VudCBvZiBtZW1vcnkgdGhh
dCBkb2VzIG5vdCBiZWxvbmcgdG8gYW55IGZpbGUuICBFdmVuDQo+ID4gIGEgbWFwcGluZyBhc3Nv
Y2lhdGVkIHdpdGggYSBmaWxlIG1heSBjb250YWluIGFub255bW91cyBwYWdlczogd2hlbiBNQVBf
UFJJVkFURQ0KPiA+ICBhbmQgYSBwYWdlIGlzIG1vZGlmaWVkLCB0aGUgZmlsZSBwYWdlIGlzIHJl
cGxhY2VkIGJ5IGEgcHJpdmF0ZSBhbm9ueW1vdXMgY29weS4NCj4gPiAtIlN3YXAiIHNob3dzIGhv
dyBtdWNoIHdvdWxkLWJlLWFub255bW91cyBtZW1vcnkgaXMgYWxzbyB1c2VkLCBidXQgb3V0IG9u
DQo+ID4gLXN3YXAuDQo+ID4gKyJTd2FwIiBzaG93cyBob3cgbXVjaCB3b3VsZC1iZS1hbm9ueW1v
dXMgbWVtb3J5IGlzIGFsc28gdXNlZCwgYnV0IG91dCBvbiBzd2FwLg0KPiA+ICtTaW5jZSA0LjMs
ICJSU1MiIGNvbnRhaW5zIHRoZSBhbW91bnQgb2YgbWFwcGluZ3MgZm9yIGh1Z2V0bGIgcGFnZXMu
IEFsdGhvdWdoDQo+ID4gK1JTUyBvZiBodWdldGxiIG1hcHBpbmdzIGlzIG1haW50YWluZWQgc2Vw
YXJhdGVseSBmcm9tIG5vcm1hbCBtYXBwaW5ncw0KPiA+ICsoZGlzcGxheWVkIGluICJWbUh1Z2V0
bGJSU1MiIGZpZWxkIG9mIC9wcm9jL1BJRC9zdGF0dXMsKSAvcHJvYy9QSUQvc21hcHMgc2hvd3MN
Cj4gPiArYm90aCBtYXBwaW5ncyBpbiAiUlNTIiBmaWVsZC4gVXNlcnNwYWNlIGFwcGxpY2F0aW9u
cyBjbGVhcmx5IGRpc3Rpbmd1aXNoIHRoZQ0KPiA+ICt0eXBlIG9mIG1hcHBpbmcgd2l0aCAnaHQn
IGZsYWcgaW4gIlZtRmxhZ3MiIGZpZWxkLg0KPiA+ICANCj4gPiAgIlZtRmxhZ3MiIGZpZWxkIGRl
c2VydmVzIGEgc2VwYXJhdGUgZGVzY3JpcHRpb24uIFRoaXMgbWVtYmVyIHJlcHJlc2VudHMgdGhl
IGtlcm5lbA0KPiA+ICBmbGFncyBhc3NvY2lhdGVkIHdpdGggdGhlIHBhcnRpY3VsYXIgdmlydHVh
bCBtZW1vcnkgYXJlYSBpbiB0d28gbGV0dGVyIGVuY29kZWQNCj4gDQo+IE15IG9iamVjdGlvbiB0
byBhZGRpbmcgaHVnZXRsYiBtZW1vcnkgdG8gdGhlIFJTUyBmaWVsZCBvZiAvcHJvYy9waWQvc21h
cHMgDQo+IHN0aWxsIHN0YW5kcyBhbmQgY2FuIGJlIGFkZHJlc3NlZCBpbiB0aGUgdGhyZWFkIG9m
IHRoZSBmaXJzdCBwYXRjaC4gIFNpbmNlIA0KPiB0aGlzIGluY2x1ZGVzIHdvcmRpbmcgdGhhdCBk
ZXNjcmliZXMgdGhhdCBjaGFuZ2UsIHRoZW4gdGhlIG9iamVjdGlvbiB3b3VsZCANCj4gYWxzbyBj
b3ZlciB0aGF0Lg0KDQpPSywgSSdsbCB1cGRhdGUgdGhpcyBpbiBhY2NvcmRhbmNlIHdpdGggdGhl
IGNoYW5nZSBvbiB0aGUgZmlyc3QgcGF0Y2guDQoNCj4gV2l0aCByZWdhcmQgdG8gYWRkaW5nIFZt
SHVnZXRsYlJTUywgSSB0aGluayB0aGUgY2hhbmdlIGlzIGZpbmUsIGFuZCBJIA0KPiBhcHByZWNp
YXRlIHRoYXQgeW91IGNhbGwgaXQgVm1IdWdldGxiUlNTIGFuZCBub3QgVm1IdWdlUlNTIHNpbmNl
IHRoYXQgDQo+IHdvdWxkIGJlIGNvbmZ1c2VkIHdpdGggdGhwLg0KDQpJIHBsYW4gdG8gcmVuYW1l
IHRoZSBmaWVsZCwgdGhlbiB0aGUgbmV3IG5hbWUgd2lsbC9zaG91bGQgYmUgdW5jb25mdXNpbmcN
CmJldHdlZW4gdGhwIGFuZCBodWdldGxiLg0KDQo+IE15IG9ubHkgY29uY2VybiByZWdhcmRpbmcg
Vm1IdWdldGxiUlNTIHdvdWxkIGJlIGV4dGVuZGFiaWxpdHkgYW5kIHdoZXRoZXIgDQo+IHdlIHdp
bGwgZXZlbnR1YWxseSwgb3IgZXZlbiB0b2RheSwgd2FudCB0byBkaWZmZXJlbnRpYXRlIGJldHdl
ZW4gdmFyaW91cyANCj4gaHVnZXRsYiBwYWdlIHNpemVzLiAgRm9yIGV4YW1wbGUsIGlmIDFHQiBo
dWdldGxiIHBhZ2VzIG9uIHg4NiBhcmUgYSANCj4gcHJlY2lvdXMgcmVzb3VyY2UsIHRoZW4gaG93
IGRvIEkgZGV0ZXJtaW5lIHdoaWNoIHByb2Nlc3MgaGFzIG1hcHBlZCBpdCANCj4gcmF0aGVyIHRo
YW4gNTEyIDJNQiBodWdldGxiIHBhZ2VzPw0KDQoiS2VybmVsUGFnZVNpemUiIGZpZWxkIGluIC9w
cm9jL1BJRC9zbWFwcyBpcyBhd2FyZSBvZiBodWdldGxiIHBhZ2Ugc2l6ZXMsDQpzbyBJIGV4cGVj
dGVkIHVzZXJzcGFjZSB0byBkZXRlY3QgdGhlIHNpemUgaXRzZWxmLiBCdXQgL3Byb2MvUElEL3N0
YXR1cyBzaG93cw0Kb25seSBwcm9jY2Vzcy13aWRlIGluZm8sIHNvIHVzZXJzcGFjZSBhcHBsaWNh
dGlvbnMgbXVzdCByZWFkIGJvdGggb2YgdGhlc2UNCmZpbGVzIHRvIGtub3cgdGhlIHVzYWdlIHBl
ciBodWdlcGFnZSBzaXplLCB3aGljaCBtaWdodCBiZSBpbmNvbnZlbmllbnQuDQoNCk9uZSBpZGVh
IGlzIHRvIHNob3cgdGhlIG5ldyBmaWVsZCBsaWtlICJWbUh1Z2V0bGJSU1M6IDJ4NTEya0IgMXgx
R0IiIGZvcg0KYm90aCBvZiAvcHJvYy9QSUQve3N0YXR1cyxzbWFwc30sIHdoaWNoIHBhc3NlcyB0
aGUgZnVsbCBodWdldGxiIGluZm8gaW4gYQ0Kc2luZ2xlIGxpbmUgc28gZWFzaWVyIHRvIHBhcnNl
IGFuZCBwcm9jZXNzLiBPciBzb21lIG90aGVyIGZpZWxkcyBzaG93cyBpbg0KImtCIiwgc28gIlZt
SHVnZXRsYlJTUzogMTA1MjY3MiBrQiAoMng1MTJrQiAxeDFHQikiIGlzIHBvc3NpYmxlIGZvciBo
dW1hbg0KcmVhZGFiaWxpdHkuDQoNClRoYW5rIHlvdSB2ZXJ5IG11Y2ggZm9yIHRoZSBmZWVkYmFj
aywgSSdsbCByZXBvc3Qgc29vbiwgYnV0IGFueSBhZGRpdGlvbmFsDQpjb21tZW50IGlzIGFwcHJl
Y2lhdGVkLg0KDQpOYW95YQ==
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1205673 — [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-12 09:50 +0200
Subject[PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status
Message-ID<pWyXo-6k2-7@gated-at.bofh.it>
In reply to#1205514
Q3VycmVudGx5IHRoZXJlJ3Mgbm8gZWFzeSB3YXkgdG8gZ2V0IHBlci1wcm9jZXNzIHVzYWdlIG9m
IGh1Z2V0bGIgcGFnZXMsIHdoaWNoDQppcyBpbmNvbnZlbmllbnQgYmVjYXVzZSB1c2Vyc3BhY2Ug
YXBwbGljYXRpb25zIHdoaWNoIHVzZSBodWdldGxiIHR5cGljYWxseSB3YW50DQp0byBjb250cm9s
IHRoZWlyIHByb2Nlc3NlcyBvbiB0aGUgYmFzaXMgb2YgaG93IG11Y2ggbWVtb3J5IChpbmNsdWRp
bmcgaHVnZXRsYikNCnRoZXkgdXNlLiBTbyB0aGlzIHBhdGNoIHNpbXBseSBwcm92aWRlcyBlYXN5
IGFjY2VzcyB0byB0aGUgaW5mbyB2aWENCi9wcm9jL1BJRC9zdGF0dXMuDQoNCldpdGggdGhpcyBw
YXRjaCwgZm9yIGV4YW1wbGUsIC9wcm9jL1BJRC9zdGF0dXMgc2hvd3MgYSBsaW5lIGxpa2UgdGhp
czoNCg0KICBIdWdldGxiUGFnZXM6ICAgICAgMjA0ODAga0IgKDEweDIwNDhrQikNCg0KSWYgeW91
ciBzeXN0ZW0gc3VwcG9ydHMgYW5kIGVuYWJsZXMgbXVsdGlwbGUgaHVnZXBhZ2Ugc2l6ZXMsIHRo
ZSBsaW5lIGxvb2tzDQpsaWtlIHRoaXM6DQoNCiAgSHVnZXRsYlBhZ2VzOiAgICAxMDY5MDU2IGtC
ICgxeDEwNDg1NzZrQiAxMHgyMDQ4a0IpDQoNCiwgc28geW91IGNhbiBlYXNpbHkga25vdyBob3cg
bWFueSBodWdlcGFnZXMgaW4gd2hpY2ggcGFnZXNpemUgYXJlIHVzZWQgYnkgYQ0KcHJvY2Vzcy4N
Cg0KU2lnbmVkLW9mZi1ieTogTmFveWEgSG9yaWd1Y2hpIDxuLWhvcmlndWNoaUBhaC5qcC5uZWMu
Y29tPg0KLS0tDQp2MyAtPiB2NDoNCi0gcmVuYW1lIGZpZWxkIChWbUh1Z2V0bGJSU1MgaXMgbm90
IHRoZSBiZXN0IG5hbWUpDQotIGludHJvZHVjZSBzdHJ1Y3QgaHVnZXRsYl91c2FnZSBpbiBzdHJ1
Y3QgbW1fc3RydWN0IChubyBpbnZhc2lvbiB0byBzdHJ1Y3QNCiAgbW1fcnNzX3N0YXQpDQotIGlu
dHJvZHVjZSBodWdldGxiX3JlcG9ydF91c2FnZSgpDQotIG1lcmdlZCBkb2N1bWVudGF0aW9uIHVw
ZGF0ZQ0KDQp2MiAtPiB2MzoNCi0gdXNlIGlubGluZSBmdW5jdGlvbnMgaW5zdGVhZCBvZiBtYWNy
b3MgZm9yICFDT05GSUdfSFVHRVRMQl9QQUdFDQotLS0NCiBEb2N1bWVudGF0aW9uL2ZpbGVzeXN0
ZW1zL3Byb2MudHh0IHwgIDMgKysrDQogZnMvcHJvYy90YXNrX21tdS5jICAgICAgICAgICAgICAg
ICB8ICAxICsNCiBpbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaCAgICAgICAgICAgIHwgMjAgKysrKysr
KysrKysrKysrKysrKysNCiBpbmNsdWRlL2xpbnV4L21tX3R5cGVzLmggICAgICAgICAgIHwgMTAg
KysrKysrKysrKw0KIG1tL2h1Z2V0bGIuYyAgICAgICAgICAgICAgICAgICAgICAgfCAyNyArKysr
KysrKysrKysrKysrKysrKysrKysrKysNCiBtbS9ybWFwLmMgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDQgKysrLQ0KIDYgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgMSBkZWxl
dGlvbigtKQ0KDQpkaWZmIC0tZ2l0IHY0LjItcmM0Lm9yaWcvRG9jdW1lbnRhdGlvbi9maWxlc3lz
dGVtcy9wcm9jLnR4dCB2NC4yLXJjNC9Eb2N1bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3Byb2MudHh0
DQppbmRleCAyMmU0MDIxMWVmNjQuLmU5MmE0YTkxZmM5OSAxMDA2NDQNCi0tLSB2NC4yLXJjNC5v
cmlnL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcHJvYy50eHQNCisrKyB2NC4yLXJjNC9Eb2N1
bWVudGF0aW9uL2ZpbGVzeXN0ZW1zL3Byb2MudHh0DQpAQCAtMTc0LDYgKzE3NCw3IEBAIEZvciBl
eGFtcGxlLCB0byBnZXQgdGhlIHN0YXR1cyBpbmZvcm1hdGlvbiBvZiBhIHByb2Nlc3MsIGFsbCB5
b3UgaGF2ZSB0byBkbyBpcw0KICAgVm1MaWI6ICAgICAgMTQxMiBrQg0KICAgVm1QVEU6ICAgICAg
ICAyMCBrYg0KICAgVm1Td2FwOiAgICAgICAgMCBrQg0KKyAgSHVnZXRsYlBhZ2VzOiAgICAgICAg
ICAwIGtCICgweDIwNDhrQikNCiAgIFRocmVhZHM6ICAgICAgICAxDQogICBTaWdROiAgIDAvMjg1
NzgNCiAgIFNpZ1BuZDogMDAwMDAwMDAwMDAwMDAwMA0KQEAgLTIzNyw2ICsyMzgsOCBAQCBUYWJs
ZSAxLTI6IENvbnRlbnRzIG9mIHRoZSBzdGF0dXMgZmlsZXMgKGFzIG9mIDQuMSkNCiAgVm1QVEUg
ICAgICAgICAgICAgICAgICAgICAgIHNpemUgb2YgcGFnZSB0YWJsZSBlbnRyaWVzDQogIFZtUE1E
ICAgICAgICAgICAgICAgICAgICAgICBzaXplIG9mIHNlY29uZCBsZXZlbCBwYWdlIHRhYmxlcw0K
ICBWbVN3YXAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBvZiBzd2FwIHVzYWdlICh0aGUgbnVt
YmVyIG9mIHJlZmVycmVkIHN3YXBlbnRzKQ0KKyBIdWdldGxiUGFnZXMgICAgICAgICAgICAgICAg
c2l6ZSBvZiBodWdldGxiIG1lbW9yeSBwb3J0aW9ucyAod2l0aCBhZGRpdGlvbmFsIGluZm8NCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFib3V0IG51bWJlciBvZiBtYXBwZWQgaHVnZXBh
Z2VzIGZvciBlYWNoIHBhZ2Ugc2l6ZSkNCiAgVGhyZWFkcyAgICAgICAgICAgICAgICAgICAgIG51
bWJlciBvZiB0aHJlYWRzDQogIFNpZ1EgICAgICAgICAgICAgICAgICAgICAgICBudW1iZXIgb2Yg
c2lnbmFscyBxdWV1ZWQvbWF4LiBudW1iZXIgZm9yIHF1ZXVlDQogIFNpZ1BuZCAgICAgICAgICAg
ICAgICAgICAgICBiaXRtYXAgb2YgcGVuZGluZyBzaWduYWxzIGZvciB0aGUgdGhyZWFkDQpkaWZm
IC0tZ2l0IHY0LjItcmM0Lm9yaWcvZnMvcHJvYy90YXNrX21tdS5jIHY0LjItcmM0L2ZzL3Byb2Mv
dGFza19tbXUuYw0KaW5kZXggMmMzNzkzOGI4MmVlLi5iM2NmN2ZhOWVmNmMgMTAwNjQ0DQotLS0g
djQuMi1yYzQub3JpZy9mcy9wcm9jL3Rhc2tfbW11LmMNCisrKyB2NC4yLXJjNC9mcy9wcm9jL3Rh
c2tfbW11LmMNCkBAIC02OSw2ICs2OSw3IEBAIHZvaWQgdGFza19tZW0oc3RydWN0IHNlcV9maWxl
ICptLCBzdHJ1Y3QgbW1fc3RydWN0ICptbSkNCiAJCXB0ZXMgPj4gMTAsDQogCQlwbWRzID4+IDEw
LA0KIAkJc3dhcCA8PCAoUEFHRV9TSElGVC0xMCkpOw0KKwlodWdldGxiX3JlcG9ydF91c2FnZSht
LCBtbSk7DQogfQ0KIA0KIHVuc2lnbmVkIGxvbmcgdGFza192c2l6ZShzdHJ1Y3QgbW1fc3RydWN0
ICptbSkNCmRpZmYgLS1naXQgdjQuMi1yYzQub3JpZy9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaCB2
NC4yLXJjNC9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaA0KaW5kZXggZDg5MWY5NDk0NjZhLi42NGFh
NGRiMDFmNDggMTAwNjQ0DQotLS0gdjQuMi1yYzQub3JpZy9pbmNsdWRlL2xpbnV4L2h1Z2V0bGIu
aA0KKysrIHY0LjItcmM0L2luY2x1ZGUvbGludXgvaHVnZXRsYi5oDQpAQCAtNDY5LDYgKzQ2OSwx
OCBAQCBzdGF0aWMgaW5saW5lIHNwaW5sb2NrX3QgKmh1Z2VfcHRlX2xvY2twdHIoc3RydWN0IGhz
dGF0ZSAqaCwNCiAjZGVmaW5lIGh1Z2VwYWdlc19zdXBwb3J0ZWQoKSAoSFBBR0VfU0hJRlQgIT0g
MCkNCiAjZW5kaWYNCiANCit2b2lkIGh1Z2V0bGJfcmVwb3J0X3VzYWdlKHN0cnVjdCBzZXFfZmls
ZSAqbSwgc3RydWN0IG1tX3N0cnVjdCAqbW0pOw0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCBpbmNf
aHVnZXRsYl9jb3VudChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IGhzdGF0ZSAqaCkNCit7
DQorCWF0b21pY19sb25nX2luYygmbW0tPmh1Z2V0bGJfdXNhZ2UuY291bnRbaHN0YXRlX2luZGV4
KGgpXSk7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCBkZWNfaHVnZXRsYl9jb3VudChzdHJ1
Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IGhzdGF0ZSAqaCkNCit7DQorCWF0b21pY19sb25nX2Rl
YygmbW0tPmh1Z2V0bGJfdXNhZ2UuY291bnRbaHN0YXRlX2luZGV4KGgpXSk7DQorfQ0KKw0KICNl
bHNlCS8qIENPTkZJR19IVUdFVExCX1BBR0UgKi8NCiBzdHJ1Y3QgaHN0YXRlIHt9Ow0KICNkZWZp
bmUgYWxsb2NfaHVnZV9wYWdlX25vZGUoaCwgbmlkKSBOVUxMDQpAQCAtNTA0LDYgKzUxNiwxNCBA
QCBzdGF0aWMgaW5saW5lIHNwaW5sb2NrX3QgKmh1Z2VfcHRlX2xvY2twdHIoc3RydWN0IGhzdGF0
ZSAqaCwNCiB7DQogCXJldHVybiAmbW0tPnBhZ2VfdGFibGVfbG9jazsNCiB9DQorDQorc3RhdGlj
IGlubGluZSB2b2lkIGh1Z2V0bGJfcmVwb3J0X3VzYWdlKHN0cnVjdCBzZXFfZmlsZSAqZiwgc3Ry
dWN0IG1tX3N0cnVjdCAqbSkNCit7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCBkZWNfaHVn
ZXRsYl9jb3VudChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IGhzdGF0ZSAqaCkNCit7DQor
fQ0KICNlbmRpZgkvKiBDT05GSUdfSFVHRVRMQl9QQUdFICovDQogDQogc3RhdGljIGlubGluZSBz
cGlubG9ja190ICpodWdlX3B0ZV9sb2NrKHN0cnVjdCBoc3RhdGUgKmgsDQpkaWZmIC0tZ2l0IHY0
LjItcmM0Lm9yaWcvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIHY0LjItcmM0L2luY2x1ZGUvbGlu
dXgvbW1fdHlwZXMuaA0KaW5kZXggMDAzOGFjNzQ2NmZkLi5lOTVjNWZlMWViN2QgMTAwNjQ0DQot
LS0gdjQuMi1yYzQub3JpZy9pbmNsdWRlL2xpbnV4L21tX3R5cGVzLmgNCisrKyB2NC4yLXJjNC9p
bmNsdWRlL2xpbnV4L21tX3R5cGVzLmgNCkBAIC0zNjQsNiArMzY0LDEyIEBAIHN0cnVjdCBtbV9y
c3Nfc3RhdCB7DQogCWF0b21pY19sb25nX3QgY291bnRbTlJfTU1fQ09VTlRFUlNdOw0KIH07DQog
DQorI2lmZGVmIENPTkZJR19IVUdFVExCX1BBR0UNCitzdHJ1Y3QgaHVnZXRsYl91c2FnZSB7DQor
CWF0b21pY19sb25nX3QgY291bnRbSFVHRV9NQVhfSFNUQVRFXTsNCit9Ow0KKyNlbmRpZg0KKw0K
IHN0cnVjdCBraW9jdHhfdGFibGU7DQogc3RydWN0IG1tX3N0cnVjdCB7DQogCXN0cnVjdCB2bV9h
cmVhX3N0cnVjdCAqbW1hcDsJCS8qIGxpc3Qgb2YgVk1BcyAqLw0KQEAgLTQ4NCw2ICs0OTAsMTAg
QEAgc3RydWN0IG1tX3N0cnVjdCB7DQogCS8qIGFkZHJlc3Mgb2YgdGhlIGJvdW5kcyBkaXJlY3Rv
cnkgKi8NCiAJdm9pZCBfX3VzZXIgKmJkX2FkZHI7DQogI2VuZGlmDQorDQorI2lmZGVmIENPTkZJ
R19IVUdFVExCX1BBR0UNCisJc3RydWN0IGh1Z2V0bGJfdXNhZ2UgaHVnZXRsYl91c2FnZTsNCisj
ZW5kaWYNCiB9Ow0KIA0KIHN0YXRpYyBpbmxpbmUgdm9pZCBtbV9pbml0X2NwdW1hc2soc3RydWN0
IG1tX3N0cnVjdCAqbW0pDQpkaWZmIC0tZ2l0IHY0LjItcmM0Lm9yaWcvbW0vaHVnZXRsYi5jIHY0
LjItcmM0L21tL2h1Z2V0bGIuYw0KaW5kZXggYThjMzA4NzA4OWQ4Li5iODkwNDMxZDA3NjMgMTAw
NjQ0DQotLS0gdjQuMi1yYzQub3JpZy9tbS9odWdldGxiLmMNCisrKyB2NC4yLXJjNC9tbS9odWdl
dGxiLmMNCkBAIC0yNTYyLDYgKzI1NjIsMzAgQEAgdm9pZCBodWdldGxiX3Nob3dfbWVtaW5mbyh2
b2lkKQ0KIAkJCQkxVUwgPDwgKGh1Z2VfcGFnZV9vcmRlcihoKSArIFBBR0VfU0hJRlQgLSAxMCkp
Ow0KIH0NCiANCit2b2lkIGh1Z2V0bGJfcmVwb3J0X3VzYWdlKHN0cnVjdCBzZXFfZmlsZSAqbSwg
c3RydWN0IG1tX3N0cnVjdCAqbW0pDQorew0KKwlpbnQgaTsNCisJdW5zaWduZWQgbG9uZyB0b3Rh
bF91c2FnZSA9IDA7DQorDQorCWZvciAoaSA9IDA7IGkgPCBIVUdFX01BWF9IU1RBVEU7IGkrKykg
ew0KKwkJdG90YWxfdXNhZ2UgKz0gYXRvbWljX2xvbmdfcmVhZCgmbW0tPmh1Z2V0bGJfdXNhZ2Uu
Y291bnRbaV0pICoNCisJCQkoaHVnZV9wYWdlX3NpemUoJmhzdGF0ZXNbaV0pID4+IDEwKTsNCisJ
fQ0KKw0KKwlzZXFfcHJpbnRmKG0sICJIdWdldGxiUGFnZXM6XHQlOGx1IGtCICgiLCB0b3RhbF91
c2FnZSk7DQorCWZvciAoaSA9IDA7IGkgPCBIVUdFX01BWF9IU1RBVEU7IGkrKykgew0KKwkJaWYg
KGh1Z2VfcGFnZV9vcmRlcigmaHN0YXRlc1tpXSkgPT0gMCkNCisJCQlicmVhazsNCisJCWlmIChp
ID4gMCkNCisJCQlzZXFfcHV0cyhtLCAiICIpOw0KKw0KKwkJc2VxX3ByaW50ZihtLCAiJWxkeCVk
a0IiLA0KKwkJCWF0b21pY19sb25nX3JlYWQoJm1tLT5odWdldGxiX3VzYWdlLmNvdW50W2ldKSwN
CisJCQlodWdlX3BhZ2Vfc2l6ZSgmaHN0YXRlc1tpXSkgPj4gMTApOw0KKwl9DQorCXNlcV9wdXRz
KG0sICIpXG4iKTsNCit9DQorDQogLyogUmV0dXJuIHRoZSBudW1iZXIgcGFnZXMgb2YgbWVtb3J5
IHdlIHBoeXNpY2FsbHkgaGF2ZSwgaW4gUEFHRV9TSVpFIHVuaXRzLiAqLw0KIHVuc2lnbmVkIGxv
bmcgaHVnZXRsYl90b3RhbF9wYWdlcyh2b2lkKQ0KIHsNCkBAIC0yNzk3LDYgKzI4MjEsNyBAQCBp
bnQgY29weV9odWdldGxiX3BhZ2VfcmFuZ2Uoc3RydWN0IG1tX3N0cnVjdCAqZHN0LCBzdHJ1Y3Qg
bW1fc3RydWN0ICpzcmMsDQogCQkJZ2V0X3BhZ2UocHRlcGFnZSk7DQogCQkJcGFnZV9kdXBfcm1h
cChwdGVwYWdlKTsNCiAJCQlzZXRfaHVnZV9wdGVfYXQoZHN0LCBhZGRyLCBkc3RfcHRlLCBlbnRy
eSk7DQorCQkJaW5jX2h1Z2V0bGJfY291bnQoZHN0LCBoKTsNCiAJCX0NCiAJCXNwaW5fdW5sb2Nr
KHNyY19wdGwpOw0KIAkJc3Bpbl91bmxvY2soZHN0X3B0bCk7DQpAQCAtMjg3Nyw2ICsyOTAyLDcg
QEAgdm9pZCBfX3VubWFwX2h1Z2VwYWdlX3JhbmdlKHN0cnVjdCBtbXVfZ2F0aGVyICp0bGIsIHN0
cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hLA0KIAkJaWYgKGh1Z2VfcHRlX2RpcnR5KHB0ZSkpDQog
CQkJc2V0X3BhZ2VfZGlydHkocGFnZSk7DQogDQorCQlkZWNfaHVnZXRsYl9jb3VudChtbSwgaCk7
DQogCQlwYWdlX3JlbW92ZV9ybWFwKHBhZ2UpOw0KIAkJZm9yY2VfZmx1c2ggPSAhX190bGJfcmVt
b3ZlX3BhZ2UodGxiLCBwYWdlKTsNCiAJCWlmIChmb3JjZV9mbHVzaCkgew0KQEAgLTMyNjEsNiAr
MzI4Nyw3IEBAIHN0YXRpYyBpbnQgaHVnZXRsYl9ub19wYWdlKHN0cnVjdCBtbV9zdHJ1Y3QgKm1t
LCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJCQkJJiYgKHZtYS0+dm1fZmxhZ3MgJiBW
TV9TSEFSRUQpKSk7DQogCXNldF9odWdlX3B0ZV9hdChtbSwgYWRkcmVzcywgcHRlcCwgbmV3X3B0
ZSk7DQogDQorCWluY19odWdldGxiX2NvdW50KG1tLCBoKTsNCiAJaWYgKChmbGFncyAmIEZBVUxU
X0ZMQUdfV1JJVEUpICYmICEodm1hLT52bV9mbGFncyAmIFZNX1NIQVJFRCkpIHsNCiAJCS8qIE9w
dGltaXphdGlvbiwgZG8gdGhlIENPVyB3aXRob3V0IGEgc2Vjb25kIGZhdWx0ICovDQogCQlyZXQg
PSBodWdldGxiX2NvdyhtbSwgdm1hLCBhZGRyZXNzLCBwdGVwLCBuZXdfcHRlLCBwYWdlLCBwdGwp
Ow0KZGlmZiAtLWdpdCB2NC4yLXJjNC5vcmlnL21tL3JtYXAuYyB2NC4yLXJjNC9tbS9ybWFwLmMN
CmluZGV4IDE3MWI2ODc2OGRmMS4uYjMzMjc4YmM0ZGRiIDEwMDY0NA0KLS0tIHY0LjItcmM0Lm9y
aWcvbW0vcm1hcC5jDQorKysgdjQuMi1yYzQvbW0vcm1hcC5jDQpAQCAtMTIzMCw3ICsxMjMwLDkg
QEAgc3RhdGljIGludCB0cnlfdG9fdW5tYXBfb25lKHN0cnVjdCBwYWdlICpwYWdlLCBzdHJ1Y3Qg
dm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJdXBkYXRlX2hpd2F0ZXJfcnNzKG1tKTsNCiANCiAJaWYg
KFBhZ2VIV1BvaXNvbihwYWdlKSAmJiAhKGZsYWdzICYgVFRVX0lHTk9SRV9IV1BPSVNPTikpIHsN
Ci0JCWlmICghUGFnZUh1Z2UocGFnZSkpIHsNCisJCWlmIChQYWdlSHVnZShwYWdlKSkgew0KKwkJ
CWRlY19odWdldGxiX2NvdW50KG1tLCBwYWdlX2hzdGF0ZShwYWdlKSk7DQorCQl9IGVsc2Ugew0K
IAkJCWlmIChQYWdlQW5vbihwYWdlKSkNCiAJCQkJZGVjX21tX2NvdW50ZXIobW0sIE1NX0FOT05Q
QUdFUyk7DQogCQkJZWxzZQ0KLS0gDQoyLjQuMw0K
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1206366 — Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status

FromDavid Rientjes <rientjes@google.com>
Date2015-08-12 22:40 +0200
SubjectRe: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status
Message-ID<pWKYy-6Q7-19@gated-at.bofh.it>
In reply to#1205673
On Wed, 12 Aug 2015, Naoya Horiguchi wrote:

> Currently there's no easy way to get per-process usage of hugetlb pages, which
> is inconvenient because userspace applications which use hugetlb typically want
> to control their processes on the basis of how much memory (including hugetlb)
> they use. So this patch simply provides easy access to the info via
> /proc/PID/status.
> 
> With this patch, for example, /proc/PID/status shows a line like this:
> 
>   HugetlbPages:      20480 kB (10x2048kB)
> 
> If your system supports and enables multiple hugepage sizes, the line looks
> like this:
> 
>   HugetlbPages:    1069056 kB (1x1048576kB 10x2048kB)
> 
> , so you can easily know how many hugepages in which pagesize are used by a
> process.
> 
> Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>

I'm happy with this and thanks very much for going the extra mile and 
breaking the usage down by hstate size.

I'd be interested in the comments of others, though, to see if there is 
any reservation about the hstate size breakdown.  It may actually find no 
current customer who is interested in parsing it.  (If we keep it, I would 
suggest the 'x' change to '*' similar to per-order breakdowns in 
show_mem()).  It may also be possible to add it later if a definitive 
usecase is presented.

But overall I'm very happy with the new addition and think it's a good 
solution to the problem.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1206443 — Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status

FromNaoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Date2015-08-13 02:50 +0200
SubjectRe: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status
Message-ID<pWOSu-43r-9@gated-at.bofh.it>
In reply to#1206366
T24gV2VkLCBBdWcgMTIsIDIwMTUgYXQgMDE6MzA6MjdQTSAtMDcwMCwgRGF2aWQgUmllbnRqZXMg
d3JvdGU6DQo+IE9uIFdlZCwgMTIgQXVnIDIwMTUsIE5hb3lhIEhvcmlndWNoaSB3cm90ZToNCj4g
DQo+ID4gQ3VycmVudGx5IHRoZXJlJ3Mgbm8gZWFzeSB3YXkgdG8gZ2V0IHBlci1wcm9jZXNzIHVz
YWdlIG9mIGh1Z2V0bGIgcGFnZXMsIHdoaWNoDQo+ID4gaXMgaW5jb252ZW5pZW50IGJlY2F1c2Ug
dXNlcnNwYWNlIGFwcGxpY2F0aW9ucyB3aGljaCB1c2UgaHVnZXRsYiB0eXBpY2FsbHkgd2FudA0K
PiA+IHRvIGNvbnRyb2wgdGhlaXIgcHJvY2Vzc2VzIG9uIHRoZSBiYXNpcyBvZiBob3cgbXVjaCBt
ZW1vcnkgKGluY2x1ZGluZyBodWdldGxiKQ0KPiA+IHRoZXkgdXNlLiBTbyB0aGlzIHBhdGNoIHNp
bXBseSBwcm92aWRlcyBlYXN5IGFjY2VzcyB0byB0aGUgaW5mbyB2aWENCj4gPiAvcHJvYy9QSUQv
c3RhdHVzLg0KPiA+IA0KPiA+IFdpdGggdGhpcyBwYXRjaCwgZm9yIGV4YW1wbGUsIC9wcm9jL1BJ
RC9zdGF0dXMgc2hvd3MgYSBsaW5lIGxpa2UgdGhpczoNCj4gPiANCj4gPiAgIEh1Z2V0bGJQYWdl
czogICAgICAyMDQ4MCBrQiAoMTB4MjA0OGtCKQ0KPiA+IA0KPiA+IElmIHlvdXIgc3lzdGVtIHN1
cHBvcnRzIGFuZCBlbmFibGVzIG11bHRpcGxlIGh1Z2VwYWdlIHNpemVzLCB0aGUgbGluZSBsb29r
cw0KPiA+IGxpa2UgdGhpczoNCj4gPiANCj4gPiAgIEh1Z2V0bGJQYWdlczogICAgMTA2OTA1NiBr
QiAoMXgxMDQ4NTc2a0IgMTB4MjA0OGtCKQ0KPiA+IA0KPiA+ICwgc28geW91IGNhbiBlYXNpbHkg
a25vdyBob3cgbWFueSBodWdlcGFnZXMgaW4gd2hpY2ggcGFnZXNpemUgYXJlIHVzZWQgYnkgYQ0K
PiA+IHByb2Nlc3MuDQo+ID4gDQo+ID4gU2lnbmVkLW9mZi1ieTogTmFveWEgSG9yaWd1Y2hpIDxu
LWhvcmlndWNoaUBhaC5qcC5uZWMuY29tPg0KPiANCj4gSSdtIGhhcHB5IHdpdGggdGhpcyBhbmQg
dGhhbmtzIHZlcnkgbXVjaCBmb3IgZ29pbmcgdGhlIGV4dHJhIG1pbGUgYW5kIA0KPiBicmVha2lu
ZyB0aGUgdXNhZ2UgZG93biBieSBoc3RhdGUgc2l6ZS4NCg0KR3JlYXQgdG8gaGVhciB0aGF0Lg0K
DQo+IEknZCBiZSBpbnRlcmVzdGVkIGluIHRoZSBjb21tZW50cyBvZiBvdGhlcnMsIHRob3VnaCwg
dG8gc2VlIGlmIHRoZXJlIGlzIA0KPiBhbnkgcmVzZXJ2YXRpb24gYWJvdXQgdGhlIGhzdGF0ZSBz
aXplIGJyZWFrZG93bi4gIEl0IG1heSBhY3R1YWxseSBmaW5kIG5vIA0KPiBjdXJyZW50IGN1c3Rv
bWVyIHdobyBpcyBpbnRlcmVzdGVkIGluIHBhcnNpbmcgaXQuICAoSWYgd2Uga2VlcCBpdCwgSSB3
b3VsZCANCj4gc3VnZ2VzdCB0aGUgJ3gnIGNoYW5nZSB0byAnKicgc2ltaWxhciB0byBwZXItb3Jk
ZXIgYnJlYWtkb3ducyBpbiANCj4gc2hvd19tZW0oKSkuICBJdCBtYXkgYWxzbyBiZSBwb3NzaWJs
ZSB0byBhZGQgaXQgbGF0ZXIgaWYgYSBkZWZpbml0aXZlIA0KPiB1c2VjYXNlIGlzIHByZXNlbnRl
ZC4NCg0KSSdtIGZpbmUgdG8gY2hhbmdlIHRvICcqJy4NCg0KVGhhbmtzLA0KTmFveWEgSG9yaWd1
Y2hpDQotLS0NCkZyb206IE5hb3lhIEhvcmlndWNoaSA8bi1ob3JpZ3VjaGlAYWguanAubmVjLmNv
bT4NClN1YmplY3Q6IFtQQVRDSF0gbW06IGh1Z2V0bGI6IHByb2M6IGFkZCBIdWdldGxiUGFnZXMg
ZmllbGQgdG8gL3Byb2MvUElEL3N0YXR1cw0KDQpDdXJyZW50bHkgdGhlcmUncyBubyBlYXN5IHdh
eSB0byBnZXQgcGVyLXByb2Nlc3MgdXNhZ2Ugb2YgaHVnZXRsYiBwYWdlcywgd2hpY2gNCmlzIGlu
Y29udmVuaWVudCBiZWNhdXNlIHVzZXJzcGFjZSBhcHBsaWNhdGlvbnMgd2hpY2ggdXNlIGh1Z2V0
bGIgdHlwaWNhbGx5IHdhbnQNCnRvIGNvbnRyb2wgdGhlaXIgcHJvY2Vzc2VzIG9uIHRoZSBiYXNp
cyBvZiBob3cgbXVjaCBtZW1vcnkgKGluY2x1ZGluZyBodWdldGxiKQ0KdGhleSB1c2UuIFNvIHRo
aXMgcGF0Y2ggc2ltcGx5IHByb3ZpZGVzIGVhc3kgYWNjZXNzIHRvIHRoZSBpbmZvIHZpYQ0KL3By
b2MvUElEL3N0YXR1cy4NCg0KV2l0aCB0aGlzIHBhdGNoLCBmb3IgZXhhbXBsZSwgL3Byb2MvUElE
L3N0YXR1cyBzaG93cyBhIGxpbmUgbGlrZSB0aGlzOg0KDQogIEh1Z2V0bGJQYWdlczogICAgICAy
MDQ4MCBrQiAoMTAqMjA0OGtCKQ0KDQpJZiB5b3VyIHN5c3RlbSBzdXBwb3J0cyBhbmQgZW5hYmxl
cyBtdWx0aXBsZSBodWdlcGFnZSBzaXplcywgdGhlIGxpbmUgbG9va3MNCmxpa2UgdGhpczoNCg0K
ICBIdWdldGxiUGFnZXM6ICAgIDEwNjkwNTYga0IgKDEqMTA0ODU3NmtCIDEwKjIwNDhrQikNCg0K
LCBzbyB5b3UgY2FuIGVhc2lseSBrbm93IGhvdyBtYW55IGh1Z2VwYWdlcyBpbiB3aGljaCBwYWdl
c2l6ZSBhcmUgdXNlZCBieSBhDQpwcm9jZXNzLg0KDQpTaWduZWQtb2ZmLWJ5OiBOYW95YSBIb3Jp
Z3VjaGkgPG4taG9yaWd1Y2hpQGFoLmpwLm5lYy5jb20+DQotLS0NCiBEb2N1bWVudGF0aW9uL2Zp
bGVzeXN0ZW1zL3Byb2MudHh0IHwgIDMgKysrDQogZnMvcHJvYy90YXNrX21tdS5jICAgICAgICAg
ICAgICAgICB8ICAxICsNCiBpbmNsdWRlL2xpbnV4L2h1Z2V0bGIuaCAgICAgICAgICAgIHwgMjAg
KysrKysrKysrKysrKysrKysrKysNCiBpbmNsdWRlL2xpbnV4L21tX3R5cGVzLmggICAgICAgICAg
IHwgMTAgKysrKysrKysrKw0KIG1tL2h1Z2V0bGIuYyAgICAgICAgICAgICAgICAgICAgICAgfCAy
NyArKysrKysrKysrKysrKysrKysrKysrKysrKysNCiBtbS9ybWFwLmMgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgIDQgKysrLQ0KIDYgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwg
MSBkZWxldGlvbigtKQ0KDQpkaWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9w
cm9jLnR4dCBiL0RvY3VtZW50YXRpb24vZmlsZXN5c3RlbXMvcHJvYy50eHQNCmluZGV4IDIyZTQw
MjExZWY2NC4uZjU2MWZjNDZlNDFiIDEwMDY0NA0KLS0tIGEvRG9jdW1lbnRhdGlvbi9maWxlc3lz
dGVtcy9wcm9jLnR4dA0KKysrIGIvRG9jdW1lbnRhdGlvbi9maWxlc3lzdGVtcy9wcm9jLnR4dA0K
QEAgLTE3NCw2ICsxNzQsNyBAQCBGb3IgZXhhbXBsZSwgdG8gZ2V0IHRoZSBzdGF0dXMgaW5mb3Jt
YXRpb24gb2YgYSBwcm9jZXNzLCBhbGwgeW91IGhhdmUgdG8gZG8gaXMNCiAgIFZtTGliOiAgICAg
IDE0MTIga0INCiAgIFZtUFRFOiAgICAgICAgMjAga2INCiAgIFZtU3dhcDogICAgICAgIDAga0IN
CisgIEh1Z2V0bGJQYWdlczogICAgICAgICAgMCBrQiAoMCoyMDQ4a0IpDQogICBUaHJlYWRzOiAg
ICAgICAgMQ0KICAgU2lnUTogICAwLzI4NTc4DQogICBTaWdQbmQ6IDAwMDAwMDAwMDAwMDAwMDAN
CkBAIC0yMzcsNiArMjM4LDggQEAgVGFibGUgMS0yOiBDb250ZW50cyBvZiB0aGUgc3RhdHVzIGZp
bGVzIChhcyBvZiA0LjEpDQogIFZtUFRFICAgICAgICAgICAgICAgICAgICAgICBzaXplIG9mIHBh
Z2UgdGFibGUgZW50cmllcw0KICBWbVBNRCAgICAgICAgICAgICAgICAgICAgICAgc2l6ZSBvZiBz
ZWNvbmQgbGV2ZWwgcGFnZSB0YWJsZXMNCiAgVm1Td2FwICAgICAgICAgICAgICAgICAgICAgIHNp
emUgb2Ygc3dhcCB1c2FnZSAodGhlIG51bWJlciBvZiByZWZlcnJlZCBzd2FwZW50cykNCisgSHVn
ZXRsYlBhZ2VzICAgICAgICAgICAgICAgIHNpemUgb2YgaHVnZXRsYiBtZW1vcnkgcG9ydGlvbnMg
KHdpdGggYWRkaXRpb25hbCBpbmZvDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhYm91
dCBudW1iZXIgb2YgbWFwcGVkIGh1Z2VwYWdlcyBmb3IgZWFjaCBwYWdlIHNpemUpDQogIFRocmVh
ZHMgICAgICAgICAgICAgICAgICAgICBudW1iZXIgb2YgdGhyZWFkcw0KICBTaWdRICAgICAgICAg
ICAgICAgICAgICAgICAgbnVtYmVyIG9mIHNpZ25hbHMgcXVldWVkL21heC4gbnVtYmVyIGZvciBx
dWV1ZQ0KICBTaWdQbmQgICAgICAgICAgICAgICAgICAgICAgYml0bWFwIG9mIHBlbmRpbmcgc2ln
bmFscyBmb3IgdGhlIHRocmVhZA0KZGlmZiAtLWdpdCBhL2ZzL3Byb2MvdGFza19tbXUuYyBiL2Zz
L3Byb2MvdGFza19tbXUuYw0KaW5kZXggMmMzNzkzOGI4MmVlLi5iM2NmN2ZhOWVmNmMgMTAwNjQ0
DQotLS0gYS9mcy9wcm9jL3Rhc2tfbW11LmMNCisrKyBiL2ZzL3Byb2MvdGFza19tbXUuYw0KQEAg
LTY5LDYgKzY5LDcgQEAgdm9pZCB0YXNrX21lbShzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBt
bV9zdHJ1Y3QgKm1tKQ0KIAkJcHRlcyA+PiAxMCwNCiAJCXBtZHMgPj4gMTAsDQogCQlzd2FwIDw8
IChQQUdFX1NISUZULTEwKSk7DQorCWh1Z2V0bGJfcmVwb3J0X3VzYWdlKG0sIG1tKTsNCiB9DQog
DQogdW5zaWduZWQgbG9uZyB0YXNrX3ZzaXplKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQ0KZGlmZiAt
LWdpdCBhL2luY2x1ZGUvbGludXgvaHVnZXRsYi5oIGIvaW5jbHVkZS9saW51eC9odWdldGxiLmgN
CmluZGV4IGQ4OTFmOTQ5NDY2YS4uNjRhYTRkYjAxZjQ4IDEwMDY0NA0KLS0tIGEvaW5jbHVkZS9s
aW51eC9odWdldGxiLmgNCisrKyBiL2luY2x1ZGUvbGludXgvaHVnZXRsYi5oDQpAQCAtNDY5LDYg
KzQ2OSwxOCBAQCBzdGF0aWMgaW5saW5lIHNwaW5sb2NrX3QgKmh1Z2VfcHRlX2xvY2twdHIoc3Ry
dWN0IGhzdGF0ZSAqaCwNCiAjZGVmaW5lIGh1Z2VwYWdlc19zdXBwb3J0ZWQoKSAoSFBBR0VfU0hJ
RlQgIT0gMCkNCiAjZW5kaWYNCiANCit2b2lkIGh1Z2V0bGJfcmVwb3J0X3VzYWdlKHN0cnVjdCBz
ZXFfZmlsZSAqbSwgc3RydWN0IG1tX3N0cnVjdCAqbW0pOw0KKw0KK3N0YXRpYyBpbmxpbmUgdm9p
ZCBpbmNfaHVnZXRsYl9jb3VudChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IGhzdGF0ZSAq
aCkNCit7DQorCWF0b21pY19sb25nX2luYygmbW0tPmh1Z2V0bGJfdXNhZ2UuY291bnRbaHN0YXRl
X2luZGV4KGgpXSk7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCBkZWNfaHVnZXRsYl9jb3Vu
dChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IGhzdGF0ZSAqaCkNCit7DQorCWF0b21pY19s
b25nX2RlYygmbW0tPmh1Z2V0bGJfdXNhZ2UuY291bnRbaHN0YXRlX2luZGV4KGgpXSk7DQorfQ0K
Kw0KICNlbHNlCS8qIENPTkZJR19IVUdFVExCX1BBR0UgKi8NCiBzdHJ1Y3QgaHN0YXRlIHt9Ow0K
ICNkZWZpbmUgYWxsb2NfaHVnZV9wYWdlX25vZGUoaCwgbmlkKSBOVUxMDQpAQCAtNTA0LDYgKzUx
NiwxNCBAQCBzdGF0aWMgaW5saW5lIHNwaW5sb2NrX3QgKmh1Z2VfcHRlX2xvY2twdHIoc3RydWN0
IGhzdGF0ZSAqaCwNCiB7DQogCXJldHVybiAmbW0tPnBhZ2VfdGFibGVfbG9jazsNCiB9DQorDQor
c3RhdGljIGlubGluZSB2b2lkIGh1Z2V0bGJfcmVwb3J0X3VzYWdlKHN0cnVjdCBzZXFfZmlsZSAq
Ziwgc3RydWN0IG1tX3N0cnVjdCAqbSkNCit7DQorfQ0KKw0KK3N0YXRpYyBpbmxpbmUgdm9pZCBk
ZWNfaHVnZXRsYl9jb3VudChzdHJ1Y3QgbW1fc3RydWN0ICptbSwgc3RydWN0IGhzdGF0ZSAqaCkN
Cit7DQorfQ0KICNlbmRpZgkvKiBDT05GSUdfSFVHRVRMQl9QQUdFICovDQogDQogc3RhdGljIGlu
bGluZSBzcGlubG9ja190ICpodWdlX3B0ZV9sb2NrKHN0cnVjdCBoc3RhdGUgKmgsDQpkaWZmIC0t
Z2l0IGEvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5o
DQppbmRleCAwMDM4YWM3NDY2ZmQuLmU5NWM1ZmUxZWI3ZCAxMDA2NDQNCi0tLSBhL2luY2x1ZGUv
bGludXgvbW1fdHlwZXMuaA0KKysrIGIvaW5jbHVkZS9saW51eC9tbV90eXBlcy5oDQpAQCAtMzY0
LDYgKzM2NCwxMiBAQCBzdHJ1Y3QgbW1fcnNzX3N0YXQgew0KIAlhdG9taWNfbG9uZ190IGNvdW50
W05SX01NX0NPVU5URVJTXTsNCiB9Ow0KIA0KKyNpZmRlZiBDT05GSUdfSFVHRVRMQl9QQUdFDQor
c3RydWN0IGh1Z2V0bGJfdXNhZ2Ugew0KKwlhdG9taWNfbG9uZ190IGNvdW50W0hVR0VfTUFYX0hT
VEFURV07DQorfTsNCisjZW5kaWYNCisNCiBzdHJ1Y3Qga2lvY3R4X3RhYmxlOw0KIHN0cnVjdCBt
bV9zdHJ1Y3Qgew0KIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKm1tYXA7CQkvKiBsaXN0IG9mIFZN
QXMgKi8NCkBAIC00ODQsNiArNDkwLDEwIEBAIHN0cnVjdCBtbV9zdHJ1Y3Qgew0KIAkvKiBhZGRy
ZXNzIG9mIHRoZSBib3VuZHMgZGlyZWN0b3J5ICovDQogCXZvaWQgX191c2VyICpiZF9hZGRyOw0K
ICNlbmRpZg0KKw0KKyNpZmRlZiBDT05GSUdfSFVHRVRMQl9QQUdFDQorCXN0cnVjdCBodWdldGxi
X3VzYWdlIGh1Z2V0bGJfdXNhZ2U7DQorI2VuZGlmDQogfTsNCiANCiBzdGF0aWMgaW5saW5lIHZv
aWQgbW1faW5pdF9jcHVtYXNrKHN0cnVjdCBtbV9zdHJ1Y3QgKm1tKQ0KZGlmZiAtLWdpdCBhL21t
L2h1Z2V0bGIuYyBiL21tL2h1Z2V0bGIuYw0KaW5kZXggYThjMzA4NzA4OWQ4Li4yMzM4Yzk3MTNi
N2EgMTAwNjQ0DQotLS0gYS9tbS9odWdldGxiLmMNCisrKyBiL21tL2h1Z2V0bGIuYw0KQEAgLTI1
NjIsNiArMjU2MiwzMCBAQCB2b2lkIGh1Z2V0bGJfc2hvd19tZW1pbmZvKHZvaWQpDQogCQkJCTFV
TCA8PCAoaHVnZV9wYWdlX29yZGVyKGgpICsgUEFHRV9TSElGVCAtIDEwKSk7DQogfQ0KIA0KK3Zv
aWQgaHVnZXRsYl9yZXBvcnRfdXNhZ2Uoc3RydWN0IHNlcV9maWxlICptLCBzdHJ1Y3QgbW1fc3Ry
dWN0ICptbSkNCit7DQorCWludCBpOw0KKwl1bnNpZ25lZCBsb25nIHRvdGFsX3VzYWdlID0gMDsN
CisNCisJZm9yIChpID0gMDsgaSA8IEhVR0VfTUFYX0hTVEFURTsgaSsrKSB7DQorCQl0b3RhbF91
c2FnZSArPSBhdG9taWNfbG9uZ19yZWFkKCZtbS0+aHVnZXRsYl91c2FnZS5jb3VudFtpXSkgKg0K
KwkJCShodWdlX3BhZ2Vfc2l6ZSgmaHN0YXRlc1tpXSkgPj4gMTApOw0KKwl9DQorDQorCXNlcV9w
cmludGYobSwgIkh1Z2V0bGJQYWdlczpcdCU4bHUga0IgKCIsIHRvdGFsX3VzYWdlKTsNCisJZm9y
IChpID0gMDsgaSA8IEhVR0VfTUFYX0hTVEFURTsgaSsrKSB7DQorCQlpZiAoaHVnZV9wYWdlX29y
ZGVyKCZoc3RhdGVzW2ldKSA9PSAwKQ0KKwkJCWJyZWFrOw0KKwkJaWYgKGkgPiAwKQ0KKwkJCXNl
cV9wdXRzKG0sICIgIik7DQorDQorCQlzZXFfcHJpbnRmKG0sICIlbGQqJWRrQiIsDQorCQkJYXRv
bWljX2xvbmdfcmVhZCgmbW0tPmh1Z2V0bGJfdXNhZ2UuY291bnRbaV0pLA0KKwkJCWh1Z2VfcGFn
ZV9zaXplKCZoc3RhdGVzW2ldKSA+PiAxMCk7DQorCX0NCisJc2VxX3B1dHMobSwgIilcbiIpOw0K
K30NCisNCiAvKiBSZXR1cm4gdGhlIG51bWJlciBwYWdlcyBvZiBtZW1vcnkgd2UgcGh5c2ljYWxs
eSBoYXZlLCBpbiBQQUdFX1NJWkUgdW5pdHMuICovDQogdW5zaWduZWQgbG9uZyBodWdldGxiX3Rv
dGFsX3BhZ2VzKHZvaWQpDQogew0KQEAgLTI3OTcsNiArMjgyMSw3IEBAIGludCBjb3B5X2h1Z2V0
bGJfcGFnZV9yYW5nZShzdHJ1Y3QgbW1fc3RydWN0ICpkc3QsIHN0cnVjdCBtbV9zdHJ1Y3QgKnNy
YywNCiAJCQlnZXRfcGFnZShwdGVwYWdlKTsNCiAJCQlwYWdlX2R1cF9ybWFwKHB0ZXBhZ2UpOw0K
IAkJCXNldF9odWdlX3B0ZV9hdChkc3QsIGFkZHIsIGRzdF9wdGUsIGVudHJ5KTsNCisJCQlpbmNf
aHVnZXRsYl9jb3VudChkc3QsIGgpOw0KIAkJfQ0KIAkJc3Bpbl91bmxvY2soc3JjX3B0bCk7DQog
CQlzcGluX3VubG9jayhkc3RfcHRsKTsNCkBAIC0yODc3LDYgKzI5MDIsNyBAQCB2b2lkIF9fdW5t
YXBfaHVnZXBhZ2VfcmFuZ2Uoc3RydWN0IG1tdV9nYXRoZXIgKnRsYiwgc3RydWN0IHZtX2FyZWFf
c3RydWN0ICp2bWEsDQogCQlpZiAoaHVnZV9wdGVfZGlydHkocHRlKSkNCiAJCQlzZXRfcGFnZV9k
aXJ0eShwYWdlKTsNCiANCisJCWRlY19odWdldGxiX2NvdW50KG1tLCBoKTsNCiAJCXBhZ2VfcmVt
b3ZlX3JtYXAocGFnZSk7DQogCQlmb3JjZV9mbHVzaCA9ICFfX3RsYl9yZW1vdmVfcGFnZSh0bGIs
IHBhZ2UpOw0KIAkJaWYgKGZvcmNlX2ZsdXNoKSB7DQpAQCAtMzI2MSw2ICszMjg3LDcgQEAgc3Rh
dGljIGludCBodWdldGxiX25vX3BhZ2Uoc3RydWN0IG1tX3N0cnVjdCAqbW0sIHN0cnVjdCB2bV9h
cmVhX3N0cnVjdCAqdm1hLA0KIAkJCQkmJiAodm1hLT52bV9mbGFncyAmIFZNX1NIQVJFRCkpKTsN
CiAJc2V0X2h1Z2VfcHRlX2F0KG1tLCBhZGRyZXNzLCBwdGVwLCBuZXdfcHRlKTsNCiANCisJaW5j
X2h1Z2V0bGJfY291bnQobW0sIGgpOw0KIAlpZiAoKGZsYWdzICYgRkFVTFRfRkxBR19XUklURSkg
JiYgISh2bWEtPnZtX2ZsYWdzICYgVk1fU0hBUkVEKSkgew0KIAkJLyogT3B0aW1pemF0aW9uLCBk
byB0aGUgQ09XIHdpdGhvdXQgYSBzZWNvbmQgZmF1bHQgKi8NCiAJCXJldCA9IGh1Z2V0bGJfY293
KG1tLCB2bWEsIGFkZHJlc3MsIHB0ZXAsIG5ld19wdGUsIHBhZ2UsIHB0bCk7DQpkaWZmIC0tZ2l0
IGEvbW0vcm1hcC5jIGIvbW0vcm1hcC5jDQppbmRleCAxNzFiNjg3NjhkZjEuLmIzMzI3OGJjNGRk
YiAxMDA2NDQNCi0tLSBhL21tL3JtYXAuYw0KKysrIGIvbW0vcm1hcC5jDQpAQCAtMTIzMCw3ICsx
MjMwLDkgQEAgc3RhdGljIGludCB0cnlfdG9fdW5tYXBfb25lKHN0cnVjdCBwYWdlICpwYWdlLCBz
dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSwNCiAJdXBkYXRlX2hpd2F0ZXJfcnNzKG1tKTsNCiAN
CiAJaWYgKFBhZ2VIV1BvaXNvbihwYWdlKSAmJiAhKGZsYWdzICYgVFRVX0lHTk9SRV9IV1BPSVNP
TikpIHsNCi0JCWlmICghUGFnZUh1Z2UocGFnZSkpIHsNCisJCWlmIChQYWdlSHVnZShwYWdlKSkg
ew0KKwkJCWRlY19odWdldGxiX2NvdW50KG1tLCBwYWdlX2hzdGF0ZShwYWdlKSk7DQorCQl9IGVs
c2Ugew0KIAkJCWlmIChQYWdlQW5vbihwYWdlKSkNCiAJCQkJZGVjX21tX2NvdW50ZXIobW0sIE1N
X0FOT05QQUdFUyk7DQogCQkJZWxzZQ0KLS0gDQoyLjQuMw0K
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1207176 — Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status

FromJörn Engel <joern@purestorage.com>
Date2015-08-13 23:20 +0200
SubjectRe: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status
Message-ID<pX84O-6PO-21@gated-at.bofh.it>
In reply to#1206443
On Thu, Aug 13, 2015 at 12:45:33AM +0000, Naoya Horiguchi wrote:
> From: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> Subject: [PATCH] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status
> 
> Currently there's no easy way to get per-process usage of hugetlb pages, which
> is inconvenient because userspace applications which use hugetlb typically want
> to control their processes on the basis of how much memory (including hugetlb)
> they use. So this patch simply provides easy access to the info via
> /proc/PID/status.
> 
> With this patch, for example, /proc/PID/status shows a line like this:
> 
>   HugetlbPages:      20480 kB (10*2048kB)
> 
> If your system supports and enables multiple hugepage sizes, the line looks
> like this:
> 
>   HugetlbPages:    1069056 kB (1*1048576kB 10*2048kB)
> 
> , so you can easily know how many hugepages in which pagesize are used by a
> process.
> 
> Signed-off-by: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>

Acked-by: Joern Engel <joern@logfs.org>

Jörn

--
Computer system analysis is like child-rearing; you can do grievous damage,
but you cannot ensure success."
-- Tom DeMarco
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1207175 — Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status

FromJörn Engel <joern@purestorage.com>
Date2015-08-13 23:20 +0200
SubjectRe: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status
Message-ID<pX84O-6PO-15@gated-at.bofh.it>
In reply to#1206366
On Wed, Aug 12, 2015 at 01:30:27PM -0700, David Rientjes wrote:
> 
> I'd be interested in the comments of others, though, to see if there is 
> any reservation about the hstate size breakdown.  It may actually find no 
> current customer who is interested in parsing it.  (If we keep it, I would 
> suggest the 'x' change to '*' similar to per-order breakdowns in 
> show_mem()).  It may also be possible to add it later if a definitive 
> usecase is presented.

I have no interest in parsing the size breakdown today.  I might change
my mind tomorrow and having the extra information hurts very little, so
I won't argue against it either.

> But overall I'm very happy with the new addition and think it's a good 
> solution to the problem.

Agreed.  Thank you!

Jörn

--
One of the painful things about our time is that those who feel certainty
are stupid, and those with any imagination and understanding are filled
with doubt and indecision.
-- Bertrand Russell
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


#1208895 — Re: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status

FromDavid Rientjes <rientjes@google.com>
Date2015-08-17 23:30 +0200
SubjectRe: [PATCH v4 2/2] mm: hugetlb: proc: add HugetlbPages field to /proc/PID/status
Message-ID<pYA8F-2u0-1@gated-at.bofh.it>
In reply to#1206366
On Wed, 12 Aug 2015, David Rientjes wrote:

> I'm happy with this and thanks very much for going the extra mile and 
> breaking the usage down by hstate size.
> 
> I'd be interested in the comments of others, though, to see if there is 
> any reservation about the hstate size breakdown.  It may actually find no 
> current customer who is interested in parsing it.  (If we keep it, I would 
> suggest the 'x' change to '*' similar to per-order breakdowns in 
> show_mem()).  It may also be possible to add it later if a definitive 
> usecase is presented.
> 
> But overall I'm very happy with the new addition and think it's a good 
> solution to the problem.
> 

No objections from anybody else, so

Acked-by: David Rientjes <rientjes@google.com>

Thanks Naoya!
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | linux.kernel


csiph-web