Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1253105 > unrolled thread
| Started by | "Luck, Tony" <tony.luck@intel.com> |
|---|---|
| First post | 2015-10-21 20:20 +0200 |
| Last post | 2015-10-30 20:50 +0100 |
| Articles | 7 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
RE: [PATCH] mm: Introduce kernelcore=reliable option "Luck, Tony" <tony.luck@intel.com> - 2015-10-21 20:20 +0200
Re: [PATCH] mm: Introduce kernelcore=reliable option Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> - 2015-10-22 12:10 +0200
RE: [PATCH] mm: Introduce kernelcore=reliable option "Luck, Tony" <tony.luck@intel.com> - 2015-10-23 01:30 +0200
RE: [PATCH] mm: Introduce kernelcore=reliable option "Izumi, Taku" <izumi.taku@jp.fujitsu.com> - 2015-10-23 03:10 +0200
Re: [PATCH] mm: Introduce kernelcore=reliable option "Luck, Tony" <tony.luck@intel.com> - 2015-10-23 03:50 +0200
Re: [PATCH] mm: Introduce kernelcore=reliable option Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> - 2015-10-30 07:30 +0100
RE: [PATCH] mm: Introduce kernelcore=reliable option "Luck, Tony" <tony.luck@intel.com> - 2015-10-30 20:50 +0100
| From | "Luck, Tony" <tony.luck@intel.com> |
|---|---|
| Date | 2015-10-21 20:20 +0200 |
| Subject | RE: [PATCH] mm: Introduce kernelcore=reliable option |
| Message-ID | <qm69s-2wo-27@gated-at.bofh.it> |
+ if (reliable_kernelcore) {
+ for_each_memblock(memory, r) {
+ if (memblock_is_mirror(r))
+ continue;
Should we have a safety check here that there is some mirrored memory? If you give
the kernelcore=reliable option on a machine which doesn't have any mirror configured,
then we'll mark all memory as removable. What happens then? Do kernel allocations
fail? Or do they fall back to using removable memory?
Is there a /proc or /sys file that shows the current counts for the removable zone? I just
tried this patch with a high percentage of memory marked as mirror ... but I'd like to see
how much is actually being used to tune things a bit.
-Tony
--
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]
| From | Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> |
|---|---|
| Date | 2015-10-22 12:10 +0200 |
| Message-ID | <qmkYO-7xa-17@gated-at.bofh.it> |
| In reply to | #1253105 |
On 2015/10/22 3:17, Luck, Tony wrote:
> + if (reliable_kernelcore) {
> + for_each_memblock(memory, r) {
> + if (memblock_is_mirror(r))
> + continue;
>
> Should we have a safety check here that there is some mirrored memory? If you give
> the kernelcore=reliable option on a machine which doesn't have any mirror configured,
> then we'll mark all memory as removable.
You're right.
> What happens then? Do kernel allocations fail? Or do they fall back to using removable memory?
Maybe the kernel cannot boot because NORMAL zone is empty.
> Is there a /proc or /sys file that shows the current counts for the removable zone? I just
> tried this patch with a high percentage of memory marked as mirror ... but I'd like to see
> how much is actually being used to tune things a bit.
>
I think /proc/zoneinfo can show detailed numbers per zone. Do we need some for meminfo ?
Thanks,
-Kame
--
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]
| From | "Luck, Tony" <tony.luck@intel.com> |
|---|---|
| Date | 2015-10-23 01:30 +0200 |
| Message-ID | <qmxsZ-x2-1@gated-at.bofh.it> |
| In reply to | #1253686 |
[Multipart message — attachments visible in raw view] — view raw
> I think /proc/zoneinfo can show detailed numbers per zone. Do we need some for meminfo ? I wrote a little script (attached) to summarize /proc/zoneinfo ... on my system it says $ zoneinfo Node Normal Movable DMA DMA32 0 0.00 103020.07 8.94 1554.46 1 9284.54 89870.43 2 9626.33 94050.09 3 9602.82 93650.04 Not sure why I have zero Normal memory free on node0. The sum of all those free counts is 410667.72 MB ... which is close enough to the boot time message showing the amount of mirror/total memory: [ 0.000000] efi: Memory: 80979/420096M mirrored memory but a fair amount of the 80G of mirrored memory seems to have been miscounted as Movable instead of Normal. Perhaps this is because I have two blocks of mirrored memory on each node and the movable zone code doesn't expect that? -Tony
[toc] | [prev] | [next] | [standalone]
| From | "Izumi, Taku" <izumi.taku@jp.fujitsu.com> |
|---|---|
| Date | 2015-10-23 03:10 +0200 |
| Message-ID | <qmz1M-2PW-7@gated-at.bofh.it> |
| In reply to | #1254224 |
Dear Tony,
> -----Original Message-----
> From: Luck, Tony [mailto:tony.luck@intel.com]
> Sent: Friday, October 23, 2015 8:27 AM
> To: Kamezawa, Hiroyuki/亀澤 寛之; Izumi, Taku/泉 拓; linux-kernel@vger.kernel.org; linux-mm@kvack.org
> Cc: qiuxishi@huawei.com; mel@csn.ul.ie; akpm@linux-foundation.org; Hansen, Dave; matt@codeblueprint.co.uk
> Subject: RE: [PATCH] mm: Introduce kernelcore=reliable option
>
> > I think /proc/zoneinfo can show detailed numbers per zone. Do we need some for meminfo ?
>
> I wrote a little script (attached) to summarize /proc/zoneinfo ... on my system it says
>
> $ zoneinfo
> Node Normal Movable DMA DMA32
> 0 0.00 103020.07 8.94 1554.46
> 1 9284.54 89870.43
> 2 9626.33 94050.09
> 3 9602.82 93650.04
>
> Not sure why I have zero Normal memory free on node0. The sum of all those
> free counts is 410667.72 MB ... which is close enough to the boot time message
> showing the amount of mirror/total memory:
>
> [ 0.000000] efi: Memory: 80979/420096M mirrored memory
>
> but a fair amount of the 80G of mirrored memory seems to have been miscounted
> as Movable instead of Normal. Perhaps this is because I have two blocks of mirrored
> memory on each node and the movable zone code doesn't expect that?
You were saying that OS view of memory of node is something like the following ?
Node X: |MMMMMM------MMMMMM--------|
(legend) M: mirrored -: not mirrrored
If so, is this a real Box's configuration?
Sorry, I haven't got a real Address Range Mirror capable boxes yet ...
I thought mirroring range is concatenated at the first part of each node.
Sincerely,
Taku Izumi
--
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]
| From | "Luck, Tony" <tony.luck@intel.com> |
|---|---|
| Date | 2015-10-23 03:50 +0200 |
| Message-ID | <qmzEu-3yN-9@gated-at.bofh.it> |
| In reply to | #1254266 |
First part of each memory controller. I have two memory controllers on each node Sent from my iPhone > On Oct 22, 2015, at 18:01, Izumi, Taku <izumi.taku@jp.fujitsu.com> wrote: > > Dear Tony, > >> -----Original Message----- >> From: Luck, Tony [mailto:tony.luck@intel.com] >> Sent: Friday, October 23, 2015 8:27 AM >> To: Kamezawa, Hiroyuki/亀澤 寛之; Izumi, Taku/泉 拓; linux-kernel@vger.kernel.org; linux-mm@kvack.org >> Cc: qiuxishi@huawei.com; mel@csn.ul.ie; akpm@linux-foundation.org; Hansen, Dave; matt@codeblueprint.co.uk >> Subject: RE: [PATCH] mm: Introduce kernelcore=reliable option >> >>> I think /proc/zoneinfo can show detailed numbers per zone. Do we need some for meminfo ? >> >> I wrote a little script (attached) to summarize /proc/zoneinfo ... on my system it says >> >> $ zoneinfo >> Node Normal Movable DMA DMA32 >> 0 0.00 103020.07 8.94 1554.46 >> 1 9284.54 89870.43 >> 2 9626.33 94050.09 >> 3 9602.82 93650.04 >> >> Not sure why I have zero Normal memory free on node0. The sum of all those >> free counts is 410667.72 MB ... which is close enough to the boot time message >> showing the amount of mirror/total memory: >> >> [ 0.000000] efi: Memory: 80979/420096M mirrored memory >> >> but a fair amount of the 80G of mirrored memory seems to have been miscounted >> as Movable instead of Normal. Perhaps this is because I have two blocks of mirrored >> memory on each node and the movable zone code doesn't expect that? > > You were saying that OS view of memory of node is something like the following ? > > Node X: |MMMMMM------MMMMMM--------| > (legend) M: mirrored -: not mirrrored > > If so, is this a real Box's configuration? > Sorry, I haven't got a real Address Range Mirror capable boxes yet ... > I thought mirroring range is concatenated at the first part of each node. > > Sincerely, > Taku Izumi > -- 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]
| From | Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> |
|---|---|
| Date | 2015-10-30 07:30 +0100 |
| Message-ID | <qpbmh-2ij-13@gated-at.bofh.it> |
| In reply to | #1254279 |
On 2015/10/23 10:44, Luck, Tony wrote: > First part of each memory controller. I have two memory controllers on each node > If each memory controller has the same distance/latency, you (your firmware) don't need to allocate reliable memory per each memory controller. If distance is problem, another node should be allocated. ...is the behavior(splitting zone) really required ? Thanks, -Kame -- 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]
| From | "Luck, Tony" <tony.luck@intel.com> |
|---|---|
| Date | 2015-10-30 20:50 +0100 |
| Message-ID | <qpnQu-1sY-15@gated-at.bofh.it> |
| In reply to | #1259236 |
> If each memory controller has the same distance/latency, you (your firmware) don't need > to allocate reliable memory per each memory controller. > If distance is problem, another node should be allocated. > > ...is the behavior(splitting zone) really required ? It's useful from a memory bandwidth perspective to have allocations spread across both memory controllers. Keeping a whole bunch of Xeon cores fed needs all the bandwidth you can get. Socket0 is also a problem. We want to mirror <4GB addresses because there is a bunch of critical stuff there (entire kernel text+data). But we can currently only mirror one block per memory controller, so we end up with just 2GB mirrored (the 2GB-4GB range is MMIO). This isn't enough for even a small machine (I have 128GB on node0 ... but that is really the bare minimum configuration ... 2GB is only enough to cover the "struct page" allocations for node0). I really have to allocate some more mirror from the other memory controller. -Tony -- 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] | [standalone]
Back to top | Article view | linux.kernel
csiph-web