FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Crash Utility

 
 
LinkBack Thread Tools
 
Old 01-19-2012, 04:42 AM
"Suzuki K. Poulose"
 
Default Fix vmalloc address translation for BookE

On ബുധന്* 18 ജനുവരി 2012 08:11 വൈകു, Dave Anderson wrote:



----- Original Message -----

(2012/01/16 14:15), Suzuki K. Poulose wrote:

This patch fixes the vmalloc address translation for BookE.This
patch is based on the PPC44x definitions and may not work fine for
other systems.

crash> mod
mod: cannot access vmalloc'd module memory
crash>


After the patch :

crash> mod
MODULE NAME SIZE OBJECT FILE
d1018fd8 mbcache 6023 (not loaded) [CONFIG_KALLSYMS]
d1077190 jbd 58360 (not loaded) [CONFIG_KALLSYMS]
d107ca98 llc 4525 (not loaded) [CONFIG_KALLSYMS]
d1130de4 ext3 203186 (not loaded) [CONFIG_KALLSYMS]
d114bbac squashfs 26129 (not loaded) [CONFIG_KALLSYMS]


On ppc44x, the virtual-address is split as below :

Bits |0 10|11 19|20 31|
-----------------------------------
| PGD | PMD | PAGE_OFFSET |
-----------------------------------

The PAGE_BASE_ADDR is a 64bit value(of type phys_addr_t).

Note : I am not sure how do we distinguish the different values (PGDIR_SHIFT etc)
for different PPC32 systems. Since there are a lot of different platforms
under PPC32, we need some mechanism to dynamically determine the PGDIR, PTE
shift values. One option is to put the information in the VMCOREINFO.


Hi Suzuki,

How about using powerpc_base_platform symbol?

*PTRRELOC(&powerpc_base_platform) = t->platform;

$ grep -rIw platform arch/powerpc/kernel/cputable.c
/* The platform string corresponding to the real PVR */
.platform = "power3",
.platform = "power3",
.platform = "rs64",
.platform = "rs64",
.platform = "rs64",
.platform = "rs64",
.platform = "power4",
.platform = "power4",
:
:

This kconfig based platform string data can be read
base_platform = symbol_value("powerpc_base_platform symbols");
read_string(base_platform, buf, buffer-size);
at ppc_init(POST_GDB).

I think platform can be distinguished with following naming rules.
- CONFIG_40x=y: platform is "ppc403"
- CONFIG_44x=y: platform is "ppc440"

Thanks,
Toshi


That makes good sense. Suzuki, are you re-working the patch
with Toshi's suggestion?


I will take a look at this. Sorry, have been a bit busy.

Thanks
Suzuki

--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility
 
Old 02-02-2012, 12:59 AM
Toshikazu Nakayama
 
Default Fix vmalloc address translation for BookE

(2012/01/19 14:42), Suzuki K. Poulose wrote:

On ബുധന്* 18 ജനുവരി 2012 08:11 വൈകു, Dave Anderson wrote:



----- Original Message -----

(2012/01/16 14:15), Suzuki K. Poulose wrote:

This patch fixes the vmalloc address translation for BookE.This
patch is based on the PPC44x definitions and may not work fine for
other systems.

crash> mod
mod: cannot access vmalloc'd module memory
crash>


After the patch :

crash> mod
MODULE NAME SIZE OBJECT FILE
d1018fd8 mbcache 6023 (not loaded) [CONFIG_KALLSYMS]
d1077190 jbd 58360 (not loaded) [CONFIG_KALLSYMS]
d107ca98 llc 4525 (not loaded) [CONFIG_KALLSYMS]
d1130de4 ext3 203186 (not loaded) [CONFIG_KALLSYMS]
d114bbac squashfs 26129 (not loaded) [CONFIG_KALLSYMS]


On ppc44x, the virtual-address is split as below :

Bits |0 10|11 19|20 31|
-----------------------------------
| PGD | PMD | PAGE_OFFSET |
-----------------------------------

The PAGE_BASE_ADDR is a 64bit value(of type phys_addr_t).

