From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751093AbVHUUnq (ORCPT ); Sun, 21 Aug 2005 16:43:46 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751096AbVHUUnq (ORCPT ); Sun, 21 Aug 2005 16:43:46 -0400 Received: from zeus1.kernel.org ([204.152.191.4]:63685 "EHLO zeus1.kernel.org") by vger.kernel.org with ESMTP id S1751093AbVHUUn1 (ORCPT ); Sun, 21 Aug 2005 16:43:27 -0400 Message-ID: <20050821204020.80730.qmail@web51612.mail.yahoo.com> X-RocketYMMF: ltuikov Date: Sun, 21 Aug 2005 13:40:20 -0700 (PDT) From: Luben Tuikov Reply-To: luben_tuikov@adaptec.com Subject: Re: [PATCH 2.6.12.5 1/2] lib: allow idr to be used in irq context To: James Bottomley , luben_tuikov@adaptec.com Cc: Andrew Morton , Jim Houston , Linux Kernel , SCSI Mailing List , Dave Jones , Jeff Garzik MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7BIT Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org --- Luben Tuikov wrote: > --- James Bottomley wrote: > > However, there is an infrastructure in the block layer called the > > generic tag infrastructure which was designed precisely for this purpose > > and which is designed to operate in IRQ context. > > James, I'm sure you're well aware that, > - a request_queue is LU-bound, > - a SCSI _transport_ (*ANY*) can _only_ address domain devices, but > _not_ LUs. LUs are *not* seen on the domain. Another thing very important to mention is that the layering infrastructure should _not_ be broken, whereby LLDD are required to use block layer tags. First, there may not be one to one correspondence accross layers. Second, a tag on a layer identifies that particular _layer_ object. It should not be used across layers or across several layers: Block->Scsi Core->LLDD. Third, although SCSI task tags are a SAM concept, they are defined by the protocol in use and generated and assigned by the Initiator port. The block layer is _not_ an Initiator port. SCSI Core is also _not_ an Initiator port. SCSI Core should be impervious to task tags, i.e. to the Q in I_T_L_Q nexus. The Q is never visible to it. Luben