Re: ioremap()/PCI sickness in 2.4.18-rc2

From: Steffen Persvold (sp@scali.com)
Date: Fri Feb 22 2002 - 06:49:10 EST


"Jeff V. Merkey" wrote:
>
> On Wed, Feb 20, 2002 at 07:44:58PM +0100, Steffen Persvold wrote:
> > On Wed, 20 Feb 2002, David S. Miller wrote:
> >
> > > From: Jeff Garzik <jgarzik@mandrakesoft.com>
> > > Date: Wed, 20 Feb 2002 12:26:12 -0500
> > >
> > > type abuse aside, and alpha bugs aside, this looks ok... what is the
> > > value of as->msize?
> > >
> > > Jeff and Jeff, the problem is one of two things:
> > >
> > > 1) when you have ~2GB of memory the vmalloc pool is very small
> > > and this it the same place ioremap allocations come from
> > >
> > > 2) the BIOS or Linus is not assigning resources of the device
> > > properly, or it simple can't because the available PCI MEM space
> > > with this much memory is too small
> > >
> > > I note that one of the resources of the card is 16MB or so.
> >
> > Hi guys,
> >
> > There is actually no need to have all three regions mapped at all times is
> > there Jeff ? In the Scali ICM driver we actually doesn't ioremap() the
> > prefetchable space at all because this is done with the mmap() method to
> > the userspace clients. If you have a kernel space client though ioremap()
> > is used, but only the parts of it that is needed (based on the number of
> > nodes in the cluser and the shared memory size per node).
> >
> > Regards,
> >
>
> I am not using the adapters in user space, I am using them in kernel
> space with a distributed RAID agent and file system. This is a general
> issue with Hugo's SISCI and IRM drivers and Linux. They all need to work
> in every configuration. If it works with less than 1 GB is should work
> with > 1GB of memory.
>
> I am looking through get_vm_area() since this is where the bug is. Your
> Scali drivers are not the Dolphin released IRM/SISCI but custom drivers
> you guys sell with **YOUR** software versions, and they are far from
> general purpose.
>

Jeff,

I really don't think you're in a position to say wether the Scali driver is
general purpose or not, but in any case this issue is OT. My point is that it
is not a good idea to keep the prefetchable area mapped at all times. The ICM
driver also has kernel clients (e.g. a ethernet emulation driver) and they only
ioremap() the areas which is needed based upon the number of nodes in the
cluster they communicate with (and only a few Kbytes is mapped from each node).

Regards,

-- 
  Steffen Persvold   | Scalable Linux Systems |   Try out the world's best
 mailto:sp@scali.com |  http://www.scali.com  | performing MPI implementation:
Tel: (+47) 2262 8950 |   Olaf Helsets vei 6   |      - ScaMPI 1.13.8 -
Fax: (+47) 2262 8951 |   N0621 Oslo, NORWAY   | >320MBytes/s and <4uS latency
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Feb 23 2002 - 21:00:40 EST