Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 05 Feb 1997 19:33:54 -0800 (PST)
From:      Simon Shapiro <Shimon@i-Connect.Net>
To:        freebsd-scsi@freebsd.org, freebsd-hackers@freebsd.org
Subject:   Contigious (spelling?) allocation in kernel
Message-ID:  <XFMail.970205205354.Shimon@i-Connect.Net>

next in thread | raw e-mail | index | archive | help
I need to allocate a contigious (one piece :-) block of memory for a DMA
scatter/gather list.  The HBA knows how to do scatter gather, but wants a
single pointer to a single block of memory that hoslds the entire list.
The SG structure is very plain, 32bits for length and 32bits for physical
address; 8 bytes.  The thing is capable of up to 8192 entries, which give
us a possible list of 64KB per request list.

As each HBA can have up to 256 concurrent requests, with who knows how
many more in the driver's queue, the list can grow quite impressively.
Since most requests are smaller, it seems very wasteful to allocate all
this memory upfront.  So malloc is in order, but what are the options?

Thanx,

Simon



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.970205205354.Shimon>