public inbox for linux-scsi@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT] isci: towards the v3.0 merge candidate
@ 2011-06-07  1:06 Dan Williams
  2011-06-07  5:20 ` Stephen Rothwell
  2011-06-07  8:53 ` Christoph Hellwig
  0 siblings, 2 replies; 4+ messages in thread
From: Dan Williams @ 2011-06-07  1:06 UTC (permalink / raw)
  To: linux-scsi
  Cc: James Bottomley, Christoph Hellwig, Jeff Garzik, Dave Jiang,
	Jeff Skirvin, Ed Nadolski, Jacek Danecki, sfr, David Milburn,
	hare

[ copying sfr to get his opinion on having exposure of this tree in
-next for a few weeks before  it hits James' tree.  isci.git#master
never rebases so I don't expect conflicts once scsi-misc.git starts
carrying the same ]

The following changes since commit b0733ad3d6efab9659bd77b405587b36d03fe276:

  isci: add some type safety to the state machine interface (2011-05-12 09:46:14 -0700)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/djbw/isci.git master


This branch:
* retrieves oem parameters via legacy option-rom or efi mechanisms
* supports C0 silicon
* completes the priority cleanups that were identified for .39

The libsas-pending, x86-pending, and subsequently upstream-pending
branches are now closed with the inclusion of v3.0-rc2 into 'master'.

Conspicuously missing is significant progress toward the request to
merge the isci_ and scic_sds_ level of data structures.  This is mainly
due to taking a break on the cleanups to knock down bugs and missing
features, but it also comes back to biting the bullet on more rename
thrash.  Patches like "isci: remove 'min memory' infrastructure" give me
pause because they indicate we still have work to do on clarifying the
data structures and shrinking the number of members (the meat / hard
work of the cleanup).  A rename is icing (still necessary) at this
point, but working on closing out bugs before going down that road.

Questions / suggestions on how to proceed on the cleanup versus bug
fixing for the 3.0 merge are welcome.

--
Dan for this isci driver team

Adam Gruchala (1):
      isci: Added support for C0 to SCU Driver

Dan Williams (3):
      Revert "isci: Add missing PCI IDs"
      isci: remove 'min memory' infrastructure
      isci: use pci_map_biosrom

Dave Jiang (3):
      isci: removing the kmalloc in smp request construct
      isci: Retrieve the EFI variable for OEM parameter
      isci: Removing unused variables compiler warnings

Edmund Nadolski (10):
      isci: replace isci_timer list with proper embedded timers
      isci: convert port config agent timer to sci_timer
      isci: convert phy sata_timeout_timer to sci_timer
      isci: convert power control timer to sci_timer
      isci: convert scic_timeout_timer to sci_timer
      isci: convert phy_startup_timer to sci_timer
      isci: Remove tmf timeout_timer
      isci: remove isci_timer interface
      isci: state machine cleanup
      isci: additional state machine cleanup

 drivers/scsi/isci/Makefile                    |    3 +-
 drivers/scsi/isci/firmware/create_fw.h        |    8 +-
 drivers/scsi/isci/host.c                      |  815 +++++++++++--------------
 drivers/scsi/isci/host.h                      |   81 +--
 drivers/scsi/isci/init.c                      |   36 +-
 drivers/scsi/isci/isci.h                      |  142 ++---
 drivers/scsi/isci/phy.c                       |  311 ++++------
 drivers/scsi/isci/phy.h                       |   44 +-
 drivers/scsi/isci/port.c                      |  226 ++++----
 drivers/scsi/isci/port.h                      |   24 +-
 drivers/scsi/isci/port_config.c               |  122 ++---
 drivers/scsi/isci/probe_roms.c                |   96 ++--
 drivers/scsi/isci/probe_roms.h                |    2 +-
 drivers/scsi/isci/remote_device.c             |  349 +++++------
 drivers/scsi/isci/remote_device.h             |   34 +-
 drivers/scsi/isci/remote_node_context.c       |  156 +++---
 drivers/scsi/isci/remote_node_context.h       |   20 +-
 drivers/scsi/isci/request.c                   |  613 ++++++++++---------
 drivers/scsi/isci/request.h                   |  359 ++++++------
 drivers/scsi/isci/state_machine.c             |  162 -----
 drivers/scsi/isci/state_machine.h             |  124 ----
 drivers/scsi/isci/task.c                      |  109 +---
 drivers/scsi/isci/task.h                      |    2 -
 drivers/scsi/isci/timers.c                    |  245 --------
 drivers/scsi/isci/timers.h                    |   88 ---
 drivers/scsi/isci/unsolicited_frame_control.c |  186 ++-----
 drivers/scsi/isci/unsolicited_frame_control.h |   20 +-
 27 files changed, 1648 insertions(+), 2729 deletions(-)
 delete mode 100644 drivers/scsi/isci/state_machine.c
 delete mode 100644 drivers/scsi/isci/state_machine.h
 delete mode 100644 drivers/scsi/isci/timers.c
 delete mode 100644 drivers/scsi/isci/timers.h

