Prev: mfd: Initialise WM831x IRQ masks on chip even if interrupts not in use
Next: INFO: task apache2:7601 blocked for more than 120 seconds.
From: Pedro Ribeiro on 14 Apr 2010 06:50 On 14 April 2010 11:09, Daniel Mack <daniel(a)caiaq.de> wrote: > Thanks! So the only thing I can do for now is submit exactly this patch. > At least, it helps you and it shouldn't break anything. The question > remains whether this type of memory should be used for all > transfer_buffers. > Is there any chance you could push this to -stable? I don't care because I always use the latest kernel, but the next Debian stable and Ubuntu LTS are going to use 2.6.32. >> Any idea why is mem=4096m different than a regular boot since I have 4GB anyway? > > On Fri, Apr 09, 2010 at 04:11:52PM -0600, Robert Hancock wrote: >> If you have 4GB of RAM then almost certainly you have memory located >> at addresses over 4GB. If you look at the e820 memory map printed at >> the start of dmesg on bootup and see entries with addresses of >> 100000000 or higher reported as usable, then this is the case. > > Could you post the these e820 line from your dmesg when booted with > mem=4096? > > Daniel > > This is the e820 WITHOUT mem=4096m: [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009ec00 (usable) [ 0.000000] BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved) [ 0.000000] BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved) [ 0.000000] BIOS-e820: 0000000000100000 - 00000000bd4a1000 (usable) [ 0.000000] BIOS-e820: 00000000bd4a1000 - 00000000bd4a7000 (reserved) [ 0.000000] BIOS-e820: 00000000bd4a7000 - 00000000bd5b8000 (usable) [ 0.000000] BIOS-e820: 00000000bd5b8000 - 00000000bd60f000 (reserved) [ 0.000000] BIOS-e820: 00000000bd60f000 - 00000000bd6c6000 (usable) [ 0.000000] BIOS-e820: 00000000bd6c6000 - 00000000bd6d1000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bd6d1000 - 00000000bd6d4000 (ACPI data) [ 0.000000] BIOS-e820: 00000000bd6d4000 - 00000000bd6d8000 (reserved) [ 0.000000] BIOS-e820: 00000000bd6d8000 - 00000000bd6dc000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bd6dc000 - 00000000bd6df000 (reserved) [ 0.000000] BIOS-e820: 00000000bd6df000 - 00000000bd706000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bd706000 - 00000000bd708000 (ACPI data) [ 0.000000] BIOS-e820: 00000000bd708000 - 00000000bd90f000 (reserved) [ 0.000000] BIOS-e820: 00000000bd90f000 - 00000000bd99f000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bd99f000 - 00000000bd9ff000 (ACPI data) [ 0.000000] BIOS-e820: 00000000bd9ff000 - 00000000bda00000 (usable) [ 0.000000] BIOS-e820: 00000000bdc00000 - 00000000c0000000 (reserved) [ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) [ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) [ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved) [ 0.000000] BIOS-e820: 00000000fed10000 - 00000000fed14000 (reserved) [ 0.000000] BIOS-e820: 00000000fed18000 - 00000000fed1a000 (reserved) [ 0.000000] BIOS-e820: 00000000fed1c000 - 00000000fed90000 (reserved) [ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) [ 0.000000] BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved) [ 0.000000] BIOS-e820: 0000000100000000 - 000000013c000000 (usable) This is the e820 output WITH mem=4096m [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009ec00 (usable) [ 0.000000] BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved) [ 0.000000] BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved) [ 0.000000] BIOS-e820: 0000000000100000 - 00000000bd4a1000 (usable) [ 0.000000] BIOS-e820: 00000000bd4a1000 - 00000000bd4a7000 (reserved) [ 0.000000] BIOS-e820: 00000000bd4a7000 - 00000000bd5b8000 (usable) [ 0.000000] BIOS-e820: 00000000bd5b8000 - 00000000bd60f000 (reserved) [ 0.000000] BIOS-e820: 00000000bd60f000 - 00000000bd6c6000 (usable) [ 0.000000] BIOS-e820: 00000000bd6c6000 - 00000000bd6d1000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bd6d1000 - 00000000bd6d4000 (ACPI data) [ 0.000000] BIOS-e820: 00000000bd6d4000 - 00000000bd6d8000 (reserved) [ 0.000000] BIOS-e820: 00000000bd6d8000 - 00000000bd6dc000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bd6dc000 - 00000000bd6df000 (reserved) [ 0.000000] BIOS-e820: 00000000bd6df000 - 00000000bd706000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bd706000 - 00000000bd708000 (ACPI data) [ 0.000000] BIOS-e820: 00000000bd708000 - 00000000bd90f000 (reserved) [ 0.000000] BIOS-e820: 00000000bd90f000 - 00000000bd99f000 (ACPI NVS) [ 0.000000] BIOS-e820: 00000000bd99f000 - 00000000bd9ff000 (ACPI data) [ 0.000000] BIOS-e820: 00000000bd9ff000 - 00000000bda00000 (usable) [ 0.000000] BIOS-e820: 00000000bdc00000 - 00000000c0000000 (reserved) [ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) [ 0.000000] BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) [ 0.000000] BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved) [ 0.000000] BIOS-e820: 00000000fed10000 - 00000000fed14000 (reserved) [ 0.000000] BIOS-e820: 00000000fed18000 - 00000000fed1a000 (reserved) [ 0.000000] BIOS-e820: 00000000fed1c000 - 00000000fed90000 (reserved) [ 0.000000] BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) [ 0.000000] BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved) [ 0.000000] BIOS-e820: 0000000100000000 - 000000013c000000 (usable) [ 0.000000] NX (Execute Disable) protection: active [ 0.000000] user-defined physical RAM map: [ 0.000000] user: 0000000000000000 - 000000000009ec00 (usable) [ 0.000000] user: 000000000009ec00 - 00000000000a0000 (reserved) [ 0.000000] user: 00000000000dc000 - 0000000000100000 (reserved) [ 0.000000] user: 0000000000100000 - 00000000bd4a1000 (usable) [ 0.000000] user: 00000000bd4a1000 - 00000000bd4a7000 (reserved) [ 0.000000] user: 00000000bd4a7000 - 00000000bd5b8000 (usable) [ 0.000000] user: 00000000bd5b8000 - 00000000bd60f000 (reserved) [ 0.000000] user: 00000000bd60f000 - 00000000bd6c6000 (usable) [ 0.000000] user: 00000000bd6c6000 - 00000000bd6d1000 (ACPI NVS) [ 0.000000] user: 00000000bd6d1000 - 00000000bd6d4000 (ACPI data) [ 0.000000] user: 00000000bd6d4000 - 00000000bd6d8000 (reserved) [ 0.000000] user: 00000000bd6d8000 - 00000000bd6dc000 (ACPI NVS) [ 0.000000] user: 00000000bd6dc000 - 00000000bd6df000 (reserved) [ 0.000000] user: 00000000bd6df000 - 00000000bd706000 (ACPI NVS) [ 0.000000] user: 00000000bd706000 - 00000000bd708000 (ACPI data) [ 0.000000] user: 00000000bd708000 - 00000000bd90f000 (reserved) [ 0.000000] user: 00000000bd90f000 - 00000000bd99f000 (ACPI NVS) [ 0.000000] user: 00000000bd99f000 - 00000000bd9ff000 (ACPI data) [ 0.000000] user: 00000000bd9ff000 - 00000000bda00000 (usable) [ 0.000000] user: 00000000bdc00000 - 00000000c0000000 (reserved) [ 0.000000] user: 00000000e0000000 - 00000000f0000000 (reserved) [ 0.000000] user: 00000000fec00000 - 00000000fec10000 (reserved) [ 0.000000] user: 00000000fed00000 - 00000000fed00400 (reserved) [ 0.000000] user: 00000000fed10000 - 00000000fed14000 (reserved) [ 0.000000] user: 00000000fed18000 - 00000000fed1a000 (reserved) [ 0.000000] user: 00000000fed1c000 - 00000000fed90000 (reserved) [ 0.000000] user: 00000000fee00000 - 00000000fee01000 (reserved) [ 0.000000] user: 00000000ff800000 - 0000000100000000 (reserved) So basically the BIOS is incorrectly reporting BIOS-e820: 0000000100000000 - 000000013c000000 (usable) right? Thanks, Pedro -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Pedro Ribeiro on 14 Apr 2010 07:10 On 14 April 2010 11:47, Pedro Ribeiro <pedrib(a)gmail.com> wrote: > On 14 April 2010 11:09, Daniel Mack <daniel(a)caiaq.de> wrote: > >> Thanks! So the only thing I can do for now is submit exactly this patch. >> At least, it helps you and it shouldn't break anything. The question >> remains whether this type of memory should be used for all >> transfer_buffers. >> > > Is there any chance you could push this to -stable? I don't care > because I always use the latest kernel, but the next Debian stable and > Ubuntu LTS are going to use 2.6.32. > >>> Any idea why is mem=4096m different than a regular boot since I have 4GB anyway? >> >> On Fri, Apr 09, 2010 at 04:11:52PM -0600, Robert Hancock wrote: >>> If you have 4GB of RAM then almost certainly you have memory located >>> at addresses over 4GB. If you look at the e820 memory map printed at >>> the start of dmesg on bootup and see entries with addresses of >>> 100000000 or higher reported as usable, then this is the case. >> >> Could you post the these e820 line from your dmesg when booted with >> mem=4096? >> >> Daniel >> >> > > This is the e820 WITHOUT mem=4096m: > > [ � �0.000000] BIOS-provided physical RAM map: > [ � �0.000000] �BIOS-e820: 0000000000000000 - 000000000009ec00 (usable) > [ � �0.000000] �BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved) > [ � �0.000000] �BIOS-e820: 0000000000100000 - 00000000bd4a1000 (usable) > [ � �0.000000] �BIOS-e820: 00000000bd4a1000 - 00000000bd4a7000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd4a7000 - 00000000bd5b8000 (usable) > [ � �0.000000] �BIOS-e820: 00000000bd5b8000 - 00000000bd60f000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd60f000 - 00000000bd6c6000 (usable) > [ � �0.000000] �BIOS-e820: 00000000bd6c6000 - 00000000bd6d1000 (ACPI NVS) > [ � �0.000000] �BIOS-e820: 00000000bd6d1000 - 00000000bd6d4000 (ACPI data) > [ � �0.000000] �BIOS-e820: 00000000bd6d4000 - 00000000bd6d8000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd6d8000 - 00000000bd6dc000 (ACPI NVS) > [ � �0.000000] �BIOS-e820: 00000000bd6dc000 - 00000000bd6df000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd6df000 - 00000000bd706000 (ACPI NVS) > [ � �0.000000] �BIOS-e820: 00000000bd706000 - 00000000bd708000 (ACPI data) > [ � �0.000000] �BIOS-e820: 00000000bd708000 - 00000000bd90f000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd90f000 - 00000000bd99f000 (ACPI NVS) > [ � �0.000000] �BIOS-e820: 00000000bd99f000 - 00000000bd9ff000 (ACPI data) > [ � �0.000000] �BIOS-e820: 00000000bd9ff000 - 00000000bda00000 (usable) > [ � �0.000000] �BIOS-e820: 00000000bdc00000 - 00000000c0000000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fed10000 - 00000000fed14000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fed18000 - 00000000fed1a000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fed1c000 - 00000000fed90000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved) > [ � �0.000000] �BIOS-e820: 0000000100000000 - 000000013c000000 (usable) > > > > This is the e820 output WITH mem=4096m > > [ � �0.000000] BIOS-provided physical RAM map: > [ � �0.000000] �BIOS-e820: 0000000000000000 - 000000000009ec00 (usable) > [ � �0.000000] �BIOS-e820: 000000000009ec00 - 00000000000a0000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved) > [ � �0.000000] �BIOS-e820: 0000000000100000 - 00000000bd4a1000 (usable) > [ � �0.000000] �BIOS-e820: 00000000bd4a1000 - 00000000bd4a7000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd4a7000 - 00000000bd5b8000 (usable) > [ � �0.000000] �BIOS-e820: 00000000bd5b8000 - 00000000bd60f000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd60f000 - 00000000bd6c6000 (usable) > [ � �0.000000] �BIOS-e820: 00000000bd6c6000 - 00000000bd6d1000 (ACPI NVS) > [ � �0.000000] �BIOS-e820: 00000000bd6d1000 - 00000000bd6d4000 (ACPI data) > [ � �0.000000] �BIOS-e820: 00000000bd6d4000 - 00000000bd6d8000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd6d8000 - 00000000bd6dc000 (ACPI NVS) > [ � �0.000000] �BIOS-e820: 00000000bd6dc000 - 00000000bd6df000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd6df000 - 00000000bd706000 (ACPI NVS) > [ � �0.000000] �BIOS-e820: 00000000bd706000 - 00000000bd708000 (ACPI data) > [ � �0.000000] �BIOS-e820: 00000000bd708000 - 00000000bd90f000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000bd90f000 - 00000000bd99f000 (ACPI NVS) > [ � �0.000000] �BIOS-e820: 00000000bd99f000 - 00000000bd9ff000 (ACPI data) > [ � �0.000000] �BIOS-e820: 00000000bd9ff000 - 00000000bda00000 (usable) > [ � �0.000000] �BIOS-e820: 00000000bdc00000 - 00000000c0000000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fed10000 - 00000000fed14000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fed18000 - 00000000fed1a000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fed1c000 - 00000000fed90000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved) > [ � �0.000000] �BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved) > [ � �0.000000] �BIOS-e820: 0000000100000000 - 000000013c000000 (usable) > [ � �0.000000] NX (Execute Disable) protection: active > [ � �0.000000] user-defined physical RAM map: > [ � �0.000000] �user: 0000000000000000 - 000000000009ec00 (usable) > [ � �0.000000] �user: 000000000009ec00 - 00000000000a0000 (reserved) > [ � �0.000000] �user: 00000000000dc000 - 0000000000100000 (reserved) > [ � �0.000000] �user: 0000000000100000 - 00000000bd4a1000 (usable) > [ � �0.000000] �user: 00000000bd4a1000 - 00000000bd4a7000 (reserved) > [ � �0.000000] �user: 00000000bd4a7000 - 00000000bd5b8000 (usable) > [ � �0.000000] �user: 00000000bd5b8000 - 00000000bd60f000 (reserved) > [ � �0.000000] �user: 00000000bd60f000 - 00000000bd6c6000 (usable) > [ � �0.000000] �user: 00000000bd6c6000 - 00000000bd6d1000 (ACPI NVS) > [ � �0.000000] �user: 00000000bd6d1000 - 00000000bd6d4000 (ACPI data) > [ � �0.000000] �user: 00000000bd6d4000 - 00000000bd6d8000 (reserved) > [ � �0.000000] �user: 00000000bd6d8000 - 00000000bd6dc000 (ACPI NVS) > [ � �0.000000] �user: 00000000bd6dc000 - 00000000bd6df000 (reserved) > [ � �0.000000] �user: 00000000bd6df000 - 00000000bd706000 (ACPI NVS) > [ � �0.000000] �user: 00000000bd706000 - 00000000bd708000 (ACPI data) > [ � �0.000000] �user: 00000000bd708000 - 00000000bd90f000 (reserved) > [ � �0.000000] �user: 00000000bd90f000 - 00000000bd99f000 (ACPI NVS) > [ � �0.000000] �user: 00000000bd99f000 - 00000000bd9ff000 (ACPI data) > [ � �0.000000] �user: 00000000bd9ff000 - 00000000bda00000 (usable) > [ � �0.000000] �user: 00000000bdc00000 - 00000000c0000000 (reserved) > [ � �0.000000] �user: 00000000e0000000 - 00000000f0000000 (reserved) > [ � �0.000000] �user: 00000000fec00000 - 00000000fec10000 (reserved) > [ � �0.000000] �user: 00000000fed00000 - 00000000fed00400 (reserved) > [ � �0.000000] �user: 00000000fed10000 - 00000000fed14000 (reserved) > [ � �0.000000] �user: 00000000fed18000 - 00000000fed1a000 (reserved) > [ � �0.000000] �user: 00000000fed1c000 - 00000000fed90000 (reserved) > [ � �0.000000] �user: 00000000fee00000 - 00000000fee01000 (reserved) > [ � �0.000000] �user: 00000000ff800000 - 0000000100000000 (reserved) > > So basically the BIOS is incorrectly reporting > BIOS-e820: 0000000100000000 - 000000013c000000 (usable) > > right? > > Thanks, > Pedro > (sorry for the spam) Actually this can't be right, because booting with mem=4096m only gives me 3047008 kb of usable memory, versus 3949684 kb without mem=4096m. Pedro -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Konrad Rzeszutek Wilk on 14 Apr 2010 09:30 > So basically the BIOS is incorrectly reporting > BIOS-e820: 0000000100000000 - 000000013c000000 (usable) No. Count up the the sizes of the (usuable) entries. You will see that when you provided mem=4GB, the E820 got truncated to stop at 4GB. Without that it goes past the 4GB mark (which is correct). Keep in mind, 4GB doesn't mean your usuable memory stops at 4GB. The BIOS shuffles the memory around to stick in the BIOS, ACPI, PCI hole so that part of the usable memory is above 4GB. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Alan Stern on 14 Apr 2010 10:10 On Wed, 14 Apr 2010, Pedro Ribeiro wrote: > On 14 April 2010 11:09, Daniel Mack <daniel(a)caiaq.de> wrote: > > > Thanks! So the only thing I can do for now is submit exactly this patch. > > At least, it helps you and it shouldn't break anything. The question > > remains whether this type of memory should be used for all > > transfer_buffers. > > > > Is there any chance you could push this to -stable? I don't care > because I always use the latest kernel, but the next Debian stable and > Ubuntu LTS are going to use 2.6.32. No! Please don't do it: Don't submit the patch and _certainly_ don't submit it to -stable. It doesn't fix anything; it only works around a bug, and at the moment we don't even know if the bug is in the kernel or in Pedro's hardware (and even though it affects two different systems of his, nobody else has reported a similar problem). Papering over it will only remove the incentive to fix it properly. In addition, you'll most likely find that lots of Linux developers will object vociferously to any proposed patch that uses GFP_DMA. That flag is supposed to be _only_ for ISA devices, which really need it. By limiting the memory allocation to the lowest 16 MB of physical memory, it greatly increases the chances that the allocation will fail. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Daniel Mack on 14 Apr 2010 12:40
On Wed, Apr 14, 2010 at 10:08:47AM -0400, Alan Stern wrote: > On Wed, 14 Apr 2010, Pedro Ribeiro wrote: > > On 14 April 2010 11:09, Daniel Mack <daniel(a)caiaq.de> wrote: > > > Thanks! So the only thing I can do for now is submit exactly this patch. > > > At least, it helps you and it shouldn't break anything. The question > > > remains whether this type of memory should be used for all > > > transfer_buffers. > > > > > > > Is there any chance you could push this to -stable? I don't care > > because I always use the latest kernel, but the next Debian stable and > > Ubuntu LTS are going to use 2.6.32. > > No! Please don't do it: Don't submit the patch and _certainly_ don't > submit it to -stable. It doesn't fix anything; it only works around a > bug, and at the moment we don't even know if the bug is in the kernel > or in Pedro's hardware (and even though it affects two different > systems of his, nobody else has reported a similar problem). Papering > over it will only remove the incentive to fix it properly. No worries - I agree. But unfortunately, I'm out of ideas now, and my initial thoughts about what might cause the trouble were abviously not able to explain the issue. Does anyone see further steps of tracking this issue down? Thanks, Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |