~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/scsi/megaraid.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 .. SPDX-License-Identifier: GPL-2.0
  2 
  3 =================================
  4 Megaraid Common Management Module
  5 =================================
  6 
  7 Overview
  8 --------
  9 
 10 Different classes of controllers from LSI Logic accept and respond to the
 11 user applications in a similar way. They understand the same firmware control
 12 commands. Furthermore, the applications also can treat different classes of
 13 the controllers uniformly. Hence it is logical to have a single module that
 14 interfaces with the applications on one side and all the low level drivers
 15 on the other.
 16 
 17 The advantages, though obvious, are listed for completeness:
 18 
 19         i.      Avoid duplicate code from the low level drivers.
 20         ii.     Unburden the low level drivers from having to export the
 21                 character node device and related handling.
 22         iii.    Implement any policy mechanisms in one place.
 23         iv.     Applications have to interface with only module instead of
 24                 multiple low level drivers.
 25 
 26 Currently this module (called Common Management Module) is used only to issue
 27 ioctl commands. But this module is envisioned to handle all user space level
 28 interactions. So any 'proc', 'sysfs' implementations will be localized in this
 29 common module.
 30 
 31 Credits
 32 -------
 33 
 34 ::
 35 
 36         "Shared code in a third module, a "library module", is an acceptable
 37         solution. modprobe automatically loads dependent modules, so users
 38         running "modprobe driver1" or "modprobe driver2" would automatically
 39         load the shared library module."
 40 
 41 - Jeff Garzik (jgarzik@pobox.com), 02.25.2004 LKML
 42 
 43 ::
 44 
 45         "As Jeff hinted, if your userspace<->driver API is consistent between
 46         your new MPT-based RAID controllers and your existing megaraid driver,
 47         then perhaps you need a single small helper module (lsiioctl or some
 48         better name), loaded by both mptraid and megaraid automatically, which
 49         handles registering the /dev/megaraid node dynamically. In this case,
 50         both mptraid and megaraid would register with lsiioctl for each
 51         adapter discovered, and lsiioctl would essentially be a switch,
 52         redirecting userspace tool ioctls to the appropriate driver."
 53 
 54 - Matt Domsch, (Matt_Domsch@dell.com), 02.25.2004 LKML
 55 
 56 Design
 57 ------
 58 
 59 The Common Management Module is implemented in megaraid_mm.[ch] files. This
 60 module acts as a registry for low level hba drivers. The low level drivers
 61 (currently only megaraid) register each controller with the common module.
 62 
 63 The applications interface with the common module via the character device
 64 node exported by the module.
 65 
 66 The lower level drivers now understand only a new improved ioctl packet called
 67 uioc_t. The management module converts the older ioctl packets from the older
 68 applications into uioc_t. After driver handles the uioc_t, the common module
 69 will convert that back into the old format before returning to applications.
 70 
 71 As new applications evolve and replace the old ones, the old packet format
 72 will be retired.
 73 
 74 Common module dedicates one uioc_t packet to each controller registered. This
 75 can easily be more than one. But since megaraid is the only low level driver
 76 today, and it can handle only one ioctl, there is no reason to have more. But
 77 as new controller classes get added, this will be tuned appropriately.

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php