[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <adahciq9q86.fsf@cisco.com>
Date: Mon, 10 Dec 2007 13:47:37 -0800
From: Roland Dreier <rdreier@...co.com>
To: Joachim Fenkes <fenkes@...ibm.com>
Cc: Arnd Bergmann <arnd@...db.de>, linuxppc-dev@...abs.org,
LKML <linux-kernel@...r.kernel.org>,
OF-EWG <ewg@...ts.openfabrics.org>,
Christoph Raisch <raisch@...ibm.com>,
Marcus Eder <meder@...ibm.com>,
OF-General <general@...ts.openfabrics.org>,
Stefan Roscher <stefan.roscher@...ibm.com>
Subject: Re: [PATCH] IB/ehca: Serialize HCA-related hCalls on POWER5
> > map_phys_fmr
>
> In fact, we do use hCalls there. Our hardware doesn't actually support FMRs,
> so we translate a "map FMR" into a "reallocate PMR", which doesn't work
> without hCalls. What's more, the hCalls involved (e.g. H_FREE_RESOURCE)
> might well return H_LONG_BUSY, so the whole operation might sleep; no way
> around it.
It's a big problem. If you cannot implement FMRs in such a way that
you can handling having map_phys_fmr being called in a context that
can't sleep, then I think the only option is to remove your FMR
support. It's an optional device feature, so this should be OK
(although the iSER driver currently seems to depend on a device
supporting FMRs, which is probably going to be a problem with iWARP
support in the future anyway).
The fact that consumers can map FMRs from interrupt context, while
holding locks, etc, is pretty fundamental to the use of FMRs so I
don't see any way around the requirement that map_phys_fmr never
sleep.
- R.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists