At 11:31 PM 10/04/2005 -0600, Scott Long wrote this to All:
Making a driver PAE-ified means either teaching it to do 64-bit
scatter-gather (assuming that the peripheral hardware can do this
and that it's documented), or teaching the driver to correctly handle
EINPROGRESS from bus_dmamap_load() along with using the proper busdma
tag limits.  The strategy I took with 6.x/5.x was the second one since
I didn't have good IPS docs in front of me and I wanted it follow the
APIs correctly.  I did test it with 8GB of memory and it performed
correctly under load.  I haven't taken a close enough look at your
MFC patch to say for sure if it's correct or not.  I'm not sure if
I'll have time to take another look in the next few days, unfortunately.
Is there any chance you could test 5.x/6.0 under load with PAE just to
validate the assertion that it works correctly there?

I had a chance to test 5.4-RC1 (i386) today with GENERIC, SMP, PAE, and SMP-PAE kernels (the last one is just PAE with "options SMP").


To recap, the hardware is an IBM xSeries 346, Dual Xeon 3GHz (non-E64MT), ServeRAID-7K.

GENERIC and SMP survived "make buildkernel", but PAE and SMP-PAE paniced reproducibly doing the same. The DDB stack trace doesn't appear to be anywhere near the IPS driver though, so I'm way out of my league.


========== PAE panic kernel trap 12 with interrupts disabled

Fatal trap 12: page fault while in kernel mode
fault virtual address   = 0x24
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc03d48eb
stack pointer           = 0x10:0xeb133b28
frame pointer           = 0x10:0xeb133b3c
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = resume, IOPL = 0
current process         = 146 (syncer)
[thread pid 146 tid 100157 ]
Stopped at propagate_priority+0x7f:             movl    0x24(%eax),%eax
db> trace
Tracing pid 146 tid 100157 td 0xc68cba80
propagate_priority
turnstile_wait
_mtx_lock_sleep
vfs_clean_pages
bdwrite
ffs_blkfree
handle_workitem_freefrag
process_worklist_item
softdep_process_worklist
sched_sync
fork_exit
fork_trampoline
--- trap 0x1, eip = 0, esp = 0xeb133d7c, ebp = 0 ---

========== End PAE panic

========== SMP-PAE panic
kernel trap 12 with interrupts disabled

Fatal trap 12: page fault while in kernel mode
cpuid = 0; apic id = 00
fault virtual address   = 0x24
fault code              = supervisor read, page not present
instruction pointer     = 0x8:0xc03d7cd3
stack pointer           = 0x10:0xeb0d0b7c
frame pointer           = 0x10:0xeb0d0b90
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, def32 1, gran 1
processor eflags        = resume, IOPL = 0
current process         = 149 (syncer)
[thread pid 149 tid 100160 ]
Stopped at propagate_priority+0x7f:             movl    0x24(%eax),%eax
db> trace
Tracing pid 149 tid 100160 td 0xc68b2000
propagate_priority
turnstile_wait
_mtx_lock_sleep
vfs_busy_pages
ibwrite
bwrite
vfs_bio_awrite
vop_stdfsync
spec_fsync
spec_vnoperate
sched_sync
fork_exit
fork_trampoline
--- trap 0x1, eip = 0, esp = 0xeb0d0d7c, ebp = 0 ---
========== End PAE panic



_______________________________________________
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to