Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Anyone still using PCI "isp" SCSI / FC controllers?
On Sun, Jul 18, 2021 at 02:44:46PM -0700, Jason Thorpe wrote:
> The Qlogic ISP SCSI / FC driver PCI front-end appears to universally support using 64-bit PCI DMA addresses, based on my reading of this code block in isp_pci_dmasetup():
>
> if (sizeof (bus_addr_t) > 4) {
> if (rq->req_header.rqs_entry_type == RQSTYPE_T2RQS) {
> rq->req_header.rqs_entry_type = RQSTYPE_T3RQS;
> } else if (rq->req_header.rqs_entry_type == RQSTYPE_REQUEST) {
> rq->req_header.rqs_entry_type = RQSTYPE_A64;
> }
> }
>
> There's just one problem, though! It does not use the 64-bit PCI DMA tag, and so it is always getting DMA addresses that fit in 32-bits. On x86-64 machines, this results in having to bounce DMA transfers (ick). On Alpha machines, this results in having to use SGMAP (IOMMU) DMA; this is not a problem unto itself, and I recently made some improvements to this on systems where Qlogic ISP controllers were more likely to be present (e.g. AlphaServer 1000 / 1000A).
>
> But there are some Alpha systems we support (notably the EV6+ Tsunami/Typhoon/Titan systems e.g. DS10/DS20/DS25/...) that natively support 64-bit PCI DMA addressing without having to use SGMAPs ... this is generally preferred because, among other things, it's faster.
>
> I'm pretty sure it's safe, based on the code block quoted above, to change PCI DMA tag selection in the driver to something like this:
>
> /*
> * See conditional in isp_pci_dmasetup(); if
> * sizeof (bus_addr_t) > 4, then we'll program
> * the device using 64-bit DMA addresses.
> * So, if we're going to do that, we should do
> * our best to get 64-bit addresses in the first
> * place.
> */
> if (sizeof (bus_addr_t) > 4 && pci_dma64_available(pa)) {
> isp->isp_dmatag = pa->pa_dmat64;
> } else {
> isp->isp_dmatag = pa->pa_dmat;
> }
>
> Anyway, if someone with more knowledge of these controllers could chime in, I'd really appreciate it. (Hopefully Matt is still lurking on these mailing lists??)
I have:
isp0 at pci10 dev 0 function 0: QLogic FC-AL and 4Gbps Fabric PCI-E HBA
isp1 at pci10 dev 0 function 1: QLogic FC-AL and 4Gbps Fabric PCI-E HBA
connecting to a overland LTO changer
I don't have specific knowledge on these controllers, but I could certainly
test-boot a -current kernel and see if I can still read tapes (the server is
running netbsd-8 at this time)
--
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
NetBSD: 26 ans d'experience feront toujours la difference
--
Home |
Main Index |
Thread Index |
Old Index