RFC: Removal of hash table for Linear RAID

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all,

I suggest the removal of the hashing table and various other members
associated with it from the struct linear_private_data, which are used
majorly for faster searching of devices.

struct linear_private_data
  {
          struct linear_private_data *prev;       /* earlier version */
-          dev_info_t              **hash_table;
-          sector_t                spacing;
          sector_t                array_sectors;
-          int                     sector_shift;   /* shift before dividing
-                                                  * by spacing
-                                                   */
          dev_info_t              disks[0];
  };



The reason for the same being that use of sector_div, spacing and
sector_shift involves lots of computations, which can be easily
avoided and we can achieve the same in a simpler way.

Also, in an environment where we hold a restriction to have a maximum
of 27 devices. I believe that a linear search would be faster or
atleast equal in time, if you take into consider the (time taken for
computations + search) while using the hash table as well.

Other than making the code simpler, IMO, this should also help shrink
the struct linear_private_data which might further help caching as
well.

Another enhancement to this can be to add a new member "nr_devices" (
number of devices ) to struct linear_private_data and use the same to
perform a binary search for the lokkup, as we know the sectors would
always be increasing as per we move ahead with devices.

Something like,

struct linear_private_data
  {
          struct linear_private_data *prev;       /* earlier version */
          sector_t                array_sectors;
          int                        nr_devices;
          dev_info_t              disks[0];
  };


And accordingly, which_dev( ) can use the same to make the search
faster and better.


Comments/suggestions please.

-- 
Regards,
Sandeep.





 	
“To learn is to change. Education is a process that changes the learner.”
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux