MMU and performance

bridged with qnx.rtos
Post Reply
Michael Tasche

MMU and performance

Post by Michael Tasche » Tue Jun 26, 2007 10:45 am

Hi,

we have made some performance tests on a PPC405 board.
First I can confirm "Kernel Benchmark Results" from QSSL.
You can get this performance results, if you get no TLB misses!
The problem on the ppc405 begins, if the normal work cycle of your
system uses much more than 64 4K-Pages. In this case your system uses
more an more time in the TLB-Miss exception and slows down dramatically.

A simple hack, if you have enough memory, to get more performance would
be the use of bigger pages.
Is the neutrino code PAGESIZE clean?
Would it be possible to setup a QNX System using a bigger page size (On
our ppc405 system perhaps 16k) ?

Well, years ago QSSL anounced 4 different memory protection models:

1. No protection, single address space, no process manager, everything
is linked with the micro kernel, virt. addr = phys. addr..

2. No protection, single address space, process manager, virt. addr =
phys. addr..

3. Full protection, single address space, process manager, virt. addr =
phys. addr..

4. Full protection, multiple address spaces, process manager, virt. addr
!= phys. addr..

At the moment, we have only model 4.
I think others have asked before, but I try again:
Are there any plans to implement one of the above models 1...3 in the
future?

E.g. on a booke cpu(e.g. PPC440) you could reduce the influence of the
MMU on the realtime performance to a minimum by using memory model 3
with variable sized tlb's.
You would have full protection and only loose the fork API.


Kind regards
Michael

Igor Kovalenko

Re: MMU and performance

Post by Igor Kovalenko » Thu Jun 28, 2007 7:45 am

I think they do use large pages at least on some kernel versions. Not sure
about PPC.
You can probably forget about those other memory models.

"Michael Tasche" <michael.tasche@esd-electronics.com> wrote in message
news:9b77l4-3m5.ln1@comm.esd...
Hi,

we have made some performance tests on a PPC405 board.
First I can confirm "Kernel Benchmark Results" from QSSL.
You can get this performance results, if you get no TLB misses!
The problem on the ppc405 begins, if the normal work cycle of your system
uses much more than 64 4K-Pages. In this case your system uses more an
more time in the TLB-Miss exception and slows down dramatically.

A simple hack, if you have enough memory, to get more performance would be
the use of bigger pages.
Is the neutrino code PAGESIZE clean?
Would it be possible to setup a QNX System using a bigger page size (On
our ppc405 system perhaps 16k) ?

Well, years ago QSSL anounced 4 different memory protection models:

1. No protection, single address space, no process manager, everything is
linked with the micro kernel, virt. addr = phys. addr..

2. No protection, single address space, process manager, virt. addr =
phys. addr..

3. Full protection, single address space, process manager, virt. addr =
phys. addr..

4. Full protection, multiple address spaces, process manager, virt. addr
!= phys. addr..

At the moment, we have only model 4.
I think others have asked before, but I try again:
Are there any plans to implement one of the above models 1...3 in the
future?

E.g. on a booke cpu(e.g. PPC440) you could reduce the influence of the MMU
on the realtime performance to a minimum by using memory model 3 with
variable sized tlb's.
You would have full protection and only loose the fork API.


Kind regards
Michael

Malte Mundt

Re: MMU and performance

Post by Malte Mundt » Wed Jul 04, 2007 12:06 pm

For the PPC440, Large Page Support will be implemented in 6.4, but this will
not be a new memory model.

"Michael Tasche" <michael.tasche@esd-electronics.com> schrieb im Newsbeitrag
news:9b77l4-3m5.ln1@comm.esd...
Hi,

we have made some performance tests on a PPC405 board.
First I can confirm "Kernel Benchmark Results" from QSSL.
You can get this performance results, if you get no TLB misses!
The problem on the ppc405 begins, if the normal work cycle of your
system uses much more than 64 4K-Pages. In this case your system uses
more an more time in the TLB-Miss exception and slows down dramatically.

A simple hack, if you have enough memory, to get more performance would
be the use of bigger pages.
Is the neutrino code PAGESIZE clean?
Would it be possible to setup a QNX System using a bigger page size (On
our ppc405 system perhaps 16k) ?

Well, years ago QSSL anounced 4 different memory protection models:

1. No protection, single address space, no process manager, everything
is linked with the micro kernel, virt. addr = phys. addr..

2. No protection, single address space, process manager, virt. addr =
phys. addr..

3. Full protection, single address space, process manager, virt. addr =
phys. addr..

4. Full protection, multiple address spaces, process manager, virt. addr
!= phys. addr..

At the moment, we have only model 4.
I think others have asked before, but I try again:
Are there any plans to implement one of the above models 1...3 in the
future?

E.g. on a booke cpu(e.g. PPC440) you could reduce the influence of the
MMU on the realtime performance to a minimum by using memory model 3
with variable sized tlb's.
You would have full protection and only loose the fork API.


Kind regards
Michael

Post Reply

Return to “qnx.rtos”