On 1/22/2015 3:40 PM, Mark Kettenis wrote:
Date: Thu, 22 Jan 2015 19:38:42 +0100 (CET)
From: Mark Kettenis <[email protected]>
Date: Thu, 22 Jan 2015 18:04:44 +0100
From: Stefan Sperling <[email protected]>
It looks as if some ring descriptor data is still being allocated with
bus_dmamem_alloc(). That function probably doesn't respect the mapping
constraints bce(4) hardware requires.
This diff makes bce use the same memory allocation APIs as bwi(4) is
using. Some bwi devices have the same 1GB problem and I know the bwi
code works fine with such devices. So perhaps applying the same approach
to bce will fix your issue.
I'd really prefer it if we'd solve this issue by promoting
_bus_dmamem_alloc_range() to a first class citizen. I'll try to
recover an old diff that did this tonight.
No harm in testing this diff though to verify that it indeed solves
the issue.
So here is the alternative diff. Only amd64/i386 are actually
implemented, but those are the only platforms we support bce(4) on.
This diff from mark.kettenis also seems to work with 4GM of RAM
installed. I also did the ping -f and scp tests. It seems that
performance may be a bit better with this patch but it is hard to tell
for sure. Thanks!
--
John Merriam