On Wed, Apr 18, 2012 at 8:23 AM, Tom Rini <trini@xxxxxx> wrote: > Performance isn't in-line with what I would expect (in playing with fio), so > if you want to whip something up, or point me some changesets / other > drivers I can take a stab here. Thanks! > The thrust is to change this loop in mvs_pci_init: do { mvi = mvs_pci_alloc(pdev, ent, shost, nhost); if (!mvi) { rc = -ENOMEM; goto err_out_regions; } memset(&mvi->hba_info_param, 0xFF, sizeof(struct hba_info_page)); mvs_init_sas_add(mvi); mvi->instance = nhost; rc = MVS_CHIP_DISP->chip_init(mvi); if (rc) { mvs_free(mvi); goto err_out_regions; } nhost++; } while (nhost < chip->n_host); ...to assume that mvs_pci_alloc will do the allocation of a scsi_host per chip, rather than passing in a global host. Then would need to clean up warts like the following in mvs_phy_control: while (sha->sas_phy[i]) { if (sha->sas_phy[i] == sas_phy) break; i++; } ...since this model means that the sas_phy->id can be used directly to look up the local mvsas phy. I might circle back to this once 3.4 finalizes (since the random ids libsas uses for identifying local ports is onerous), but if someone else beats me to it I wouldn't mind ;-). -- Dan -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html