Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758501Ab1EZUOy (ORCPT ); Thu, 26 May 2011 16:14:54 -0400 Received: from bedivere.hansenpartnership.com ([66.63.167.143]:48888 "EHLO bedivere.hansenpartnership.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758281Ab1EZUOp (ORCPT ); Thu, 26 May 2011 16:14:45 -0400 Subject: Re: [PATCH-v5 07/13] iscsi-target: Add iSCSI Login Negotiation + Parameter logic From: James Bottomley To: "Nicholas A. Bellinger" Cc: FUJITA Tomonori , linux-kernel@vger.kernel.org, linux-scsi@vger.kernel.org, hch@lst.de, hare@suse.de, agrover@redhat.com, michaelc@cs.wisc.edu, bharrosh@panasas.com, akpm@linux-foundation.org, martin.svec@zoner.cz In-Reply-To: <1306439399.19113.22.camel@haakon2.linux-iscsi.org> References: <1305862678-30150-8-git-send-email-nab@linux-iscsi.org> <1306428415.4048.22.camel@mulgrave.site> <1306436832.5807.127.camel@haakon2.linux-iscsi.org> <20110527042934U.fujita.tomonori@lab.ntt.co.jp> <1306439399.19113.22.camel@haakon2.linux-iscsi.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 26 May 2011 15:14:40 -0500 Message-ID: <1306440882.4048.47.camel@mulgrave.site> Mime-Version: 1.0 X-Mailer: Evolution 2.32.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4187 Lines: 89 On Thu, 2011-05-26 at 12:49 -0700, Nicholas A. Bellinger wrote: > On Fri, 2011-05-27 at 04:29 +0900, FUJITA Tomonori wrote: > > On Thu, 26 May 2011 12:07:12 -0700 > > "Nicholas A. Bellinger" wrote: > > > > > On Thu, 2011-05-26 at 11:46 -0500, James Bottomley wrote: > > > > On Thu, 2011-05-19 at 20:37 -0700, Nicholas A. Bellinger wrote: > > > > > From: Nicholas Bellinger > > > > > > > > > > This patch adds the princple RFC-3720 compatiable iSCSI Login > > > > > phase negotiation for iscsi_target_mod. This also includes the > > > > > target RX/TX thread queue logic which is called directly from iSCSI > > > > > login associated code. > > > > > > > > > > Signed-off-by: Nicholas A. Bellinger > > > > > > > > I thought the upshot of the thread with Tomo was that we wouldn't be > > > > doing all of this in-kernel. Where's the userspace upcall for this? > > > > > > > > > > The technical reasons why I want to avoid this have not changed for the > > > 1) authentication disabled and 2) 'required-to-implement' CHAP > > > authentication cases. These where discussed at the bottom of the thread > > > from March with Tomo-san here: > > > > > > http://marc.info/?l=linux-scsi&m=130108812405710&w=2 > > > > > > As mentioned, I am open to adding a userspace upcall for authentication > > > payloads post merge in order to support the 'optional-to-implement' > > > authentication cases. However, pushing the above two cases out to > > > > We don't need such, passing payloads from kernel to user space. You do the pre > > SCSI nexus operations in user space then kernel takes care of established > > nexuses. > > > > I understand what you have in mind, but I still think this the wrong > approach for the default cases. For an in-kernel iscsi-target capable > of changing any aspect of the control plane on the fly, this type of > split is problematic to support and maintain and does not actually buy > us anything for the default cases. Handling the default case separately from the less usual ones is actually the bigger recipe for disaster because the less used path becomes less well tested. I don't really see how a kernel/user split is problematic. After all, it's what we use for a lot of things (udev being the most notable). > > > userspace really does add unnecessary complexity and limitiations that I > > > want to avoid for the default iSCSI login cases. > > > > > > It also would break existing rtslib/rtsadmin-v2 userspace code, and > > > > I don't think breaking the existing code matters. > > Sure it does. It means the difference between if the > 'required-to-implement' cases can be exposed via configfs to a native > python object library and shell, or if we need to have an external > daemon + configuration that has to be kept in sync between the two, > parse external configuration files, et al. 1. We can always handle this in an ABI shim in userspace 2. The current *kernel* code doesn't exist, therefore it has no users. Maintaining compatibility with the out of tree code is fine, but not at the expense of less optimal design decisions. > With the current design, the NodeACLs + authentication are available > directly as part of the rtslib python object library, and python code > including rtslib can reference all aspects of the initiator > configuration directly. Breaking this up to an external daemon and > configuration is a step backwards for the default cases from the > perspective of rtslib, and making it work with an external > configuration / daemon for the NodeACLs + default authentication case is > an hack compared to how iscsi-target functionality is exposed to > application level progammers via rtslib today. I don't buy this. It doesn't have to be a daemon (udev isn't). And udev certainly isn't a hack compared to what went before (which was fully in-kernel). James -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/