DragonFly BSD

CVS log for src/sys/dev/disk/sym/sym_hipd.c

[BACK] Up to [DragonFly] / src / sys / dev / disk / sym

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.24: download - view: text, markup, annotated - select for diffs
Sun May 18 20:30:22 2008 UTC (6 years, 7 months ago) by pavalos
Branches: MAIN
CVS tags: HEAD, DragonFly_RELEASE_2_0_Slip, DragonFly_RELEASE_2_0, DragonFly_Preview
Diff to: previous 1.23: preferred, unified
Changes since revision 1.23: +1 -1 lines
Sync CAM with FreeBSD using lockmgr locks instead of mutexes.
Note:  This is mostly a code sync with FreeBSD which improves stability
in addition to the items listed below.  This provides a framework for
releasing the mplock, but for now it's still there.

Add an xpt_print function to reduce most of the xpt_print_path/printf
pairs. Convert the core code to use it.

Initial cut at Basic Domain Validation.

Make cam_xpt's pronouncements match camcontrol (Tagged -> Command) Queueing.

Pay attention to return value from xpt_bus_register in xpt_init.

Add an xpt_rescan function and a thread that will field rescan requests.
The purpose of this is to allow a SIM (or other entities) to request a bus
rescan and have it then fielded in a different (process) context from the
caller.

Check the return value from cam_periph_acquire.

Drop the periph/sim lock when calling disk_destroy().

Drop the topology lock before calling the periph oninvalidate and dtor
vectors.

For the XPT_SASYNC_CB operation, only decouple the broadcast to the bus
and device lists instead of decoupling the whole operation.  This avoids
problems with SIMs going away.

Split the camisr into per-SIM done queues.  This optimizes the locking a
little bit and allows for direct dispatch of the doneq from certain
contexts that would otherwise face recursive locking problems.

Zero the CCBs when mallocing them.

Only schedule the xpt_finishconfig_task once.

Eliminate the use of M_TEMP.

Add a helper function for registering async callbacks.

Release the bus reference that is acquired when doing a CAMIOCOMMAND ioctl.

Zero scsi_readcapacity allocations so we can really tell if there has
been data returned.

Remove duplicate includes and fix typos.

Add a bunch of definitions and structures to support newer drivers.

When probing a newly found device, don't automatically assume that the
device supports retrieving a serial number.  Instead, first query the
list of VPD pages it does support, and only query the serial number if
it's supported, else silently move on.  This eliminates a lot of noise
during verbose booting, and will likely eliminate the need for most
NOSERIAL quirks.

Reduce diffs from FreeBSD.

Obtained-from: FreeBSD

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sun Feb 10 00:01:03 2008 UTC (6 years, 10 months ago) by pavalos
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12
Diff to: previous 1.22: preferred, unified
Changes since revision 1.22: +0 -116 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.22: download - view: text, markup, annotated - select for diffs
Sun Sep 23 04:09:55 2007 UTC (7 years, 3 months ago) by yanyh
Branches: MAIN
Diff to: previous 1.21: preferred, unified
Changes since revision 1.21: +1 -1 lines
prepare the amd64 kernel build, ext2_bitops.h merged in from FreeBSD

Revision 1.21: download - view: text, markup, annotated - select for diffs
Sat Feb 3 23:13:19 2007 UTC (7 years, 10 months ago) by swildner
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10
Diff to: previous 1.20: preferred, unified
Changes since revision 1.20: +1 -1 lines
Fix typo: firmare -> firmware

Revision 1.20: download - view: text, markup, annotated - select for diffs
Fri Dec 22 23:26:17 2006 UTC (8 years ago) by swildner
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8
Diff to: previous 1.19: preferred, unified
Changes since revision 1.19: +108 -108 lines
Rename printf -> kprintf in sys/ and add some defines where necessary
(files which are used in userland, too).

Revision 1.19: download - view: text, markup, annotated - select for diffs
Wed Dec 20 18:14:39 2006 UTC (8 years ago) by dillon
Branches: MAIN
Diff to: previous 1.18: preferred, unified
Changes since revision 1.18: +1 -1 lines
Rename sprintf  -> ksprintf
Rename snprintf -> knsprintf