commit 609f1a327d471e692f2286ce6569ba2370291705
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Thu May 19 16:44:53 2011 -0700

    Revert "isci: Add missing PCI IDs"
    
    This reverts commit c2af8ba9.  These ids are reserved for 3rd party
    vendors to deploy their own drivers.
    
    Acked-by: Havard Skinnemoen <hskinnemoen@google.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit f7030d5ac2f9b2fc3e235622c311a38b4aa075ba
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu May 19 11:59:10 2011 +0000

    isci: replace isci_timer list with proper embedded timers
    
    Rather than preallocating a list of timers and doling them out at runtime,
    embed a struct timerlist in each object that needs one.  A struct sci_timer
    interface is introduced to manage the timer cancellation semantics which
    currently need to guarantee the timer is cancelled while holding
    spin_lock(ihost->scic_lock).  Since the timeout functions also need to acquire
    the lock it currently prevents the driver from using del_timer_sync() for
    runtime cancellations.
    
    del_timer_sync() is used however before the objects go out of scope.
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 66a9ae8dfee11f8b8802845e94412a8266ea3b51
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu May 19 20:00:51 2011 -0700

    isci: convert port config agent timer to sci_timer
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    [squashed collateral cleanups]
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 2edbb65c1c91161fb02592d870b6fcdf68cd6621
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu May 19 11:59:36 2011 +0000

    isci: convert phy sata_timeout_timer to sci_timer
    
    Convert the sata_timeout_timer in the scic_sds_phy struct to
    use a struct sci_timer
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 940a12673794f35c3aa949b33885a423baa8385b
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu May 19 20:17:47 2011 -0700

    isci: convert power control timer to sci_timer
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 1bd70781eb38910416706228c5053a66bfc8c1c5
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu May 19 11:59:56 2011 +0000

    isci: convert scic_timeout_timer to sci_timer
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit a767e30e313744d1a9586e8392762359512ec1d8
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu May 19 20:26:02 2011 -0700

    isci: convert phy_startup_timer to sci_timer
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 18dda9d281b8370aa19a8f566a16d3bc079f9352
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu May 19 12:00:15 2011 +0000

    isci: Remove tmf timeout_timer
    
    Replace the timeout_timer in the isci_tmf with a call to
    wait_for_completion_timeout
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit bde8b6f751a3d1e63f75118b063a39fc839b7159
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu May 19 12:00:22 2011 +0000

    isci: remove isci_timer interface
    
    Delete code which is no longer used.
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit a3d2722ed9ce83125c6b9605f9abc2f2d5fddeae
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Wed May 25 02:21:57 2011 +0000

    isci: removing the kmalloc in smp request construct
    
    It doesn't look like there is any reason to do a kmalloc. We can do the
    byte swap in place and avoid the allocation. This allow us to remove
    a kmalloc and a memcpy.
    
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 048d97912579b4c8333806acaf72d1571142faa4
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Wed May 25 05:04:35 2011 +0000

    isci: Retrieve the EFI variable for OEM parameter
    
    We can call the EFI get_variable service routine directly to retrieve
    the EFI variable that holds the OEM parameters table.
    
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 0a6b9701c30ff0713187f55aa567f1212123763c
Author: Dave Jiang <dave.jiang@intel.com>
Date:   Wed Jun 1 09:03:08 2011 +0000

    isci: Removing unused variables compiler warnings
    
    Newer gcc's are better at identifying "set, but not used" variables.
    
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit c6f6b956b546b69bef92daf028c765d6cfee737d
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu Jun 2 00:10:43 2011 +0000

    isci: state machine cleanup
    
    This cleans up several areas of the state machine mechanism:
    
     o Rename sci_base_state_machine_change_state to sci_change_state
     o Remove sci_base_state_machine_get_state function
     o Rename 'state_machine' struct member to 'sm' in client structs
     o Shorten the name of request states
     o Shorten state machine state names as follows:
            SCI_BASE_CONTROLLER_STATE_xxx to SCIC_xxx
            SCI_BASE_PHY_STATE_xxx to SCI_PHY_xxx
            SCIC_SDS_PHY_STARTING_SUBSTATE_xxx to SCI_PHY_SUB_xxx
            SCI_BASE_PORT_STATE_xxx to SCI_PORT_xxx and
            SCIC_SDS_PORT_READY_SUBSTATE_xxx to SCI_PORT_SUB_xxx
            SCI_BASE_REMOTE_DEVICE_STATE_xxx to SCI_DEV_xxx
            SCIC_SDS_STP_REMOTE_DEVICE_READY_SUBSTATE_xxx to SCI_STP_DEV_xxx
            SCIC_SDS_SMP_REMOTE_DEVICE_READY_SUBSTATE_xxx to SCI_SMP_DEV_xxx
            SCIC_SDS_REMOTE_NODE_CONTEXT_xxx_STATE to SCI_RNC_xxx
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    Signed-off-by: Dave Jiang <dave.jiang@intel.com>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 291a959416dc1c6160805838b5474cdd3d3ae817
Author: Edmund Nadolski <edmund.nadolski@intel.com>
Date:   Thu Jun 2 00:10:50 2011 +0000

    isci: additional state machine cleanup
    
    Additional state machine cleanups:
    
     o Remove static functions sci_state_machine_exit_state() and
       sci_state_machine_enter_state()
     o Combines sci_base_state_machine_construct() and
       sci_base_state_machine_start() into a single function,
       sci_init_sm()
     o Remove sci_base_state_machine_stop() which is unused.
     o Kill state_machine.[ch]
    
    Signed-off-by: Edmund Nadolski <edmund.nadolski@intel.com>
    [fixed too large to inline functions]
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit fd8f925cf1740bdd0547ae08ee2f2cd3d5d48d20
Author: Adam Gruchala <adam.gruchala@intel.com>
Date:   Wed Jun 1 22:31:03 2011 +0000

    isci: Added support for C0 to SCU Driver
    
    C0 silicon updates the pci revision id and requires new AFE parameters
    for phy signal integrity.  Support for previous silicon revisions is
    deprecated (it's also broken for the theoretical case of multiple
    controllers at different silicon revisions, all the more reason to get
    it removed as soon as possible)
    
    Signed-off-by: Adam Gruchala <adam.gruchala@intel.com>
    [fixed up deprecated silicon support]
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit bc1c9bae18e900c7cfbdf6f66ff449c632ee6e4b
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Wed Jun 1 16:00:01 2011 -0700

    isci: remove 'min memory' infrastructure
    
    The old 'core' had aspirations of running in severely memory constrained
    environments like bios option-rom, it's not needed for Linux and gets in
    the way of other cleanups (like unifying/reducing the number of structure
    members in scic_sds_controller/isci_host).
    
    This also fixes a theoretical bug in that the driver would blindly override
    the silicon advertised limits for number of ports, task contexts, and remote
    node contexts.
    
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>

