Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1314266 > unrolled thread
| Started by | Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
|---|---|
| First post | 2016-01-21 16:30 +0100 |
| Last post | 2016-01-22 21:20 +0100 |
| Articles | 5 — 4 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.
[PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap Andy Shevchenko <andriy.shevchenko@linux.intel.com> - 2016-01-21 16:30 +0100
Re: [PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap Andrew Morton <akpm@linux-foundation.org> - 2016-01-21 23:40 +0100
Re: [PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap Andy Shevchenko <andy.shevchenko@gmail.com> - 2016-01-22 08:10 +0100
Re: [PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap Matt Fleming <matt@codeblueprint.co.uk> - 2016-01-22 16:20 +0100
Re: [PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap Andrew Morton <akpm@linux-foundation.org> - 2016-01-22 21:20 +0100
| From | Andy Shevchenko <andriy.shevchenko@linux.intel.com> |
|---|---|
| Date | 2016-01-21 16:30 +0100 |
| Subject | [PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap |
| Message-ID | <qTplo-76i-1@gated-at.bofh.it> |
From: Robert Elliott <elliott@hpe.com>
Print the base in the best-fit B, KiB, MiB, etc. units rather than
always MiB. This avoids rounding, which can be misleading.
Use proper IEC binary units (KiB, MiB, etc.) rather than misuse SI
decimal units (KB, MB, etc.).
old:
efi: mem61: [Persistent Memory | | | | | | | |WB|WT|WC|UC] range=[0x0000000880000000-0x0000000c7fffffff) (16384MB)
new:
efi: mem61: [Persistent Memory | | | | | | | |WB|WT|WC|UC] range=[0x0000000880000000-0x0000000c7fffffff] (16 GiB)
Signed-off-by: Robert Elliott <elliott@hpe.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
arch/x86/platform/efi/efi.c | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index e0846b5..3badc8a 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -35,10 +35,12 @@
#include <linux/efi.h>
#include <linux/efi-bgrt.h>
#include <linux/export.h>
+#include <linux/bitops.h>
#include <linux/bootmem.h>
#include <linux/slab.h>
#include <linux/memblock.h>
#include <linux/spinlock.h>
+#include <linux/string_helpers.h>
#include <linux/uaccess.h>
#include <linux/time.h>
#include <linux/io.h>
@@ -117,6 +119,14 @@ void efi_get_time(struct timespec *now)
now->tv_nsec = 0;
}
+static char * __init efi_size_format(char *buf, size_t size, u64 bytes)
+{
+ unsigned long i = bytes ? __ffs64(bytes) / 10 : 0;
+
+ snprintf(buf, size, "%llu %s", bytes >> (i * 10), string_units_2[i]);
+ return buf;
+}
+
void __init efi_find_mirror(void)
{
void *p;
@@ -225,21 +235,20 @@ int __init efi_memblock_x86_reserve_range(void)
void __init efi_print_memmap(void)
{
#ifdef EFI_DEBUG
- efi_memory_desc_t *md;
void *p;
int i;
for (p = memmap.map, i = 0;
p < memmap.map_end;
p += memmap.desc_size, i++) {
- char buf[64];
+ efi_memory_desc_t *md = p;
+ u64 size = md->num_pages << EFI_PAGE_SHIFT;
+ char buf[64], buf3[32];
- md = p;
- pr_info("mem%02u: %s range=[0x%016llx-0x%016llx] (%lluMB)\n",
+ pr_info("mem%02u: %s range=[0x%016llx-0x%016llx] (%s)\n",
i, efi_md_typeattr_format(buf, sizeof(buf), md),
- md->phys_addr,
- md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT) - 1,
- (md->num_pages >> (20 - EFI_PAGE_SHIFT)));
+ md->phys_addr, md->phys_addr + size - 1,
+ efi_size_format(buf3, sizeof(buf3), size));
}
#endif /* EFI_DEBUG */
}
--
2.7.0.rc3
[toc] | [next] | [standalone]
| From | Andrew Morton <akpm@linux-foundation.org> |
|---|---|
| Date | 2016-01-21 23:40 +0100 |
| Subject | Re: [PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap |
| Message-ID | <qTw3w-3gm-13@gated-at.bofh.it> |
| In reply to | #1314266 |
On Thu, 21 Jan 2016 17:22:31 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> From: Robert Elliott <elliott@hpe.com>
>
> Print the base in the best-fit B, KiB, MiB, etc. units rather than
> always MiB. This avoids rounding, which can be misleading.
>
> Use proper IEC binary units (KiB, MiB, etc.) rather than misuse SI
> decimal units (KB, MB, etc.).
>
> old:
> efi: mem61: [Persistent Memory | | | | | | | |WB|WT|WC|UC] range=[0x0000000880000000-0x0000000c7fffffff) (16384MB)
>
> new:
> efi: mem61: [Persistent Memory | | | | | | | |WB|WT|WC|UC] range=[0x0000000880000000-0x0000000c7fffffff] (16 GiB)
hm,
> @@ -225,21 +235,20 @@ int __init efi_memblock_x86_reserve_range(void)
> void __init efi_print_memmap(void)
> {
> #ifdef EFI_DEBUG
> - efi_memory_desc_t *md;
> void *p;
> int i;
>
> for (p = memmap.map, i = 0;
> p < memmap.map_end;
> p += memmap.desc_size, i++) {
> - char buf[64];
> + efi_memory_desc_t *md = p;
> + u64 size = md->num_pages << EFI_PAGE_SHIFT;
> + char buf[64], buf3[32];
>
> - md = p;
> - pr_info("mem%02u: %s range=[0x%016llx-0x%016llx] (%lluMB)\n",
> + pr_info("mem%02u: %s range=[0x%016llx-0x%016llx] (%s)\n",
> i, efi_md_typeattr_format(buf, sizeof(buf), md),
> - md->phys_addr,
> - md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT) - 1,
Where did this " - 1" come from? I can't find a tree which has this.
> - (md->num_pages >> (20 - EFI_PAGE_SHIFT)));
> + md->phys_addr, md->phys_addr + size - 1,
So I did s/ - 1// here, but worried.
> + efi_size_format(buf3, sizeof(buf3), size));
> }
> #endif /* EFI_DEBUG */
> }
[toc] | [prev] | [next] | [standalone]
| From | Andy Shevchenko <andy.shevchenko@gmail.com> |
|---|---|
| Date | 2016-01-22 08:10 +0100 |
| Message-ID | <qTE14-BU-3@gated-at.bofh.it> |
| In reply to | #1314580 |
On Fri, Jan 22, 2016 at 12:35 AM, Andrew Morton
<akpm@linux-foundation.org> wrote:
> On Thu, 21 Jan 2016 17:22:31 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
>
>> From: Robert Elliott <elliott@hpe.com>
>>
>> Print the base in the best-fit B, KiB, MiB, etc. units rather than
>> always MiB. This avoids rounding, which can be misleading.
>>
>> Use proper IEC binary units (KiB, MiB, etc.) rather than misuse SI
>> decimal units (KB, MB, etc.).
>>
>> old:
>> efi: mem61: [Persistent Memory | | | | | | | |WB|WT|WC|UC] range=[0x0000000880000000-0x0000000c7fffffff) (16384MB)
>>
>> new:
>> efi: mem61: [Persistent Memory | | | | | | | |WB|WT|WC|UC] range=[0x0000000880000000-0x0000000c7fffffff] (16 GiB)
>
> hm,
>
>> @@ -225,21 +235,20 @@ int __init efi_memblock_x86_reserve_range(void)
>> void __init efi_print_memmap(void)
>> {
>> #ifdef EFI_DEBUG
>> - efi_memory_desc_t *md;
>> void *p;
>> int i;
>>
>> for (p = memmap.map, i = 0;
>> p < memmap.map_end;
>> p += memmap.desc_size, i++) {
>> - char buf[64];
>> + efi_memory_desc_t *md = p;
>> + u64 size = md->num_pages << EFI_PAGE_SHIFT;
>> + char buf[64], buf3[32];
>>
>> - md = p;
>> - pr_info("mem%02u: %s range=[0x%016llx-0x%016llx] (%lluMB)\n",
>> + pr_info("mem%02u: %s range=[0x%016llx-0x%016llx] (%s)\n",
>> i, efi_md_typeattr_format(buf, sizeof(buf), md),
>> - md->phys_addr,
>> - md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT) - 1,
>
> Where did this " - 1" come from? I can't find a tree which has this.
http://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=next&id=b324ee15566d9de933e7926c37a4d091904a513b
>
>> - (md->num_pages >> (20 - EFI_PAGE_SHIFT)));
>> + md->phys_addr, md->phys_addr + size - 1,
>
> So I did s/ - 1// here, but worried.
I'm pretty sure the series should go via efi tree.
>
>> + efi_size_format(buf3, sizeof(buf3), size));
>> }
>> #endif /* EFI_DEBUG */
>> }
>
--
With Best Regards,
Andy Shevchenko
[toc] | [prev] | [next] | [standalone]
| From | Matt Fleming <matt@codeblueprint.co.uk> |
|---|---|
| Date | 2016-01-22 16:20 +0100 |
| Subject | Re: [PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap |
| Message-ID | <qTLFf-5N3-7@gated-at.bofh.it> |
| In reply to | #1314786 |
On Fri, 22 Jan, at 09:08:00AM, Andy Shevchenko wrote:
> On Fri, Jan 22, 2016 at 12:35 AM, Andrew Morton
> <akpm@linux-foundation.org> wrote:
> > On Thu, 21 Jan 2016 17:22:31 +0200 Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote:
> >
> >> From: Robert Elliott <elliott@hpe.com>
> >>
> >> Print the base in the best-fit B, KiB, MiB, etc. units rather than
> >> always MiB. This avoids rounding, which can be misleading.
> >>
> >> Use proper IEC binary units (KiB, MiB, etc.) rather than misuse SI
> >> decimal units (KB, MB, etc.).
> >>
> >> old:
> >> efi: mem61: [Persistent Memory | | | | | | | |WB|WT|WC|UC] range=[0x0000000880000000-0x0000000c7fffffff) (16384MB)
> >>
> >> new:
> >> efi: mem61: [Persistent Memory | | | | | | | |WB|WT|WC|UC] range=[0x0000000880000000-0x0000000c7fffffff] (16 GiB)
> >
> > hm,
> >
> >> @@ -225,21 +235,20 @@ int __init efi_memblock_x86_reserve_range(void)
> >> void __init efi_print_memmap(void)
> >> {
> >> #ifdef EFI_DEBUG
> >> - efi_memory_desc_t *md;
> >> void *p;
> >> int i;
> >>
> >> for (p = memmap.map, i = 0;
> >> p < memmap.map_end;
> >> p += memmap.desc_size, i++) {
> >> - char buf[64];
> >> + efi_memory_desc_t *md = p;
> >> + u64 size = md->num_pages << EFI_PAGE_SHIFT;
> >> + char buf[64], buf3[32];
> >>
> >> - md = p;
> >> - pr_info("mem%02u: %s range=[0x%016llx-0x%016llx] (%lluMB)\n",
> >> + pr_info("mem%02u: %s range=[0x%016llx-0x%016llx] (%s)\n",
> >> i, efi_md_typeattr_format(buf, sizeof(buf), md),
> >> - md->phys_addr,
> >> - md->phys_addr + (md->num_pages << EFI_PAGE_SHIFT) - 1,
> >
> > Where did this " - 1" come from? I can't find a tree which has this.
>
> http://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git/commit/?h=next&id=b324ee15566d9de933e7926c37a4d091904a513b
>
> >
> >> - (md->num_pages >> (20 - EFI_PAGE_SHIFT)));
> >> + md->phys_addr, md->phys_addr + size - 1,
> >
> > So I did s/ - 1// here, but worried.
>
> I'm pretty sure the series should go via efi tree.
Right, because of the prerequisite patches sat in my tree it makes
sense for them to all be grouped together.
Andrew, would you mind dropping these from your tree and I'll take
everything through the EFI tree?
Additionally, if you and Rasmus wanted to throw a couple of Acked-by
or Reviewed-by tags my way, I'd feel better about the string_helpers
patches.
[toc] | [prev] | [next] | [standalone]
| From | Andrew Morton <akpm@linux-foundation.org> |
|---|---|
| Date | 2016-01-22 21:20 +0100 |
| Subject | Re: [PATCH v2 3/4] x86/efi: print size and base in binary units in efi_print_memmap |
| Message-ID | <qTQlB-Ac-11@gated-at.bofh.it> |
| In reply to | #1315066 |
On Fri, 22 Jan 2016 15:11:00 +0000 Matt Fleming <matt@codeblueprint.co.uk> wrote: > > >> + md->phys_addr, md->phys_addr + size - 1, > > > > > > So I did s/ - 1// here, but worried. > > > > I'm pretty sure the series should go via efi tree. > > Right, because of the prerequisite patches sat in my tree it makes > sense for them to all be grouped together. > > Andrew, would you mind dropping these from your tree and I'll take > everything through the EFI tree? > > Additionally, if you and Rasmus wanted to throw a couple of Acked-by > or Reviewed-by tags my way, I'd feel better about the string_helpers > patches. No probs. Please add Acked-by: Andrew Morton <akpm@linux-foundation.org> to [1/4] and [2/4].
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web