An error occurred while fetching folder content.
Timothy Day
authored
Remove this arbitrary limit by reimplementing the array as an Xarray. Xarray can grow and shink dynamically, hence saving memory and allow for many more OBD devices. There is still technically a limit OBD_MAX_INDEX, which is xa_limit_31b.max or around 2 billion. This is far more than is practically useful. This patch also adds various iterators for OBD devices, which are used to simplify code in various places. Removing class_obd_list() since it is unused. Rename class_dev_by_str() to class_str2obd() to keep the pattern. Several class_* functions have been refactored to improve locking. The larger issue of OBD device locking will be addressed separately. Update the OBD device lifecycle test to try loading more devices (about 24,000 for now). Currently, adding an additional OBD device is an O(n^2) operation due to the class_name2dev calls in class_register_device(). This will be addressed in a future patch adding a hash table for OBD device name lookups. Further, OBD life cycle management could likely be simplified by using Xarray marks. Right now, it is handled by a bit field in the obd_device struct. Since the scope of the changes needed to simplify this seem large, this will also be addressed separately. Test-Parameters: testlist=sanity env=ONLY=55,ONLY_REPEAT=10 Signed-off-by:Timothy Day <timday@amazon.com> Change-Id: Icb2cd94a5529e79f5d3ebd0de5e0f225cf212075 Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/51040 Tested-by:
jenkins <devops@whamcloud.com> Tested-by:
Maloo <maloo@whamcloud.com> Reviewed-by:
James Simmons <jsimmons@infradead.org> Reviewed-by:
Neil Brown <neilb@suse.de> Reviewed-by:
Andreas Dilger <adilger@whamcloud.com> Reviewed-by:
Oleg Drokin <green@whamcloud.com>
Name | Last commit | Last update |
---|