Thread (6 messages) 6 messages, 3 authors, 2012-07-11

Changing the page attributes

From: Arun KS <hidden>
Date: 2012-07-11 11:01:30

On Wed, Jul 11, 2012 at 12:04 PM, Arun KS [off-list ref] wrote:
Hello Mulyadi,

On Tue, Jul 10, 2012 at 9:42 PM, Mulyadi Santosa
[off-list ref] wrote:
quoted
Hi..

On Tue, Jul 10, 2012 at 6:51 PM, Arun KS [off-list ref] wrote:
quoted
Hello Experts,

I have a requirement to change __log_buf memory(kernel printk buffer)
as non cacheable memory.
How can I change the page attributes for changing cache policy to non cacheable?
I just can give short clue. I think somehow you must find its PTE
entry...there, IIRC there is page attribute that can be changed to
make it uncacheable.

cross check the Intel processor manual for further clarification (if
it's indeed x86 arch)
__log_buf size is 512KB and PTE is mapped to a 1MB section. So if I
change the attribute for this 1MB section, lot of other stuffs(in this
1MB bss section) will also become non-cachable. Looks like it is not
possible unless my __log_buf is 1MB in size.
Or I need to create another section like .init, .data, .bss and create
4KB pages(with two levels of Page Tables) instead of 1M section.

My  arch is arm-v7
I went ahead and made my __log_buf size to 1MB.
But the memory is not aligned to 1MB boundary. Here is what system.map shows.

c08ac400 b __warned.32427
c08ac404 b __log_buf
c09ac404 B console_set_on_cmdline
c09ac408 b idle_notifier
c09ac40c B sys_tz

so __log_buf resides in two 1M sections in parts and it needs two PTEs.

Then I added __aligned__(1024*1024) attribute to __log_buf array.
This time compiler error  "Error: alignment too large: 15 assumed"

But  __aligned_(32*1024) is working fine as below

c08b84c0 b __warned.32427
c08c0000 b __log_buf
c09c0000 B console_set_on_cmdline
c09c8000 b idle_notifier
c09c8004 B sys_tz

Is it not possible to align more than 32KB?
Any pointers?

Thanks,
Arun
Thanks,
Arun
quoted
--
regards,

Mulyadi Santosa
Freelance Linux trainer and consultant

blog: the-hydra.blogspot.com
training: mulyaditraining.blogspot.com
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help