DragonFly BSD

CVS log for src/sys/bus/cam/cam_ccb.h

[BACK] Up to [DragonFly] / src / sys / bus / cam

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.17: download - view: text, markup, annotated - select for diffs
Sun Feb 10 00:01:01 2008 UTC (6 years, 7 months ago) by pavalos
Branches: MAIN
CVS tags: HEAD, DragonFly_RELEASE_2_0_Slip, DragonFly_RELEASE_2_0, DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12, DragonFly_Preview
Diff to: previous 1.16: preferred, unified
Changes since revision 1.16: +0 -31 lines
Make CAM_NEW_TRAN_CODE default.

As previously mentioned, this makes a huge performance difference for one
of my disks, and future work depends on this change.

Obtained-from: FreeBSD

Revision 1.16: download - view: text, markup, annotated - select for diffs
Mon Dec 24 00:14:52 2007 UTC (6 years, 8 months ago) by pavalos
Branches: MAIN
Diff to: previous 1.15: preferred, unified
Changes since revision 1.15: +0 -1 lines
Remove unused CTS_SPI_FLAGS_TAG_ENB.

Obtained-from: FreeBSD

Revision 1.15: download - view: text, markup, annotated - select for diffs
Sun Dec 2 04:22:31 2007 UTC (6 years, 9 months ago) by pavalos
Branches: MAIN
Diff to: previous 1.14: preferred, unified
Changes since revision 1.14: +2 -1 lines
Add PIM_SEQSCAN for HBA misc flags and code that understands
what to do with it.

This forces us to scan targets sequentially, not in parallel.
The reason we might want to do this is that SPI negotiation
might not work right at the SIM level if we try to do it
in parallel.

If PIM_SEQSCAN is not set (default), the original behaviour for
probing is unchanged.

LUN probing is still done in parallel for each target in either
case.

Obtained-from: FreeBSD

Revision 1.14: download - view: text, markup, annotated - select for diffs
Sun Dec 2 03:01:55 2007 UTC (6 years, 9 months ago) by pavalos
Branches: MAIN
Diff to: previous 1.13: preferred, unified
Changes since revision 1.13: +14 -1 lines
CAM_NEW_TRAN_CODE placeholders for SAS support.

Obtained-from: FreeBSD

Revision 1.13: download - view: text, markup, annotated - select for diffs
Wed Nov 28 21:20:25 2007 UTC (6 years, 9 months ago) by pavalos
Branches: MAIN
Diff to: previous 1.12: preferred, unified
Changes since revision 1.12: +7 -8 lines
Whitespace to make comments more legible.

Obtained-from: FreeBSD

Revision 1.12: download - view: text, markup, annotated - select for diffs
Wed Nov 21 20:07:31 2007 UTC (6 years, 9 months ago) by pavalos
Branches: MAIN
Diff to: previous 1.11: preferred, unified
Changes since revision 1.11: +13 -0 lines
Add a transport settings variant for Fibre Channel.

Obtained-from: FreeBSD

Revision 1.11: download - view: text, markup, annotated - select for diffs
Mon Nov 19 23:52:10 2007 UTC (6 years, 10 months ago) by pavalos
Branches: MAIN
Diff to: previous 1.10: preferred, unified
Changes since revision 1.10: +9 -0 lines
FC path inquiry settings.

Obtained-from: FreeBSD

Revision 1.10: download - view: text, markup, annotated - select for diffs
Sun Nov 18 17:53:01 2007 UTC (6 years, 10 months ago) by pavalos
Branches: MAIN
Diff to: previous 1.9: preferred, unified
Changes since revision 1.9: +108 -11 lines
Rewrite of the CAM error recovery code.

Some of the major changes include:

	- The SCSI error handling portion of cam_periph_error() has
	  been broken out into a number of subfunctions to better
	  modularize the code that handles the hierarchy of SCSI errors.
	  As a result, the code is now much easier to read.

	- String handling and error printing has been significantly
	  revamped.  We now use sbufs to do string formatting instead
	  of using printfs (for the kernel) and snprintf/strncat (for
	  userland) as before.

	  There is a new catchall error printing routine,
	  cam_error_print() and its string-based counterpart,
	  cam_error_string() that allow the kernel and userland
	  applications to pass in a CCB and have errors printed out
	  properly, whether or not they're SCSI errors.  Among other
	  things, this helped eliminate a fair amount of duplicate code
	  in camcontrol.

	  We now print out more information than before, including
	  the CAM status and SCSI status and the error recovery action
	  taken to remedy the problem.