Note : I am not sure how do we distinguish the different values (PGDIR_SHIFT etc)
for different PPC32 systems. Since there are a lot of different platforms
under PPC32, we need some mechanism to dynamically determine the PGDIR, PTE
shift values. One option is to put the information in the VMCOREINFO.


Hi Suzuki,

How about using powerpc_base_platform symbol?

*PTRRELOC(&powerpc_base_platform) = t->platform;

$ grep -rIw platform arch/powerpc/kernel/cputable.c
/* The platform string corresponding to the real PVR */
.platform = "power3",
.platform = "power3",
.platform = "rs64",
.platform = "rs64",
.platform = "rs64",
.platform = "rs64",
.platform = "power4",
.platform = "power4",
:
:

This kconfig based platform string data can be read
base_platform = symbol_value("powerpc_base_platform symbols");
read_string(base_platform, buf, buffer-size);
at ppc_init(POST_GDB).

I think platform can be distinguished with following naming rules.
- CONFIG_40x=y: platform is "ppc403"
- CONFIG_44x=y: platform is "ppc440"

Thanks,
Toshi


That makes good sense. Suzuki, are you re-working the patch
with Toshi's suggestion?


I will take a look at this. Sorry, have been a bit busy.


Hi Suzuki,

I'd put forward a proposal which can make your BookE support easy to adjust.
If this patch set is suitable for your Note's solution,
please merge into your works, and I'm not sure about BookE's word like PPC44X,
also please make reform of its staff.

Thanks,
Toshi.


Thanks
Suzuki

--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility



--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility
 
Old 02-02-2012, 01:16 AM
Toshikazu Nakayama
 
Default Fix vmalloc address translation for BookE

Hi Suzuki,


I've send wrong file, please switch it.

Thanks,
Toshi

(2012/02/02 10:59), Toshikazu Nakayama wrote:

(2012/01/19 14:42), Suzuki K. Poulose wrote:

On ബുധന്* 18 ജനുവരി 2012 08:11 വൈകു, Dave Anderson wrote:



----- Original Message -----

(2012/01/16 14:15), Suzuki K. Poulose wrote:

This patch fixes the vmalloc address translation for BookE.This
patch is based on the PPC44x definitions and may not work fine for
other systems.

crash> mod
mod: cannot access vmalloc'd module memory
crash>


After the patch :

crash> mod
MODULE NAME SIZE OBJECT FILE
d1018fd8 mbcache 6023 (not loaded) [CONFIG_KALLSYMS]
d1077190 jbd 58360 (not loaded) [CONFIG_KALLSYMS]
d107ca98 llc 4525 (not loaded) [CONFIG_KALLSYMS]
d1130de4 ext3 203186 (not loaded) [CONFIG_KALLSYMS]
d114bbac squashfs 26129 (not loaded) [CONFIG_KALLSYMS]


On ppc44x, the virtual-address is split as below :

Bits |0 10|11 19|20 31|
-----------------------------------
| PGD | PMD | PAGE_OFFSET |
-----------------------------------

The PAGE_BASE_ADDR is a 64bit value(of type phys_addr_t).

Note : I am not sure how do we distinguish the different values (PGDIR_SHIFT etc)
for different PPC32 systems. Since there are a lot of different platforms
under PPC32, we need some mechanism to dynamically determine the PGDIR, PTE
shift values. One option is to put the information in the VMCOREINFO.


Hi Suzuki,

How about using powerpc_base_platform symbol?

*PTRRELOC(&powerpc_base_platform) = t->platform;

$ grep -rIw platform arch/powerpc/kernel/cputable.c
/* The platform string corresponding to the real PVR */
.platform = "power3",
.platform = "power3",
.platform = "rs64",
.platform = "rs64",
.platform = "rs64",
.platform = "rs64",
.platform = "power4",
.platform = "power4",
:
:

This kconfig based platform string data can be read
base_platform = symbol_value("powerpc_base_platform symbols");
read_string(base_platform, buf, buffer-size);
at ppc_init(POST_GDB).

I think platform can be distinguished with following naming rules.
- CONFIG_40x=y: platform is "ppc403"
- CONFIG_44x=y: platform is "ppc440"

Thanks,
Toshi


That makes good sense. Suzuki, are you re-working the patch
with Toshi's suggestion?


I will take a look at this. Sorry, have been a bit busy.


Hi Suzuki,

I'd put forward a proposal which can make your BookE support easy to adjust.
If this patch set is suitable for your Note's solution,
please merge into your works, and I'm not sure about BookE's word like PPC44X,
also please make reform of its staff.

Thanks,
Toshi.


Thanks
Suzuki

--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility





--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility


--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility
 
Old 02-02-2012, 07:48 AM
"Suzuki K. Poulose"
 
Default Fix vmalloc address translation for BookE

On 02/02/2012 07:46 AM, Toshikazu Nakayama wrote:

Hi Suzuki,
I've send wrong file, please switch it.

Thanks,
Toshi

(2012/02/02 10:59), Toshikazu Nakayama wrote:

(2012/01/19 14:42), Suzuki K. Poulose wrote:

On ബുധന്* 18 ജനുവരി 2012 08:11 വൈകു, Dave Anderson wrote:



----- Original Message -----

(2012/01/16 14:15), Suzuki K. Poulose wrote:

This patch fixes the vmalloc address translation for BookE.This
patch is based on the PPC44x definitions and may not work fine for
other systems.

crash> mod
mod: cannot access vmalloc'd module memory
crash>


After the patch :

crash> mod
MODULE NAME SIZE OBJECT FILE
d1018fd8 mbcache 6023 (not loaded) [CONFIG_KALLSYMS]
d1077190 jbd 58360 (not loaded) [CONFIG_KALLSYMS]
d107ca98 llc 4525 (not loaded) [CONFIG_KALLSYMS]
d1130de4 ext3 203186 (not loaded) [CONFIG_KALLSYMS]
d114bbac squashfs 26129 (not loaded) [CONFIG_KALLSYMS]


On ppc44x, the virtual-address is split as below :

Bits |0 10|11 19|20 31|
-----------------------------------
| PGD | PMD | PAGE_OFFSET |
-----------------------------------

The PAGE_BASE_ADDR is a 64bit value(of type phys_addr_t).

Note : I am not sure how do we distinguish the different values (PGDIR_SHIFT etc)
for different PPC32 systems. Since there are a lot of different platforms
under PPC32, we need some mechanism to dynamically determine the PGDIR, PTE
shift values. One option is to put the information in the VMCOREINFO.


Hi Suzuki,

How about using powerpc_base_platform symbol?

*PTRRELOC(&powerpc_base_platform) = t->platform;

$ grep -rIw platform arch/powerpc/kernel/cputable.c
/* The platform string corresponding to the real PVR */
.platform = "power3",
.platform = "power3",
.platform = "rs64",
.platform = "rs64",
.platform = "rs64",
.platform = "rs64",
.platform = "power4",
.platform = "power4",
:
:

This kconfig based platform string data can be read
base_platform = symbol_value("powerpc_base_platform symbols");
read_string(base_platform, buf, buffer-size);
at ppc_init(POST_GDB).

I think platform can be distinguished with following naming rules.
- CONFIG_40x=y: platform is "ppc403"
- CONFIG_44x=y: platform is "ppc440"

Thanks,
Toshi


That makes good sense. Suzuki, are you re-working the patch
with Toshi's suggestion?


I will take a look at this. Sorry, have been a bit busy.


Hi Suzuki,

I'd put forward a proposal which can make your BookE support easy to adjust.
If this patch set is suitable for your Note's solution,
please merge into your works, and I'm not sure about BookE's word like PPC44X,
also please make reform of its staff.


Thanks for the patches and sorry, I was a bit late to get this done. I have posted
a version today. Could you please review it and let me know your thoughts ?

Thanks

Suzuki

--
Crash-utility mailing list
Crash-utility@redhat.com
https://www.redhat.com/mailman/listinfo/crash-utility
 

Thread Tools




All times are GMT. The time now is 12:10 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org