On Tue, 02 Nov 2010 08:47:24 -0500 Brian King <brking@xxxxxxxxxxxxxxxxxx> wrote: > On 11/01/2010 05:15 PM, FUJITA Tomonori wrote: > > On Mon, 01 Nov 2010 14:37:42 -0700 > > "Nicholas A. Bellinger" <nab@xxxxxxxxxxxxxxx> wrote: > > > >> On Tue, 2010-11-02 at 06:05 +0900, FUJITA Tomonori wrote: > >>> On Sat, 30 Oct 2010 16:13:54 -0700 > >>> "Nicholas A. Bellinger" <nab@xxxxxxxxxxxxxxx> wrote: > >>> > >>>> From: Nicholas Bellinger <nab@xxxxxxxxxxxxxxx> > >>>> > >>>> This patch takes tomo-san original commit 94fdb0196151 and changes a handful > >>>> of important items wrt to the fabric configfs logic. > >>>> > >>>> Firstly, this patch introduces struct ibmvscsis_vdev and converts the > >>>> VIO ibmvscsis_probe() and ibmvscsi_remove() callers to allocate/free > >>>> struct ibmvscsis_vdev instead of the original usage of struct ibmvscsis_tpg > >>>> which is intended to be allocated/freed respectively in ibmvscsis_make_tpg() > >>>> and ibmvscsis_drop_tpg() fabric configfs handlers. > >>> > >>> What happens if an initiator sends a crq command before an user > >>> creates a tpg? Or what happens if an initiator sends a crq command > >>> after removing a tpg? > >>> > >> > >> Hmmm, good point. So this would require ibmvscsis_queuecommand() to > >> check internal some ibmvscsi_tpg state to determine availability, and > >> reject incoming I/O otherwise. The other operation would be to just > >> move crq queue creation/release for individual ibmvscsi_vdev into > >> ibmvscsis_make_tpg() and ibmvscsis_drop_tpg(). > > > > You don't need to create/release rcq. I think that enable/disable vio > > interrupts is enough. > > Maybe I'm not following the conversation here, but if you just disable vio > interrupts, then any commands sent by a client LPAR would be seen to hang > from the client's perspective. If ibmvscsis doesn't have the CRQ registered, > then firmware will fail client commands with a response indicating the server > is not ready. Yeah, I told him it makes a client stall. We should register CRQ and enable vio interrupts in vio_driver->probe. ibmvscsis driver needs to set up nexuses in vio_driver->probe. The problem is that it's not fit for TCM model. My initial version does that in a hacky way though. -- 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