Pentium Pro MTRR setting module

Stanislav Meduna (stano@trillian.eunet.sk)
Tue, 6 Jan 1998 17:49:11 +0100 (MET)


Hello,

MTRR are Pentium Pro registers, that control cache strategy for
specified block of memory. It is possible to significantly boost
the performance of e.g. a video card by appropriate setting.

I modified the M. Tischhaeuser's proform module so it creates
a /proc filesystem entry for configuring the registers. This
is not a patch (yet), but separate module - if there is an
interest and I get some positive response, I will create
a kernel source patch.

Best regards
Stano

begin 644 mtrr-1.0.tar.gz
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
=U51333755%---=544TTUU?2_H;\`[(VYW0!X````
`
end