Whamcloud - gitweb
LU-9782 osd-ldiskfs: avoid extra search 39/29739/2
authorAlexey Lyashkov <alexey.lyashkov@seagate.com>
Thu, 20 Jul 2017 09:06:18 +0000 (14:36 +0530)
committerJohn L. Hammond <john.hammond@intel.com>
Thu, 26 Oct 2017 16:09:37 +0000 (16:09 +0000)
commit7d450f590df3deafde7d90d1a1bff6398df0b99b
tree526dbc91234002680cb829733802e60b08b0acce
parent5c1877c4143bddcd3c5c4f2397db5622c2116fce
LU-9782 osd-ldiskfs: avoid extra search

Extent tree grow greatly durin random IO test with small block size.
osd_is_mapped responsible to large cpu consumption in this case.

|          |
|          |--94.49%-- ldiskfs_es_find_delayed_extent_range
|          |          ldiskfs_fiemap
|          |          osd_is_mapped
|          |          osd_declare_write_commit
|          |
|          |--5.49%-- ldiskfs_fiemap
|          |          osd_is_mapped
|          |          osd_declare_write_commit
|
|--21.80%-- ldiskfs_es_find_delayed_extent_range
|          |
|          |--100.00%-- ldiskfs_fiemap
|          |          osd_is_mapped

let's cache a osd_is_mapped result to avoid extra search in extent
tree,

Lustre-change: https://review.whamcloud.com/28145
Lustre-commit: 1eb0573fdeb7ef8ed667974fd30d4d110b8166c9

Seagate-bug-id: MRP-4474
Signed-off-by: Alexey Lyashkov <alexey.lyashkov@seagate.com>
Change-Id: I63d480bfc7c6b7599b80ceeec9447b227a1610c8
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Andrew Perepechko <andrew.perepechko@seagate.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Signed-off-by: Minh Diep <minh.diep@intel.com>
Reviewed-on: https://review.whamcloud.com/29739
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andrew Perepechko <c17827@cray.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
lustre/include/lustre/lustre_idl.h
lustre/ofd/ofd_io.c
lustre/osd-ldiskfs/osd_internal.h
lustre/osd-ldiskfs/osd_io.c