All of lore.kernel.org
 help / color / mirror / Atom feed
From: Atsushi Kumagai <kumagai-atsushi@mxc.nes.nec.co.jp>
To: "holzheu@linux.vnet.ibm.com" <holzheu@linux.vnet.ibm.com>
Cc: "kexec@lists.infradead.org" <kexec@lists.infradead.org>,
	"bhe@redhat.com" <bhe@redhat.com>
Subject: RE: [PATCH] makedumpfile: Enable --mem-usage for s390x
Date: Tue, 14 Oct 2014 07:19:13 +0000	[thread overview]
Message-ID: <0910DD04CBD6DE4193FCF86B9C00BE9701D4E4E4@BPXM01GP.gisp.nec.co.jp> (raw)
In-Reply-To: <20141010142310.4c488f6a@holzheu>

>> I think the Michael's first idea below is better since it implements
>> is_real_addr() only for --mem-usage as a common function for all
>> architectures, it's explicit design.
>>
>> >@@ -854,7 +854,7 @@ int get_kcore_dump_loads(void)
>> >
>> > 	for (i = 0; i < num_pt_loads; ++i) {
>> > 		struct pt_load_segment *p = &pt_loads[i];
>> >-		if (is_vmalloc_addr(p->virt_start))
>> >+		if (!is_real_addr(p->virt_start))
>> > 			continue;
>> > 		loads++;
>> > 	}
>>
>> However, this code will not work since the argument of is_real_addr()
>> must be physical address. Even unluckily, /proc/kcore's PT_LOAD looks
>> useless for VtoP converting because PhysAddr is always 0:
>>
>> Program Headers:
>>   Type           Offset             VirtAddr           PhysAddr
>>                  FileSiz            MemSiz              Flags  Align
>>   NOTE           0x00000000000002a8 0x0000000000000000 0x0000000000000000
>>                  0x0000000000000a84 0x0000000000000000         0
>>   LOAD           0x00007fffff601000 0xffffffffff600000 0x0000000000000000
>>                  0x0000000000001000 0x0000000000001000  RWE    1000
>>   LOAD           0x00007fff81001000 0xffffffff81000000 0x0000000000000000
>>                  0x0000000000a1b000 0x0000000000a1b000  RWE    1000
>>   LOAD           0x0000490000001000 0xffffc90000000000 0x0000000000000000
>>                  0x00001fffffffffff 0x00001fffffffffff  RWE    1000
>>   LOAD           0x00007fffa0001000 0xffffffffa0000000 0x0000000000000000
>>                  0x000000005f000000 0x000000005f000000  RWE    1000
>>   ...
>>
>>
>> So the way using /proc/iomem seems inappropriate, we have to consider other
>> approaches (but I still don't have any good ideas...)
>
>Hello Atsushi,
>
>Hmmm ok, sure. For x86 using /proc/iomem does not work because there is no 1:1
>mapping for the kernel address space. The kernel/real memory is mapped somewhere
>at the end, right?

Exactly.

>For s390 we have a 1:1 mapping for the kernel physical memory that starts with
>zero. Therefore IMHO we could use /proc/iomem. For example, on my s390x system
>with 1GB memory and 256MB crashkernel:
>
>$ cat /proc/iomem
>00000000-2fffffff : System RAM
>  00000000-007ddd4b : Kernel code
>  007ddd4c-00bfcc5f : Kernel data
>  00e18000-01c28b1f : Kernel bss
>30000000-3fffffff : Crash kernel
>
>$ objdump -h /proc/kcore
>...
>  Type           Offset             VirtAddr           PhysAddr
>                 FileSiz            MemSiz              Flags  Align
>  NOTE           0x0000000000000158 0x0000000000000000 0x0000000000000000
>                 0x00000000000027fc 0x0000000000000000         0
>  LOAD           0x000003e080003000 0x000003e080000000 0x0000000000000000
>                 0x0000001f00000000 0x0000001f00000000  RWE    1000
>  LOAD           0x000003ff80003000 0x000003ff80000000 0x0000000000000000
>                 0x0000000080000000 0x0000000080000000  RWE    1000
>  LOAD           0x0000000000003000 0x0000000000000000 0x0000000000000000
>                 0x0000000030000000 0x0000000030000000  RWE    1000
>  LOAD           0x000003d100003000 0x000003d100000000 0x0000000000000000
>                 0x0000000000c00000 0x0000000000c00000  RWE    1000
>
>So in that case every /proc/kcore load that is below 0x30000000 must
>be real memory.
>
>Michael

I understand why your patch works on s390x, so how about this way ?

 1. Define "is_phys_addr()" for --mem-usage.
 2. Implement is_phys_addr() using is_iomem_phys_addr() for s390x
    while x86_64 uses is_vmalloc_addr_x86_64().
 3. Use is_phys_addr() instead of is_vmalloc_addr() in get_kcore_dump_loads().


Thanks,
Atsushi Kumagai

_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2014-10-14  7:20 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-01  3:15 [PATCH v6 0/8] add a new interface to show the memory usage of 1st kernel Baoquan He
2014-09-01  3:15 ` [PATCH v6 1/8] initialize pfn_memhole in get_num_dumpable_cyclic Baoquan He
2014-09-01  3:15 ` [PATCH v6 2/8] functions to get crashkernel memory range Baoquan He
2014-09-01  3:15 ` [PATCH v6 3/8] preparation functions for parsing vmcoreinfo Baoquan He
2014-09-01  3:15 ` [PATCH v6 4/8] set vmcoreinfo for kcore Baoquan He
2014-09-01  3:15 ` [PATCH v6 5/8] prepare the dump loads for kcore analysis Baoquan He
2014-09-01  3:15 ` [PATCH v6 6/8] introduce a function exclude_zero_pages_cyclic() Baoquan He
2014-09-01  3:15 ` [PATCH v6 7/8] implement a function to print the memory usage Baoquan He
2014-09-01  3:15 ` [PATCH v6 8/8] add a new interface to show the memory usage of 1st kernel Baoquan He
2014-09-02 11:52   ` Vivek Goyal
2014-09-02 13:15     ` Baoquan He
2014-09-02 13:24       ` Baoquan He
2014-09-03  8:18         ` Atsushi Kumagai
2014-09-03  8:21           ` bhe
2014-09-02  6:20 ` [PATCH v6 0/8] " Atsushi Kumagai
2014-09-02  6:38   ` bhe
2014-09-22 15:02 ` Add "--mem-usage" support for s390x Michael Holzheu
2014-09-23  2:40   ` Baoquan He
2014-09-23  2:48     ` Baoquan He
2014-09-23  2:58       ` Baoquan He
2014-09-24 15:19     ` Michael Holzheu
2014-09-25  9:44       ` Baoquan He
2014-09-26  8:10         ` Michael Holzheu
2014-09-26  8:55           ` Baoquan He
2014-09-26  9:14             ` Baoquan He
2014-09-26 11:34             ` Michael Holzheu
2014-09-29  9:04               ` Baoquan He
2014-09-29 13:12                 ` Michael Holzheu
2014-09-29 13:14                 ` [PATCH] makedumpfile: Enable --mem-usage " Michael Holzheu
2014-09-30  9:02                   ` Baoquan He
2014-10-01 16:59                     ` Michael Holzheu
2014-10-09  6:41                       ` Atsushi Kumagai
2014-10-10 12:23                         ` Michael Holzheu
2014-10-14  7:19                           ` Atsushi Kumagai [this message]
2014-10-14  7:28                             ` bhe
2014-10-14  7:42                               ` bhe
2014-10-16 12:37                             ` Michael Holzheu
2014-10-23  6:56                               ` Atsushi Kumagai
2014-10-23 10:30                                 ` Michael Holzheu
2014-10-30  1:29                                   ` Atsushi Kumagai
2014-10-30  9:14                                     ` Michael Holzheu
2014-10-31  5:25                                       ` Atsushi Kumagai
2014-10-27  7:57                                 ` bhe
2014-10-27  9:04                                   ` bhe
2014-10-28  4:34                                     ` Atsushi Kumagai
2014-10-28  4:34                                   ` Atsushi Kumagai
2014-10-28  4:46                                     ` bhe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0910DD04CBD6DE4193FCF86B9C00BE9701D4E4E4@BPXM01GP.gisp.nec.co.jp \
    --to=kumagai-atsushi@mxc.nes.nec.co.jp \
    --cc=bhe@redhat.com \
    --cc=holzheu@linux.vnet.ibm.com \
    --cc=kexec@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.