A 64k MMU page is 8 times larger than a 8k MMU page. If you move
memory blocks with 64k MMU pages you will have 8 times less MMU
callbacks.

I may be mistaken but Ultrasparc does AFAIK have a extra block copy
engine which works in parallel to the main pipeline. But I do not know
how to access it. Maybe others know.

Olga

On Thu, Mar 25, 2010 at 9:49 PM, jf simon <jfs at themis.com> wrote:
> ????? ???????????? wrote:
>> On Niagara 1/2 machines the shadow rendering of even one diagonal line
>> causes incredible MMU turmoil because there are not enough MMU entries
>> for all memory lines being touched.
>>
>> You could try to enforce the use of 64k MMU pages instead of 8k MMU
>> pages at the beginning of Xorg:
>>         struct memcntl_mha mha;
>>         mha.mha_cmd = MHA_MAPSIZE_BSSBRK;
>>         mha.mha_flags = 0;
>>         mha.mha_pagesize = 64 * 1024;
>>         (void)memcntl(NULL, 0, MC_HAT_ADVISE, (caddr_t)&mha, 0, 0);
>>
>> Stack should be mapped with 64k pages, too:
>>         struct memcntl_mha mha;
>>         mha.mha_cmd = MHA_MAPSIZE_STACK;
>>         mha.mha_flags = 0;
>>         mha.mha_pagesize = 64 * 1024;
>>         (void)memcntl(NULL, 0, MC_HAT_ADVISE, (caddr_t)&mha, 0, 0);
>>
>> You should examine if the shadow buffer is mapped with 64k pages and
>> compare the performance with 64k pages and 8k pages. You should at
>> least see a 9-15% increase in performance.
>>
>
> thanks.
> i am not familiar with these 64k pages.
> but you dont think i can speed up the transfer speed of the
> shadow FB to the video ram?
> -jfs
>



-- 
      ,   _                                    _   ,
     { \/`o;====-    Olga Kryzhanovska   -====;o`\/ }
.----'-/`-/     olga.kryzhanovska at gmail.com   \-`\-'----.
 `'-..-| /     Solaris/BSD//C/C++ programmer   \ |-..-'`
      /\/\                                     /\/\
      `--`                                      `--`

Reply via email to