Make allowances for source files that are compiled for both userland and
the kernel.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Wed Oct 25 20:55:54 2006 UTC (8 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.17: preferred, unified
Changes since revision 1.17: +1 -17 lines
Do a major clean-up of the BUSDMA architecture.  A large number of
essentially machine-independant drivers use the structures and definitions
in machine-dependant directories that are really machine-independant in
nature.

Split <machine/bus_dma.h> into machine-depdendant and machine-independant parts
and make the primary access run through <sys/bus_dma.h>.

Remove <machine/bus.h>, <machine/bus_memio.h> and <machine/bus_pio.h>.  The
optimizations related to bus_memio.h and bus_pio.h made a huge mess,
introduced machine-specific knowledge into essentially machine-independant
drivers, and required specific #include file orderings to do their job.
They may be reintroduced in some other form later on.

Move <machine/resource.h> to <sys/bus_resource.h>.  The contents of the file
is machine-independant or can be made a superset across many platforms.

Make <sys/bus.h> include <sys/bus_dma.h> and <sys/bus_resource.h> and
include <sys/bus.h> where necessary. Remove all #include's of
<machine/resource.h> and <machine/bus.h>.  That is, make the BUSDMA
infrastructure integral to I/O-mapped and memory-mapped accesses to devices
and remove a large chunk of machine-specific dependancies from drivers.
bus_if.h and device_if.h are now required to be present when using <sys/bus.h>.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Tue Sep 5 00:55:38 2006 UTC (8 years, 3 months ago) by dillon
Branches: MAIN
Diff to: previous 1.16: preferred, unified
Changes since revision 1.16: +2 -2 lines
Rename malloc->kmalloc, free->kfree, and realloc->krealloc.  Pass 1

Revision 1.16: download - view: text, markup, annotated - select for diffs
Wed Oct 12 17:35:50 2005 UTC (9 years, 2 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6, DragonFly_RELEASE_1_4_Slip, DragonFly_RELEASE_1_4
Diff to: previous 1.15: preferred, unified
Changes since revision 1.15: +1 -1 lines
Remove the INTR_TYPE_* flags.  The interrupt type is no longer used to
figure out which spl*() set an interrupt belongs to, because, well, spl's
no longer exist.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Thu Jun 16 21:12:30 2005 UTC (9 years, 6 months ago) by dillon
Branches: MAIN
Diff to: previous 1.14: preferred, unified
Changes since revision 1.14: +1 -1 lines
Remove all remaining SPL code.  Replace the mtd_cpl field in the machine
dependant thread structure and the CPL field in the interrupt stack frame
with dummies (so structural sizes do not change, yet).  Remove all interrupt
handler SPL mask and mask pointer code.  Remove all spl*() functions except
for splz().

Note that doreti uses a temporary CPL mask internally to accumulate a bitmap
of FAST interrupts which could not be executed due to not being able to get
the BGL.  This mask has no outside visibility.

Note that gd_fpending and gd_ipending still exist to support critical section
interrupt deferment.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Mon Jun 6 21:48:16 2005 UTC (9 years, 6 months ago) by eirikn
Branches: MAIN
Diff to: previous 1.13: preferred, unified
Changes since revision 1.13: +19 -23 lines
More spl_* removal from dev/disk/, replacing them with critical sections.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Thu May 26 23:22:13 2005 UTC (9 years, 6 months ago) by swildner
Branches: MAIN
Diff to: previous 1.12: preferred, unified
Changes since revision 1.12: +0 -35 lines
Remove DEC Alpha support.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Tue May 24 20:59:00 2005 UTC (9 years, 6 months ago) by dillon
Branches: MAIN
Diff to: previous 1.11: preferred, unified
Changes since revision 1.11: +1 -1 lines
Get rid of bus_{disable,enable}_intr(), it wasn't generic enough for
our needs.

Implement some generic atomic.h functions to aid in the implementation of
a low level mutex.

Implement a generic low level sleep-mutex serializer, kern/lwkt_serialize.c.
The serializer is designed to be a replacement for SPL calls but may also
be used for other very low level work (e.g. lockmgr interlocks).

Add a serializer argument to BUS_SETUP_INTR().  When non-NULL, the interrupt
handler will no longer be protected by an SPL so e.g. spl*() will no
longer protect against that device's interrupts.

The IF queueing and dequeueing mechanisms may no longer depend on outside
SPL state because network driver interrupt handlers are no longer required to
enter splnet().  Use critical sections for the moment.  The IFQ and
IFF_OACTIVE interactions are not yet MP safe.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Thu Jan 6 08:33:11 2005 UTC (9 years, 11 months ago) by asmodai
Branches: MAIN
CVS tags: DragonFly_Stable, DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2
Diff to: previous 1.10: preferred, unified
Changes since revision 1.10: +1 -1 lines
Get rid of the register keyword.

Submitted by:	Steve Mynott

Revision 1.10: download - view: text, markup, annotated - select for diffs
Sat Sep 18 22:01:49 2004 UTC (10 years, 3 months ago) by joerg
Branches: MAIN
CVS tags: DragonFly_Snap29Sep2004
Diff to: previous 1.9: preferred, unified
Changes since revision 1.9: +4 -4 lines
Remove extra tokens at end of #undef.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Fri Sep 17 03:39:39 2004 UTC (10 years, 3 months ago) by joerg
Branches: MAIN
Diff to: previous 1.8: preferred, unified
Changes since revision 1.8: +4 -4 lines
timeout/untimeout ==> callout_*

Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon Jun 21 15:45:42 2004 UTC (10 years, 6 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.7: preferred, unified
Changes since revision 1.7: +1 -1 lines
Some more M_NOWAIT->M_INTWAIT.  Not sure if the sym changes are correct,
but they are more correct then using M_NOWAIT.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Jun 21 05:58:01 2004 UTC (10 years, 6 months ago) by dillon
Branches: MAIN
Diff to: previous 1.6: preferred, unified
Changes since revision 1.6: +2 -2 lines
gcc-3.4 cleanups.  Add missing break statements, deal with goto labels,
and adjust the use of __FUNCTION__ (string concat is no longer supported).

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Mar 15 01:10:44 2004 UTC (10 years, 9 months ago) by dillon
Branches: MAIN
Diff to: previous 1.5: preferred, unified
Changes since revision 1.5: +6 -7 lines
The cam_sim structure was being deallocated unconditionally by device
driver detach routines.  The problem with this is that part of the CAM
bus structure may still be active (for example, with pending timeout()'s),
and even though the bus, target, and device is freed, since the sim IS
freed any accesses through the sim will hit 0xdeadc0de.  This case most often
occurs with USB UMASS devices.

The CAM_XPT and CAM_SIM layer has been revamped.  CAM_DEV_UNCONFIGURED is now
accounted for in the device->refcount, and the cam_sim structure is now
ref-counted as well.  Additionally, the cam_simq* code which handles the
device queues has been revamped to refcount as well, so shared device queues
(raid and multi-channel devices) are not free()'d before all references have
gone away.

scsi_low free'd its cam_sim twice.  Fixed.

USB was improperly using M_NOWAIT.  All M_NOWAIT instances have been renamed
to M_INTWAIT.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Fri Feb 13 01:04:15 2004 UTC (10 years, 10 months ago) by joerg
Branches: MAIN
Diff to: previous 1.4: preferred, unified
Changes since revision 1.4: +3 -3 lines
Add __DragonFly__

Revision 1.4: download - view: text, markup, annotated - select for diffs
Thu Aug 7 21:16:54 2003 UTC (11 years, 4 months ago) by dillon
Branches: MAIN
Diff to: previous 1.3: preferred, unified
Changes since revision 1.3: +16 -16 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.3: download - view: text, markup, annotated - select for diffs
Sun Jul 27 01:49:51 2003 UTC (11 years, 4 months ago) by hmp
Branches: MAIN
Diff to: previous 1.2: preferred, unified
Changes since revision 1.2: +1 -8 lines
Consolidate usage of MIN/MAX().

Instead, just remove the conditional processing in sys/param.h so
it's available to all files.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Jun 17 04:28:31 2003 UTC (11 years, 6 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:54:27 2003 UTC (11 years, 6 months ago) by dillon
Branches: MAIN
CVS tags: FREEBSD_4_FORK
import from FreeBSD RELENG_4 1.6.2.12

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