commit 24ddeace8923d1da9d9ea839d02afb1482f9c652
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Mon Jun 6 14:23:36 2011 -0700

    isci: use pci_map_biosrom
    
    Now that pci_map_biosrom is upstream we stop working around its absence.
    
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT] isci: towards the v3.0 merge candidate
  2011-06-07  1:06 [GIT] isci: towards the v3.0 merge candidate Dan Williams
@ 2011-06-07  5:20 ` Stephen Rothwell
  2011-06-07  8:53 ` Christoph Hellwig
  1 sibling, 0 replies; 4+ messages in thread
From: Stephen Rothwell @ 2011-06-07  5:20 UTC (permalink / raw)
  To: Dan Williams
  Cc: linux-scsi, James Bottomley, Christoph Hellwig, Jeff Garzik,
	Dave Jiang, Jeff Skirvin, Ed Nadolski, Jacek Danecki,
	David Milburn, hare

[-- Attachment #1: Type: text/plain, Size: 502 bytes --]

On Mon, 06 Jun 2011 18:06:05 -0700 Dan Williams <dan.j.williams@intel.com> wrote:
>
> [ copying sfr to get his opinion on having exposure of this tree in
> -next for a few weeks before  it hits James' tree.  isci.git#master
> never rebases so I don't expect conflicts once scsi-misc.git starts
> carrying the same ]

I am happy with that idea as long as James thinks it is a good one.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT] isci: towards the v3.0 merge candidate
  2011-06-07  1:06 [GIT] isci: towards the v3.0 merge candidate Dan Williams
  2011-06-07  5:20 ` Stephen Rothwell
@ 2011-06-07  8:53 ` Christoph Hellwig
  2011-06-07 16:54   ` Dan Williams
  1 sibling, 1 reply; 4+ messages in thread
From: Christoph Hellwig @ 2011-06-07  8:53 UTC (permalink / raw)
  To: Dan Williams
  Cc: linux-scsi, James Bottomley, Christoph Hellwig, Jeff Garzik,
	Dave Jiang, Jeff Skirvin, Ed Nadolski, Jacek Danecki, sfr,
	David Milburn, hare

On Mon, Jun 06, 2011 at 06:06:05PM -0700, Dan Williams wrote:
> The libsas-pending, x86-pending, and subsequently upstream-pending
> branches are now closed with the inclusion of v3.0-rc2 into 'master'.

Can you generate a tree without the merge commits?

> Conspicuously missing is significant progress toward the request to
> merge the isci_ and scic_sds_ level of data structures.  This is mainly
> due to taking a break on the cleanups to knock down bugs and missing
> features, but it also comes back to biting the bullet on more rename
> thrash.  Patches like "isci: remove 'min memory' infrastructure" give me
> pause because they indicate we still have work to do on clarifying the
> data structures and shrinking the number of members (the meat / hard
> work of the cleanup).  A rename is icing (still necessary) at this
> point, but working on closing out bugs before going down that road.
> 
> Questions / suggestions on how to proceed on the cleanup versus bug
> fixing for the 3.0 merge are welcome.

I think we really need to get the main data structures and the naming sorted
out.  Also the development process really would benefit from more frequent
posting of updates.

> Adam Gruchala (1):
>       isci: Added support for C0 to SCU Driver

Please make the silicon revision per-pdev.  Even if you only happen to
one in any given system now this is plain ugly.

> 
> Dan Williams (3):
>       Revert "isci: Add missing PCI IDs"
>       isci: remove 'min memory' infrastructure
>       isci: use pci_map_biosrom
> 
> Dave Jiang (3):
>       isci: removing the kmalloc in smp request construct
>       isci: Retrieve the EFI variable for OEM parameter
>       isci: Removing unused variables compiler warnings
> 
> Edmund Nadolski (10):
>       isci: replace isci_timer list with proper embedded timers

Please don't add those sci_timer wrappers.  del_timer already makes
sure it is cancelled, it just doesn't wait for the execution of
previous timers, so your additional cancel flag doesn't buy anything.


Btw, what bugfixes have you been looking into?  There's basically none
in this update, and given the time it took to get this one out there's
not a whole lot of things in it at all.

>     Revert "isci: Add missing PCI IDs"
>     
>     This reverts commit c2af8ba9.  These ids are reserved for 3rd party
>     vendors to deploy their own drivers.

This sounds wrong.  It's probably the same crap we had with all kinds of
Intel and other vendor cards where some OEM adds value by providing fake
raid and a driver of it's own.  Care to explain how not supporting them
benefits the user?


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [GIT] isci: towards the v3.0 merge candidate
  2011-06-07  8:53 ` Christoph Hellwig
