FreeBSD 4.10 + PAE + SunFire v40z (Newisys 4100)
luke at prgmr.com
luke at prgmr.com
Fri Oct 22 09:43:28 PDT 2004
On Thu, 21 Oct 2004, Doug White wrote:
> On Wed, 20 Oct 2004 luke at prgmr.com wrote:
>
>>
>> I have this SunFire v40z (as far as I can tell, it is a rebadged
>> Newisys 4100. Sopposedly, sun manufactured it, but I can't find any
...
> Why are you running this in i386 mode? Running an opteron in i386 mode +
> PAE is a waste of a perfectly good 64 bit box :)
Well, yes, but I can not run -STABLE in amd64 mode... I have to move to
the 5.x branch for that. I do so at home, but for this application, I
don't feel comfortable with anything less than -STABLE.
Even so, the thing is faster than xeons, due to the superior memory
archetecture, especially when using four processors.
>> mpt0: <LSILogic 1030 Ultra4 Adapter> port 0x2000-0x20ff mem \
>> 0xe5820000-0xe582fff f,0xe5830000-0xe583ffff irq 19 at device 4.0 on pci2
>> mpt0: error 16 creating per-cmd DMA maps
>> mpt0: Could not allocate DMA memory
>
> 16 is EBUSY, whicih makes no sense whatsoever because it never sets error
> to EBUSY. It would only ever set it to ENOMEM or succeed. I suspect nasty
> bad memory corruption. Can the mpt device probe correctly if you drop it
> below 4GB?
Hmm... well, Luoqi Chen emailed me a bit ago with an answer that fixed my
problem. I made the suggested changes, recompiled, and the thing seems to
work ok now. I have pasted the relivant bits below:
From: Luoqi Chen <lchen at briontech.com>
...
It's a bug in bus_dmamap_create() code, which has been fixed in -current.
The fix is rather simple, in i386/i386/busdma_machdep.c, replace the line
error = alloc_bounce_pages(dmat, pages);
with
if (alloc_bounce_pages(dmat, pages) < pages)
error = ENOMEM;
-lq
More information about the freebsd-stable
mailing list