Obtained-from: FreeBSD

Revision 1.9: download - view: text, markup, annotated - select for diffs
Wed May 16 20:59:37 2007 UTC (7 years, 4 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10
Diff to: previous 1.8: preferred, unified
Changes since revision 1.8: +3 -3 lines
Port 16 byte SCSI command support from FreeBSD.  This adds support for
detecting and performing I/O on disks greater then 2TB (with more
then 2^32 blocks).

Remove KKASSERT from dual user/kernel compiled file - reported by Sascha

Obtained-from: FreeBSD / Kenneth D. Merry did the original FreeBSD work.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Fri Sep 17 03:39:38 2004 UTC (10 years ago) by joerg
Branches: MAIN
CVS tags: DragonFly_Stable, DragonFly_Snap29Sep2004, DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8, DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6, DragonFly_RELEASE_1_4_Slip, DragonFly_RELEASE_1_4, DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2
Diff to: previous 1.7: preferred, unified
Changes since revision 1.7: +1 -1 lines
timeout/untimeout ==> callout_*

Revision 1.7: download - view: text, markup, annotated - select for diffs
Fri Jan 30 05:42:09 2004 UTC (10 years, 7 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_Snap13Sep2004, DragonFly_1_0_REL, DragonFly_1_0_RC1, DragonFly_1_0A_REL
Diff to: previous 1.6: preferred, unified
Changes since revision 1.6: +2 -2 lines
This commit represents a major revamping of the clock interrupt and timebase
infrastructure in DragonFly.

* Rip out the existing 8254 timer 0 code, and also disable the use of
  Timer 2 (which means that the PC speaker will no longer go beep).  Timer 0
  used to represent a periodic interrupt and a great deal of code was in
  place to attempt to obtain a timebase off of that periodic interrupt.

  Timer 0 is now used in software retriggerable one-shot mode to produce
  variable-delay interrupts.  A new hardware interrupt clock abstraction
  called SYSTIMERS has been introduced which allows threads to register
  periodic or one-shot interrupt/IPI callbacks at approximately 1uS
  granularity.

  Timer 2 is now set in continuous periodic mode with a period of 65536
  and provides the timebase for the system, abstracted to 32 bits.

  All the old platform-integrated hardclock() and statclock() code has
  been rewritten.  The old IPI forwarding code has been #if 0'd out and
  will soon be entirely removed (the systimer abstraction takes care of
  multi-cpu registrations now).  The architecture-specific clkintr() now
  simply calls an entry point into the systimer and provides a Timer 0
  reload and Timer 2 timebase function API.

* On both UP and SMP systems, cpus register systimer interrupts for the Hz
  interrupt, the stat interrupt, and the scheduler round-robin interrupt.
  The abstraction is carefully designed to allow multiple interrupts occuring
  at the same time to be processed in a single hardware interrupt.  While
  we currently use IPI's to distribute requested interrupts from other cpu's,
  the intent is to use the abstraction to take advantage of per-cpu timers
  when available (e.g. on the LAPIC) in the future.

  systimer interrupts run OUTSIDE THE MP LOCK.  Entry points may be called
  from the hard interrupt or via an IPI message (IPI messages have always
  run outside the MP lock).

* Rip out timecounters and disable alternative timecounter code for other
  time sources.  This is temporary.  Eventually other time sources, such as
  the TSC, will be reintegrated as independant, parallel-running entities.
  There will be no 'time switching' per-say, subsystems will be able to
  select which timebase they wish to use.  It is desireable to reintegrate
  at least the TSC to improve [get]{micro,nano}[up]time() performance.

  WARNING: PPS events may not work properly.  They were not removed, but
  they have not been retested with the new code either.

* Remove spl protection around [get]{micro,nano}[up]time() calls, they are
  now internally protected.

* Use uptime instead of realtime in certain CAM timeout tests

* Remove struct clockframe.  Use struct intrframe everywhere where clockframe
  used to be used.

* Replace most splstatclock() protections with crit_*() protections, because
  such protections must now also protect against IPI messaging interrupts.

* Add fields to the per-cpu globaldata structure to access timebase related
  information using only a critical section rather then a mutex.  However,
  the 8254 Timer 2 access code still uses spin locks.  More work needs to
  be done here, the 'realtime' correction is still done in a single global
  'struct timespec basetime' structure.

* Remove the CLKINTR_PENDING icu and apic interrupt hacks.

* Augment the IPI Messaging code to make an intrframe available to callbacks.

* Document 8254 timing modes in i386/sai/timerreg.h.  Note that at the
  moment we assume an 8254 instead of an 8253 as we are using TIMER_SWSTROBE
  mode.  This may or may not have to be changed to an 8253 mode.

* Integrate the NTP correction code into the new timebase subsystem.

* Separate boottime from basettime.  Once boottime is believed to be stable
  it is no longer effected by NTP or other time corrections.

CAVETS:

	* PC speaker no longer works

	* Profiling interrupt rate not increased (it needs work to be
	  made operational on a per-cpu basis rather then system-wide).

	* The native timebase API is function-based, but currently hardwired.

	* There might or might not be issues with 486 systems due to the
	  timer mode I am using.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Dec 29 23:30:58 2003 UTC (10 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.5: preferred, unified
Changes since revision 1.5: +0 -2 lines
Add support for cam_calc_geometry(), from FreeBSD-5.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Mon Dec 29 23:09:30 2003 UTC (10 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.4: preferred, unified
Changes since revision 1.4: +2 -0 lines
Add missing prototypes in last commit, other minor adjustments.

Revision 1.4: download - view: text, markup, annotated - select for diffs
Mon Dec 29 06:42:09 2003 UTC (10 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.3: preferred, unified
Changes since revision 1.3: +3 -2 lines
Synchronize the USB, CAM, and TASKQUEUE subsystems with FreeBSD RELENG_4.
Also update the $FreeBSD$ ids in the files to the synchronized rev numbers.

This has the side effect of bringing in some additional SCSI robustness
checks, bug fixes, quirk inheritance between subsystems (e.g. USB now sets
PIM_NO_6_BYTE by default and CAM now understands it).

This also brings in a huge amount of SCSI CD code that had been MFCd to
FreeBSD-4 from FreeBSD-5.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu Aug 7 21:16:44 2003 UTC (11 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.2: preferred, unified
Changes since revision 1.2: +3 -3 lines
kernel tree reorganization stage 1: Major cvs repository work (not logged as
commits) plus a major reworking of the #include's to accomodate the
relocations.

    * CVS repository files manually moved.  Old directories left intact
      and empty (temporary).

    * Reorganize all filesystems into vfs/, most devices into dev/,
      sub-divide devices by function.

    * Begin to move device-specific architecture files to the device
      subdirs rather then throwing them all into, e.g. i386/include

    * Reorganize files related to system busses, placing the related code
      in a new bus/ directory.  Also move cam to bus/cam though this may
      not have been the best idea in retrospect.

    * Reorganize emulation code and place it in a new emulation/ directory.

    * Remove the -I- compiler option in order to allow #include file
      localization, rename all config generated X.h files to use_X.h to
      clean up the conflicts.

    * Remove /usr/src/include (or /usr/include) dependancies during the
      kernel build, beyond what is normally needed to compile helper
      programs.

    * Make config create 'machine' softlinks for architecture specific
      directories outside of the standard <arch>/include.

    * Bump the config rev.

    WARNING! after this commit /usr/include and /usr/src/sys/compile/*
    should be regenerated from scratch.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Jun 17 04:28:18 2003 UTC (11 years, 3 months ago) by dillon
Branches: MAIN
CVS tags: PRE_MP
Diff to: previous 1.1: preferred, unified
Changes since revision 1.1: +1 -0 lines
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids.  Most
ids have been removed from !lint sections and moved into comment sections.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue Jun 17 02:53:52 2003 UTC (11 years, 3 months ago) by dillon
Branches: MAIN
CVS tags: FREEBSD_4_FORK
import from FreeBSD RELENG_4 1.15.2.2

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options