On 2015/01/22 11:34, John Merriam wrote: > On 2015-01-21 18:36, John Merriam wrote: > >On 1/21/2015 1:43 PM, Stefan Sperling wrote: > >>There is supposed to be a bounce buffer in bce to cope with > >>systems with more than 1GB but perhaps it is broken. > >> > > > >I installed the old 1GB DIMM that came with the machine when I > >acquired it, and you are correct, it seems to work fine with <= 1GB > >RAM. > > > >Next question is how to fix it so it works with > 1GB RAM. > > Hmmm. I looked at sys/dev/pci/if_bce.c and it looks to me like this patch: > > http://marc.info/?l=openbsd-tech&m=130183146308043 > > is still in place. > > I then downloaded version 1.35 (dated 4/3/2011) of if_bce.c from > cvsweb.openbsd.org and did a diff against version 1.40 (in -current now) of > if_bce.c and there are hardly any differences. The main change is the call > to m_devget() removing the 5th parameter which was NULL. That first > parameter to m_devget looks funny to me. After thinking about it I think I > know what it's doing but it just looks weird to me. Anyway, the only other > changes besides includes from 1.35 to 1.40 are in the bce_ioctl() function > and they don't look like they would make any difference to me. > > So, what could be the problem then? Theoretically it did work as of the > 1.35 if_bce.c revision which seems to have shipped in OpenBSD 5.0. This > message: > > http://marc.info/?l=openbsd-tech&m=130217668909255 > > seems to verify that it did actually work at one point.
Would presumably be a change in uvm somewhere. (paddr_t)(0x40000000 - 1) is passed as 'high' to uvm_km_kmemalloc_pla -> uvm_pglistalloc and is meant to constrain the addresses. Identifying when (at least which release) it broke might be a good start..
