From: Jeff Hartmann <jhartmann@valinux.com>
To: linux-kernel@vger.kernel.org
Subject: [RFC] [PATCH] PAT Implementation
Date: Fri, 26 Jan 2001 13:40:13 -0700 [thread overview]
Message-ID: <3A71E0AD.8040205@valinux.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1910 bytes --]
I've gotten my PAT code working on my PIII boxen here. It seems to be
reasonable stable for me. I'd appreciate it if the individuals
interested in per page write combining would take a look at it. I've
only included initialization code for the AMD and Intel processors.
This patch replaces the write through cache type with the write
combining cache type (pgprot value of _PAGE_PWT only.) It looks like
from the code in the main kernel tree that this change wouldn't affect
any drivers or core kernel code.
I've included PAT-Jan-26.patch.gz (against 2.4.0 proper), and
testpat.c.gz to this message. After you've patched/installed your
kernel, compile testpat.c as a module (example command line: gcc -O2
-DMODULE -D__KERNEL__ -c testpat.c), and insmod it. It should fail with
ENOMEM, and print out some simple benchmarks into your kernel log.
I'd appreciate any help people can give me in testing, and any comments
on the API that I plan to expose.
I've also included a rough TODO list and the open questions that I have
currently.
-Jeff
TODO list before submission to 2.5:
1. API cleanup: pat_wrtcomb_vmalloc_page_list takes num_pages as an
argument, it should just take a size in bytes.
2. Convert page mappings back to 4MB when memory is freed
3. Testing on a variety of AMD Athlon systems (untested currently)
4. Testing on a variety of PIII systems (tested on PIII Xeon 800)
5. Make sure I didn't break SMP support during debugging (my SMP PIII
box is temporarily unavailable.)
6. Possibly provide a mechanism for someone to convert an already
allocated page or page_list to use the write combining cache type.
Open questions:
1. Should struct page_list contain an array of virtual addresses or
struct page? (Currently its virtual addresses)
2. Should the page table management routines (convert_4mb_to_individual
and convert_individual_to_4mb_page) be exported to modules?
[-- Attachment #2: PAT-Jan-26.patch.gz --]
[-- Type: application/gzip, Size: 7120 bytes --]
[-- Attachment #3: testpat.c.gz --]
[-- Type: application/gzip, Size: 763 bytes --]
reply other threads:[~2001-01-26 20:40 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=3A71E0AD.8040205@valinux.com \
--to=jhartmann@valinux.com \
--cc=linux-kernel@vger.kernel.org \
/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