@ 2011-06-07 16:54   ` Dan Williams
  0 siblings, 0 replies; 4+ messages in thread
From: Dan Williams @ 2011-06-07 16:54 UTC (permalink / raw)
  To: Christoph Hellwig
  Cc: linux-scsi, James Bottomley, Jeff Garzik, Jiang, Dave,
	Skirvin, Jeffrey D, Nadolski, Edmund, Danecki, Jacek,
	sfr@canb.auug.org.au, David Milburn, hare@suse.de

On 06/07/2011 01:53 AM, Christoph Hellwig wrote:
> On Mon, Jun 06, 2011 at 06:06:05PM -0700, Dan Williams wrote:
>> The libsas-pending, x86-pending, and subsequently upstream-pending
>> branches are now closed with the inclusion of v3.0-rc2 into 'master'.
>
> Can you generate a tree without the merge commits?

Sure...

git log --pretty=oneline bcd0d38e^..devel --reverse drivers/scsi/isci/ | 
awk '{ print $1 }' | while read p; do stg pick $p; done

...but can you clarify why?  I've been deliberately conservative on the 
merges (3 out of ~300 commits) after having taken notes from Linus about 
avoiding rebasing and valuing stable commit ids for published trees. 
This very last merge with rc2 was done to pull in the pci_map_biosrom 
enabling and libsas fixes because I assumed we would only have one shot 
at 3.0, and feared that straggling post merge fixups might get deferred. 
  Also wanted to get test exposure on 3.0 since that is the upstream 
kernel users will first encounter.

>> Conspicuously missing is significant progress toward the request to
>> merge the isci_ and scic_sds_ level of data structures.  This is mainly
>> due to taking a break on the cleanups to knock down bugs and missing
>> features, but it also comes back to biting the bullet on more rename
>> thrash.  Patches like "isci: remove 'min memory' infrastructure" give me
>> pause because they indicate we still have work to do on clarifying the
>> data structures and shrinking the number of members (the meat / hard
>> work of the cleanup).  A rename is icing (still necessary) at this
>> point, but working on closing out bugs before going down that road.
>>
>> Questions / suggestions on how to proceed on the cleanup versus bug
>> fixing for the 3.0 merge are welcome.
>
> I think we really need to get the main data structures and the naming sorted
> out.  Also the development process really would benefit from more frequent
> posting of updates.

So let's do the rename after finalizing some bug fixes...  after the 
marathon effort to try to hit .39 I'm ready for some functional patches 
for a change.

>> Adam Gruchala (1):
>>        isci: Added support for C0 to SCU Driver
>
> Please make the silicon revision per-pdev.  Even if you only happen to
> one in any given system now this is plain ugly.

Agreed that's why the changelog said:

> Support for previous silicon revisions is
> deprecated (it's also broken for the theoretical case of multiple
> controllers at different silicon revisions, all the more reason to get
> it removed as soon as possible)

>> Dan Williams (3):
>>        Revert "isci: Add missing PCI IDs"
>>        isci: remove 'min memory' infrastructure
>>        isci: use pci_map_biosrom
>>
>> Dave Jiang (3):
>>        isci: removing the kmalloc in smp request construct
>>        isci: Retrieve the EFI variable for OEM parameter
>>        isci: Removing unused variables compiler warnings
>>
>> Edmund Nadolski (10):
>>        isci: replace isci_timer list with proper embedded timers
>
> Please don't add those sci_timer wrappers.  del_timer already makes
> sure it is cancelled, it just doesn't wait for the execution of
> previous timers, so your additional cancel flag doesn't buy anything.

It makes the implementation functionally equivalent with what we had 
before for the following scenario:

CPUa			CPUb
			timer fires
acquires scic_lock
			spins on scic_lock
cancels timer
releases scic_lock
			acquires scic_lock
			observes cancellation
			releases scic_lock

I looked into checking timer_pending() instead of an explicit cancel 
flag but for this race timer_pending() has already cleared.  Now, 
whether the code actually cares about timer callbacks running post 
cancellation is another consideration, but I was not prepared to 
prioritize time investigating that given we had a 90% solution and the 
pending backlog of other work.

> Btw, what bugfixes have you been looking into?  There's basically none
> in this update, and given the time it took to get this one out there's
> not a whole lot of things in it at all.

Let's see:
1/ libsas does not consider the full time needed for sata devices to 
recover from resets.  So we see devices drop off prematurely especially 
in software raid configurations.  Other libsas drivers have various hard 
coded delays, none of which seem to consider the maximum time needed for 
a signature fis to arrive.  We are working on an lldd local fix for this 
situation (to filter bcns and poll for the fis) since we don't have an 
opportunity to introduce any more libsas functionality for 3.0.  The 
patches need some updating for upstreaming, or we can post them in their 
current form as an RFC.  Ultimately this functionality likely needs a 
libsas-level solution, not lldd.

2/ lldd_execute_task versus lldd_dev_gone race.  I've had this one on my 
plate for a while, but the interrupt rate on cleanups, patch review, 
debug etc has been prohibitive.  In any event as I dig in I'm noticing 
other cleanups along the path like the min memory patch.  This fix 
involves expanding lock coverage to enable atomic device stopping.  I'd 
rather not promote all allocation to GFP_ATOMIC so I'm going to switch 
to preallocated requests.  This change also allows io_request_table to 
be removed.  The next complication is the device "stopping" state, the 
fact that there might be some post notification cleanup is irrelevant to 
the submission path and libsas, so I want to arrange for devices to 
atomically disappear.  The blocker for this is the per device 
reqs_in_process list that require us to hold on to our isci_device 
longer than necessary.  Moving that list to a per host list (like all 
other libsas drivers) allows the task and device cleanup to proceed 
asynchronously but appear atomic to the submission path.

3/ dracut has been seen to assemble software raid arrays too early.  Dig 
some initial digging, but right now the problem is not reproducing.  But 
I'm wondering if the async scanning is not getting flushed correctly, or 
dracut is making a mistake.

4/ Took a few days to investigate and fix a distro backport regression

5/ Investigating test failures relative to the new libsas usage of 
libata-eh.  The fact that we now run error recovery for every single 
sata device in the domain is initially alarming, but maybe we are 
overlooking some level of filtering that prevents this from becoming a 
"reset the entire domain" event.

6/ Starting to get a handle on performance profiling to make sure there 
are no low hanging fruit to pick before the merge.

>>      Revert "isci: Add missing PCI IDs"
>>
>>      This reverts commit c2af8ba9.  These ids are reserved for 3rd party
>>      vendors to deploy their own drivers.
>
> This sounds wrong.  It's probably the same crap we had with all kinds of
> Intel and other vendor cards where some OEM adds value by providing fake
> raid and a driver of it's own.  Care to explain how not supporting them
> benefits the user?

If the user chose the closed solution then two things have happened, we 
(the Linux community) have failed to provide a compelling open 
alternative, and the user's data is potentially at risk when the wrong 
driver is loaded.  If it is anything like ahci then switching drivers 
could just be a matter of a bios switch, but I have not seen how this is 
implemented.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2011-06-07 16:54 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-07  1:06 [GIT] isci: towards the v3.0 merge candidate Dan Williams
2011-06-07  5:20 ` Stephen Rothwell
2011-06-07  8:53 ` Christoph Hellwig
2011-06-07 16:54   ` Dan Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox