From: "Hiremath, Vaibhav" <hvaibhav@ti.com>
To: "linux@arm.linux.org.uk" <linux@arm.linux.org.uk>
Cc: "linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>,
"linux-omap@vger.kernel.org" <linux-omap@vger.kernel.org>
Subject: CPU consumption is going as high as 95% on ARM Cortex A8
Date: Thu, 17 Dec 2009 11:08:31 +0530 [thread overview]
Message-ID: <19F8576C6E063C45BE387C64729E73940449F43857@dbde02.ent.ti.com> (raw)
Hi,
I am seeing some strange behavior while accessing buffers through User Space (mapped using mmap call)
Background :-
------------
Platform - TI AM3517
CPU - ARM Cortex A8
root@am3517-evm:~#
root@am3517-evm:~# cat /proc/cpuinfo
Processor : ARMv7 Processor rev 7 (v7l)
BogoMIPS : 499.92
Features : swp half thumb fastmult vfp edsp neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x1
CPU part : 0xc08
CPU revision : 7
Hardware : OMAP3517/AM3517 EVM
Revision : 0020
Serial : 0000000000000000
root@omap3517-evm:~#
Issue/Usage :-
-------------
The V4l2-Capture driver captures the data from video decoder into buffer and the application does some processing on this buffer. The mmap implementation can be found at drivers/media/video/videobuf-dma-contig.c, function__videobuf_mmap_mapper().
Observation -
The CPU consumption goes as high as 95% on read buffer operation, please note that write operation on these buffers also gives 60-70% CPU consumption. (Using memcpy/memset API's for read and write operation).
Some more inputs :-
------------------
- If I specify PAGE_READONLY or PAGE_SHARED (actual flag is L_PTE_USER) while mapping the buffer to UserSpace in mmap system call, the CPU consumption goes down to expected value (20-27%).
Then I reached till the function cpu_v7_set_pte_ext, where we are configuring level 2 translation table entries, which makes use of these flags.
- Below is the value of r0, r1 and r2 register (ptep, pteval, ext) in both the cases -
Without PAGE_READONLY/PAGE_SHARED
ptep - cfb5de10, pte - 8d200383, ext - 800
ptep - cfb5de14, pte - 8d201383, ext - 800
Important bits are [0-9] - 0x383
With PAGE_READONLY/PAGE_SHARED set
ptep - cfb30e10, pte - 8d10038f, ext - 800
ptep - cfb30e14, pte - 8d10138f, ext - 800
Important bits are [0-9] - 0x38F
The lines inside function "cpu_v7_set_pte_ext", is using the flag as shown below -
tst r1, #L_PTE_USER
orrne r3, r3, #PTE_EXT_AP1
tstne r3, #PTE_EXT_APX
bicne r3, r3, #PTE_EXT_APX | PTE_EXT_AP0
Without PAGE_READONLY/PAGE_SHARED With flags set
Access perm = reserved Access Perm = Read Only
- I tried the same thing with another platform (ARM9) and it works fine there.
Can somebody help me to understand the flag PAGE_SHARED/PAGE_READONLY and access permissions? Am I debugging this into right path? Does anybody have seen/observed similar issue before?
Thanks in advance.
Thanks,
Vaibhav Hiremath
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next reply other threads:[~2009-12-17 5:39 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-17 5:38 Hiremath, Vaibhav [this message]
2009-12-17 6:24 ` Shilimkar, Santosh
2009-12-17 9:56 ` Russell King - ARM Linux
2009-12-21 6:26 ` Hiremath, Vaibhav
2009-12-21 9:07 ` Russell King - ARM Linux
2009-12-21 9:21 ` Hiremath, Vaibhav
2009-12-21 10:50 ` Russell King - ARM Linux
2009-12-21 11:26 ` Hiremath, Vaibhav
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=19F8576C6E063C45BE387C64729E73940449F43857@dbde02.ent.ti.com \
--to=hvaibhav@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-mm@kvack.org \
--cc=linux-omap@vger.kernel.org \
--cc=linux@arm.linux.org.uk \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox