Re: [patch] add scsi changer driver
On Sun, Mar 06, 2005 at 07:55:25PM +0200, James Bottomley wrote: Looking through this, the only things I really noticed that need work are: ch_do_scsi(): It looks like this has an effective reimplementation of scsi_wait_req. We're trying to deprecate the usage of scsi_do_req so we can make it private eventually. What's the reason you can't use scsi_wait_req? Probably historical reasons, I havn't tracked the scsi layer changes for quite some time, so this might simply be a 2.6 cleanup I've missed because of that. Will check ... ch_ioctl() (and the compat): since this is a new driver, can't this all be done via sysfs? That way, the user would be able to manipulate it from the command line, and we'd no longer need any of the 32-64 compat glue. Well, it isn't new, it already exists for many years, just not living in mainline (which I finally want to change now ...). Gerd -- #define printk(args...) fprintf(stderr, ## args) - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [ANNOUNCE 3/6] Open-iSCSI High-Performance Initiator for Linux
On Monday 07 March 2005 09:15, Alex Aizman wrote: drivers/scsi/Kconfig changes. --- linux-2.6.11.orig/drivers/scsi/Kconfig +++ linux-2.6.11.dima/drivers/scsi/Kconfig +config ISCSI_IF + tristate iSCSI Open Transport Interface + depends on SCSI INET + ---help--- + To compile this driver as a module, choose M here: the + module will be called iscsi_if. + + This driver manages multiple iSCSI transports. This module is required + for normal iscsid operation. + + See more detailed information here: + + http://www.open-iscsi.org To compile this driver as a module ... boilerplate usually goes at the end of description. Help text is indented with 2 spaces wrt ---help---: ---help--- This driver manages multiple iSCSI transports. ... Alexey - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [ANNOUNCE 2/6] Open-iSCSI High-Performance Initiator for Linux
On Monday 07 March 2005 09:12, Alex Aizman wrote: Common header files: - iscsi_ifev.h (user/kernel events). - iscsi_if.h (iSCSI open interface over netlink); - iscsi_proto.h (RFC3720 #defines and types); --- linux-2.6.11.orig/include/scsi/iscsi_if.h +++ linux-2.6.11.dima/include/scsi/iscsi_if.h +/** + * struct iscsi_transport - down calls + * + * @name: transport name + * @caps: iSCSI Data-Path capabilities + * @create_snx: create new iSCSI session object + * @destroy_snx: destroy existing iSCSI session object + * @create_cnx: create new iSCSI connection + * @bind_cnx: associate this connection with existing iSCSI session and + *specified transport descriptor + * @destroy_cnx: destroy inactive iSCSI connection + * @set_param: set iSCSI Data-Path operational parameter + * @start_cnx: set connection to be operational + * @stop_cnx: suspend connection + * @send_pdu: send iSCSI PDU, Login, Logout, NOP-Out, Reject, Text. + * + * API provided by generic iSCSI Data Path module + */ +struct iscsi_transport { + char*name; + unsigned intcaps; + unsigned intmax_cnx; + iscsi_snx_h (*create_session) (iscsi_snx_h cp_snx, + uint32_t initial_cmdsn, uint32_t *sid); + void (*destroy_session) (iscsi_snx_h dp_snx); + iscsi_cnx_h (*create_cnx) (iscsi_snx_h dp_snx, iscsi_cnx_h cp_cnx, + uint32_t cid); + int (*bind_cnx) (iscsi_snx_h dp_snx, iscsi_cnx_h dp_cnx, + uint32_t transport_fd, int is_leading); + int (*start_cnx) (iscsi_cnx_h dp_cnx); + void (*stop_cnx) (iscsi_cnx_h dp_cnx); + void (*destroy_cnx) (iscsi_cnx_h dp_cnx); + int (*set_param) (iscsi_cnx_h dp_cnx, iscsi_param_e param, + uint32_t value); + int (*send_pdu) (iscsi_cnx_h dp_cnx, struct iscsi_hdr *hdr, + char *data, uint32_t data_size); +}; create_snx in comment but not in structure destroy_snx in comment but not in structure destroy_session in structure but not in comment create_session in structure but not in comment max_cnx in structure but not in comment Alexey - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch 10/11] drivers/scsi/: Use the DMA_{64,32}BIT_MASK constants
On Mon, Mar 07, 2005 at 05:14:16AM -0500, Jes Sorensen wrote: domen == domen [EMAIL PROTECTED] writes: domen Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when domen calling pci_set_dma_mask() or pci_set_consistent_dma_mask() See domen http://marc.theaimsgroup.com/?t=10800199301r=1w=2 for domen details Why? It's ugly and really serves no purpose except for obfuscation. We've had drivers with typos. Missing one f suddenly causes all your memory to come from ZONE_DMA. Having an extra f causes your driver to work ... most of the time on machines with 4GB ram. Sure, your driver doesn't, but when looking over a lot of drivers, it's easier if everyone's using the same macros. -- Next the statesmen will invent cheap lies, putting the blame upon the nation that is attacked, and every man will be glad of those conscience-soothing falsities, and will diligently study them, and refuse to examine any refutations of them; and thus he will by and by convince himself that the war is just, and will thank God for the better sleep he enjoys after this process of grotesque self-deception. -- Mark Twain - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch 10/11] drivers/scsi/: Use the DMA_{64,32}BIT_MASK constants
Matthew == Matthew Wilcox [EMAIL PROTECTED] writes: Matthew On Mon, Mar 07, 2005 at 05:14:16AM -0500, Jes Sorensen wrote: domen == domen [EMAIL PROTECTED] writes: domen Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when domen calling pci_set_dma_mask() or pci_set_consistent_dma_mask() See domen http://marc.theaimsgroup.com/?t=10800199301r=1w=2 for domen details It's ugly and really serves no purpose except for obfuscation. Matthew We've had drivers with typos. Missing one f suddenly causes Matthew all your memory to come from ZONE_DMA. Having an extra f Matthew causes your driver to work ... most of the time on machines Matthew with 4GB ram. Sure, your driver doesn't, but when looking Matthew over a lot of drivers, it's easier if everyone's using the Matthew same macros. If these were the only two masks ever used I'd agree with you. However there's several other in use and more will probably be added, so we're going to end up with drivers sometimes using constants and other times hex values causing an even bigger mess ;-( Cheers, Jes - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
FW: [patch 1/1] block/cciss: replace schedule_timeout() with msleep()
-Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Sent: Saturday, March 05, 2005 4:45 PM To: Miller, Mike (OS Dev) Cc: ISS StorageDev; [EMAIL PROTECTED]; [EMAIL PROTECTED] Subject: [patch 1/1] block/cciss: replace schedule_timeout() with msleep() I used msleep(10) here under the presumption that the schedule_timeout(1) was written assuming that HZ=100 (as it used to be), which is equivalent to 10 milliseconds. If the desire is actually for 1 ms or the minimal sleep interval, then the patch can be changed appropriately. A similar assumption as to the constant delay value was made in the other replacement, which can also be appropriately adjusted. Change the delay logic in pollcomplete() to use msleep() and time_before(). Instead of assuming schedule_timeout() will sleep exactly as requested, use msleep(10) to guarantee minimally 10 millisecond increments and time_before() to guarantee stopping the loop as close to 20 seconds as possible. Also changes another occurrence of schedule_timeout() to msleep(). TASK_INTERRUPTIBLE is used in this case, but signals are not handled. Signed-off-by: Nishanth Aravamudan [EMAIL PROTECTED] Acked-by: Mike Miller [EMAIL PROTECTED] Signed-off-by: Domen Puncer [EMAIL PROTECTED] Please consider the following patch for inclusion. Thanks, mikem --- kj-domen/drivers/block/cciss.c | 17 +++-- 1 files changed, 7 insertions(+), 10 deletions(-) diff -puN drivers/block/cciss.c~msleep-drivers_block_cciss drivers/block/cciss.c --- kj/drivers/block/cciss.c~msleep-drivers_block_cciss 2005-03-05 16:10:44.0 +0100 +++ kj-domen/drivers/block/cciss.c 2005-03-05 16:10:44.0 +0100 @@ -1702,17 +1702,15 @@ static int cciss_revalidate(struct gendi static unsigned long pollcomplete(int ctlr) { unsigned long done; - int i; + unsigned long end_jiffies = jiffies + 20 * HZ; /* Wait (up to 20 seconds) for a command to complete */ - - for (i = 20 * HZ; i 0; i--) { + while (time_before(jiffies,end_jiffies)) { done = hba[ctlr]-access.command_completed(hba[ctlr]); - if (done == FIFO_EMPTY) { - set_current_state(TASK_UNINTERRUPTIBLE); - schedule_timeout(1); - } else - return (done); + if (done == FIFO_EMPTY) + msleep(10); + else + return done; } /* Invalid address to tell caller we ran out of time */ return 1; @@ -2486,8 +2484,7 @@ static int cciss_pci_init(ctlr_info_t *c if (!(readl(c-vaddr + SA5_DOORBELL) CFGTBL_ChangeReq)) break; /* delay and try again */ - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout(10); + msleep(100); } #ifdef CCISS_DEBUG _ - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [patch 02/11] scsi/st: replace schedule_timeout() with msleep_interruptible()
On Sun, 6 Mar 2005 [EMAIL PROTECTED] wrote: Use msleep_interruptible() instead of schedule_timeout() to guarantee the task delays as expected. This patch is already in the scsi-misc-2.6 tree merged into one of the st patches. Thanks for the reminder and the patch. -- Kai - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH] m68k link error and NCR5380_exit()
On Tue, Mar 08, 2005 at 12:45:28AM +1100, Finn Thain wrote: Having qla1280.c as a guide will help, thanks. My next question is, what does a NuBus architecture do in place of pci_(un)register_driver? Eventually, you should use macio_(un)register_driver. However, I don't have the support quite finished for mac68k. If I get some time to work on it, I have most of the code written. It's close enough that it should work on nubus-pmac, and I passed some preliminary versions of the code off to them. My main reservation about embarking on this is that I don't think mac_scsi ever actually worked under 2.6 (or 2.5?) kernels. I'm not competent enough to submit a good, untested patch for a broken driver. Maybe the best thing is to make it work before worrying about style. At least then I can test my work. I certainly never got it to work, but I only tried on my IIfx which doesn't have exactly the same version of the chip anyway. To that end, I've included a boot log below. Maybe someone familiar with the NCR5380 driver can make some sense of the failure? Looks to me like the interrupt came in after the driver already decided to give up for some reason. I had a big problem with that while I was trying to fix the driver to use DMA on the IIfx. I never did get it to give me the interrupt for dma completion before the scsi mid layer timed out. Brad Boyer [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [patch 10/11] drivers/scsi/: Use the DMA_{64,32}BIT_MASK cons tants
On Sunday, March 06, 2005 5:27 PM, Domen wrote Use the DMA_{64,32}BIT_MASK constants from dma-mapping.h when calling pci_set_dma_mask() or pci_set_consistent_dma_mask() Megaraid driver has this change and patch for this will be submitted as committed. Thanks, Seokmann LSI Logic Corporation - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
RE: [patch 05/11] drivers/scsi/*: convert to pci_register_driver
On Sunday, March 06, 2005 5:27 PM, Domen wrote: diff -puN drivers/scsi/megaraid.c~pci_register_driver-drivers_scsi drivers/scsi/megaraid.c --- kj/drivers/scsi/megaraid.c~pci_register_driver-drivers_scsi 2005-03- 05 16:12:48.0 +0100 +++ kj-domen/drivers/scsi/megaraid.c 2005-03-05 16:12:49.0 +0100 @@ -5079,7 +5079,7 @@ static int __init megaraid_init(void) megaraid: failed to create megaraid root\n); } #endif - error = pci_module_init(megaraid_pci_driver); + error = pci_register_driver(megaraid_pci_driver); if (error) { #ifdef CONFIG_PROC_FS remove_proc_entry(megaraid, proc_root); Thank you for help. The driver will be modified accordingly. Seokmann LSI Logic Corporation kernel.org/majordomo-info.html - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[PATCH] SCSI tape fixes: sense descriptor init, bsf-weof, blkno, debugging
The patch at the end of this message applies to 2.6.11 + st descriptor sense patch + st auto eof patch (i.e., st patches currently in scsi-misc-2.6). The patch fixes the following problems: - the sense descriptor is cleared before filling - BSF and BSFM are added to the commands causing automatic writing of filemark if the previous operation was write (tar expects this) - the block number is set to unknown (-1) if spacing forward ends at BLANK CHECK - debugging printout of spacing counts fixed to work also with 64-bit systems Signed-off-by: Kai Makisara [EMAIL PROTECTED] --- linux-2.6.11-k1/drivers/scsi/st.c 2005-03-07 19:38:45.0 +0200 +++ linux-2.6.11-k2/drivers/scsi/st.c 2005-03-07 21:59:24.0 +0200 @@ -17,7 +17,7 @@ Last modified: 18-JAN-1998 Richard Gooch [EMAIL PROTECTED] Devfs support */ -static char *verstr = 20050213; +static char *verstr = 20050307; #include linux/module.h @@ -268,6 +268,7 @@ static void st_analyze_sense(struct scsi const u8 *ucp; const u8 *sense = SRpnt-sr_sense_buffer; + memset(s, 0, sizeof(struct st_cmdstatus)); s-have_sense = scsi_request_normalize_sense(SRpnt, s-sense_hdr); if (s-have_sense) { @@ -287,8 +288,6 @@ static void st_analyze_sense(struct scsi ucp = scsi_sense_desc_find(sense, SCSI_SENSE_BUFFERSIZE, 4); s-flags = ucp ? (ucp[3] 0xe0) : 0; break; - default: - s-flags = 0; } } } @@ -306,7 +305,7 @@ static int st_chk_result(struct scsi_tap if (!result) return 0; - cmdstatp = STp-buffer-cmdstat; + cmdstatp = STp-buffer-cmdstat; st_analyze_sense(STp-buffer-last_SRpnt, cmdstatp); if (cmdstatp-have_sense) @@ -2407,6 +2406,22 @@ static int do_load_unload(struct scsi_ta return retval; } +#if DEBUG +#define ST_DEB_FORWARD 0 +#define ST_DEB_BACKWARD 1 +static void deb_space_print(char *name, int direction, char *units, unsigned char *cmd) +{ + s32 sc; + + sc = cmd[2] 0x80 ? 0xff00 : 0; + sc |= (cmd[2] 16) | (cmd[3] 8) | cmd[4]; + if (direction) + sc = -sc; + printk(ST_DEB_MSG %s: Spacing tape %s over %d %s.\n, name, + direction ? backward : forward, sc, units); +} +#endif + /* Internal ioctl function */ static int st_int_ioctl(struct scsi_tape *STp, unsigned int cmd_in, unsigned long arg) @@ -2445,8 +2460,7 @@ static int st_int_ioctl(struct scsi_tape cmd[2] = (arg 16); cmd[3] = (arg 8); cmd[4] = arg; -DEBC(printk(ST_DEB_MSG %s: Spacing tape forward over %d filemarks.\n, - name, cmd[2] * 65536 + cmd[3] * 256 + cmd[4])); +DEBC(deb_space_print(name, ST_DEB_FORWARD, filemarks, cmd);) if (fileno = 0) fileno += arg; blkno = 0; @@ -2461,14 +2475,7 @@ static int st_int_ioctl(struct scsi_tape cmd[2] = (ltmp 16); cmd[3] = (ltmp 8); cmd[4] = ltmp; -DEBC( - if (cmd[2] 0x80) - ltmp = 0xff00; - ltmp = ltmp | (cmd[2] 16) | (cmd[3] 8) | cmd[4]; - printk(ST_DEB_MSG -%s: Spacing tape backward over %ld filemarks.\n, -name, (-ltmp)); - ) +DEBC(deb_space_print(name, ST_DEB_BACKWARD, filemarks, cmd);) if (fileno = 0) fileno -= arg; blkno = (-1); /* We can't know the block number */ @@ -2480,8 +2487,7 @@ static int st_int_ioctl(struct scsi_tape cmd[2] = (arg 16); cmd[3] = (arg 8); cmd[4] = arg; -DEBC(printk(ST_DEB_MSG %s: Spacing tape forward %d blocks.\n, name, - cmd[2] * 65536 + cmd[3] * 256 + cmd[4])); +DEBC(deb_space_print(name, ST_DEB_FORWARD, blocks, cmd);) if (blkno = 0) blkno += arg; at_sm = (arg == 0); @@ -2493,13 +2499,7 @@ static int st_int_ioctl(struct scsi_tape cmd[2] = (ltmp 16); cmd[3] = (ltmp 8); cmd[4] = ltmp; -DEBC( - if (cmd[2] 0x80) - ltmp = 0xff00; - ltmp = ltmp | (cmd[2] 16) | (cmd[3] 8) | cmd[4]; - printk(ST_DEB_MSG -%s: Spacing tape backward %ld blocks.\n, name, (-ltmp)); - ) +DEBC(deb_space_print(name, ST_DEB_BACKWARD, blocks, cmd);) if (blkno = 0) blkno -= arg; at_sm = (arg == 0); @@ -2510,8 +2510,7 @@ static int st_int_ioctl(struct
Re: [PATCH] m68k link error and NCR5380_exit()
On Mon, Mar 07, 2005 at 09:53:22AM -0800, Brad Boyer wrote: On Tue, Mar 08, 2005 at 12:45:28AM +1100, Finn Thain wrote: My main reservation about embarking on this is that I don't think mac_scsi ever actually worked under 2.6 (or 2.5?) kernels. I'm not competent enough to submit a good, untested patch for a broken driver. Maybe the best thing is to make it work before worrying about style. At least then I can test my work. I certainly never got it to work, but I only tried on my IIfx which doesn't have exactly the same version of the chip anyway. To that end, I've included a boot log below. Maybe someone familiar with the NCR5380 driver can make some sense of the failure? Looks to me like the interrupt came in after the driver already decided to give up for some reason. I had a big problem with that while I was trying to fix the driver to use DMA on the IIfx. I never did get it to give me the interrupt for dma completion before the scsi mid layer timed out. It broke in 2.6.9 for us Linux/VAX guys. Try the NCR5380_set_timer() change from this patch: http://www.mail-archive.com/linux-scsi@vger.kernel.org/msg01499.html Later, Kenn - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
[ANNOUNCE][PATCH 2.6.11 1/3] megaraid_sas: Announcing new module for LSI Logic's SAS based MegaRAID controllers
Hello All, We are announcing a driver for LSI Logic's new SAS based MegaRAID controllers. I am submitting the inlined patch in three parts. Please review the patches. Thank you, Sreenivas Bagalkote LSI Logic Corporation Patch 1 of 3: Signed-off-by: Sreenivas Bagalkote [EMAIL PROTECTED] diff -Naur linux-2.6.11-orig/Documentation/scsi/ChangeLog.megaraid_sas linux-2.6.11/Documentation/scsi/ChangeLog.megaraid_sas --- linux-2.6.11-orig/Documentation/scsi/ChangeLog.megaraid_sas 1969-12-31 19:00:00.0 -0500 +++ linux-2.6.11/Documentation/scsi/ChangeLog.megaraid_sas 2005-03-05 21:18:08.745716776 -0500 @@ -0,0 +1,9 @@ +Release Date : Fri Mar 4 21:06:57 EST 2005 +Released by: Sreenivas Bagalkote ([EMAIL PROTECTED]) +Current Version: 00.00.01.00 +Older Version : NA + +1. Initial announcement to community - Module for LSI Logic's SAS based + RAID controllers. + + diff -Naur linux-2.6.11-orig/drivers/scsi/Kconfig linux-2.6.11/drivers/scsi/Kconfig --- linux-2.6.11-orig/drivers/scsi/Kconfig 2005-03-02 02:38:25.0 -0500 +++ linux-2.6.11/drivers/scsi/Kconfig 2005-03-05 21:18:56.538451176 -0500 @@ -404,6 +404,7 @@ module will be called in2000. source drivers/scsi/megaraid/Kconfig.megaraid +source drivers/scsi/megaraid/Kconfig.megaraid_sas config SCSI_SATA bool Serial ATA (SATA) support diff -Naur linux-2.6.11-orig/drivers/scsi/Makefile linux-2.6.11/drivers/scsi/Makefile --- linux-2.6.11-orig/drivers/scsi/Makefile 2005-03-02 02:38:19.0 -0500 +++ linux-2.6.11/drivers/scsi/Makefile 2005-03-05 21:19:14.806673984 -0500 @@ -97,6 +97,7 @@ obj-$(CONFIG_SCSI_DC390T) += tmscsim.o obj-$(CONFIG_MEGARAID_LEGACY) += megaraid.o obj-$(CONFIG_MEGARAID_NEWGEN) += megaraid/ +obj-$(CONFIG_MEGARAID_SAS) += megaraid/ obj-$(CONFIG_SCSI_ACARD) += atp870u.o obj-$(CONFIG_SCSI_SUNESP) += esp.o obj-$(CONFIG_SCSI_GDTH)+= gdth.o diff -Naur linux-2.6.11-orig/drivers/scsi/megaraid/Kconfig.megaraid_sas linux-2.6.11/drivers/scsi/megaraid/Kconfig.megaraid_sas --- linux-2.6.11-orig/drivers/scsi/megaraid/Kconfig.megaraid_sas 1969-12-31 19:00:00.0 -0500 +++ linux-2.6.11/drivers/scsi/megaraid/Kconfig.megaraid_sas 2005-03-05 21:27:37.628233488 -0500 @@ -0,0 +1,9 @@ +config MEGARAID_SAS + tristate LSI Logic MegaRAID SAS RAID module (New Driver) + depends on PCI SCSI + help + Module for LSI Logic's SAS based RAID controllers. + To compile this driver as a module, choose 'm' here. + Module will be called megaraid_sas + + diff -Naur linux-2.6.11-orig/drivers/scsi/megaraid/Makefile linux-2.6.11/drivers/scsi/megaraid/Makefile --- linux-2.6.11-orig/drivers/scsi/megaraid/Makefile2005-03-02 02:38:26.0 -0500 +++ linux-2.6.11/drivers/scsi/megaraid/Makefile 2005-03-05 21:27:40.0 -0500 @@ -1,2 +1,3 @@ obj-$(CONFIG_MEGARAID_MM) += megaraid_mm.o obj-$(CONFIG_MEGARAID_MAILBOX) += megaraid_mbox.o +obj-$(CONFIG_MEGARAID_SAS) += megaraid_sas.o - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [RFC] adding per scsi-host workqueues for defered processing
On Sat, 05 Mar 2005, [EMAIL PROTECTED] wrote: In thinking this through a little further - if the workq is just for the transport, the transport ought to simply create and use the workq. There would be no need to modify the host structure. If we're trying to avoid the potential for several workq's on a per-host basis (one by the transport, another by the LLDD, another for ?) - the idea of one in the host is worth while. Yes, that was the general idea -- reduce the number of worker-threads contending for the same shost resource. In also thinking a bit more about this subject, I wonder if there are truly many other (useful) purposes for a generic 'deferred' work_q at the shost level, other than for scanning. There were some background tasks I shelved until the remote-ports stuff settled down which I thought could use the deferred processing thread: * Initiate LIP -- several customers have asked for this ability as several topological configurations isolate disruptive FC events. * Initiate LLDD rescan (i.e. ports (fibre channel), devices (iSCSI), etc.) I had originally envisioned these functions residing in the transport. However, it should always be allocated and available. No create flag should be needed. Not to sure about that -- a large percentage of drivers would not (currently) benefit from having a deferred work_q created for each shost instance it registered. -- AV - To unsubscribe from this list: send the line unsubscribe linux-scsi in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html