Whamcloud - gitweb
Jinshan Xiong [Sat, 14 Oct 2017 07:55:23 +0000 (00:55 -0700)]
LU-9771 flr: inherit mirror options from directory
This patch checks and verifies directory inheritance from parent
works both for regular files and directories.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Ief58805ca736acb9a53fd9ad8fb2bb460d46b748
Reviewed-on: https://review.whamcloud.com/29576
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Bobi Jam [Sat, 14 Oct 2017 07:49:27 +0000 (00:49 -0700)]
LU-9771 flr: lfs mirror resync command
This patch adds "lfs mirror resync" command to resynchronize a
mirrored file.
Usage:
lfs mirror resync [--only <mirror_id[,...]>] <mirrored file>
Options:
--only <mirror_id[,...]>
Indicates which mirror(s) specified by mirror_id(s) needs to
be resynchronized. The mirror_id is the numerical unique
identifier for a mirror. Multiple mirror_ids are separated
by comma.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Change-Id: Ic2aa474d1023a4364aa9d90c59120b1d5c89a269
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-on: https://review.whamcloud.com/29243
Tested-by: Jenkins
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Jian Yu [Sat, 14 Oct 2017 07:42:39 +0000 (00:42 -0700)]
LU-9771 flr: FLR+PFL test cases
* add some PFLR test cases.
* improve some lfs getstripe output.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Jian Yu <jian.yu@intel.com>
Change-Id: Id27ad50456f1c51287df61fc93a2b18a3c6a6361
Reviewed-on: https://review.whamcloud.com/29101
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Jenkins
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jian Yu [Fri, 15 Sep 2017 21:43:10 +0000 (21:43 +0000)]
LU-9771 flr: lfs mirror create and extend commands
This patch adds "lfs mirror create" and "lfs mirror extend"
commands to create or extend a mirrored file.
Usage:
lfs mirror create <--mirror-count|-N[mirror_count]>
[setstripe options|--parent]
... <filename|directory>
lfs mirror extend [--no-verify]
<--mirror-count|-N[mirror_count]>
[setstripe options|--parent|-f <victim_file>]
... <filename>
Options:
--mirror-count|-N[mirror_count]
Number of mirrors to be created with the upcoming setstripe
layout options. The option can be repeated multiple times to
separate mirrors that have different layouts. The mirror_count
argument is optional and defaults to 1 if it's not specified;
if specified, it must follow the option without a space.
setstripe options
The layout of one mirror. The options are the same as those for
lfs setstripe command. If setstripe options are not specified,
then the stripe options inherited from the previous component
will be used.
--parent
This option indicates that the default stripe options inherited
from parent directory will be used.
-f <victim_file>
The layout of victim_file will be split and used as a mirror
added to the mirrored file.
--no-verify
This option indicates not to verify the mirror(s) from victim
file(s) in case the victim file(s) contains the same data as
the original mirrored file.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jian Yu <jian.yu@intel.com>
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I8fb4a367bd169073f194ddee5c26d65b557e8201
Reviewed-on: https://review.whamcloud.com/29100
Tested-by: Jenkins
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Bobi Jam [Mon, 4 Sep 2017 09:28:58 +0000 (17:28 +0800)]
LU-9771 flr: instantiate component for truncate
layout intent for truncate IO needs stale components for non
primary mirror overlapping [trunc_size, eof), while needs to
instantiate components overlapping [0, trunc_size).
Test-Parameters: testlist=sanity-flr
Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Change-Id: Ibf31e3e1fd68d1a643f2ed3ac5b9e3c778563895
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-on: https://review.whamcloud.com/29099
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Tested-by: Jenkins
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Fri, 15 Sep 2017 21:29:58 +0000 (21:29 +0000)]
LU-9771 lod: support setting mirror layout from CLI
Parse and support mirror layout from CLI.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Change-Id: I51d24aecb63af04cb3c1dd1bcfbf5728030b233b
Reviewed-on: https://review.whamcloud.com/29098
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Sat, 26 Aug 2017 06:53:58 +0000 (23:53 -0700)]
LU-9771 flr: randomize mirror pick
Pick mirror randomly for read on client side and write on the MDT.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I8dff91e6b7354a9841a2f1595df611717fe51afb
Reviewed-on: https://review.whamcloud.com/29097
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Wed, 8 Nov 2017 23:30:44 +0000 (23:30 +0000)]
LU-9771 osp: no delay commit callback for layout version
OSP batches commit callback by one second interval. However, this
mechanism would cause problem to FLR because the clients has to
wait up to one second before they are able to write OST objects.
This patch registers immediate commit callback if the SETATTR is
for layout version. It also cleans up the code a little bit.
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I5fa0fea9a8c8b23379118609bee9a36f412a191d
Reviewed-on: https://review.whamcloud.com/30000
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Fri, 15 Sep 2017 21:22:41 +0000 (21:22 +0000)]
LU-9771 flr: resync support and test tool
A tool to resync mirrored file after writing.
It extends the Lustre lease API to support taking file lease and then
sending the MDS_REINT_RESYNC RPC to the MDT so that it can increase
the file's layout version; then the client will start copying
the contents from valid mirror to stale mirrors. At the end of
resync, the copying client will release the lease and revalidate
stale mirrors.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I59f84cd501f6945225c97bdb99a142ae7efbf0fb
Reviewed-on: https://review.whamcloud.com/29096
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Fri, 15 Sep 2017 21:13:10 +0000 (21:13 +0000)]
LU-9771 flr: mirror read and write
Support to perform I/O to designated mirror.
Three APIs have been exported for mirror IO:
1. llapi_mirror_read();
2. llapi_mirror_copy();
3. llapi_mirror_{set,clear}().
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Iae1d1edea8e72b423f6f46821594a7d7791ff69b
Reviewed-on: https://review.whamcloud.com/29095
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Sebastien Buisson [Fri, 10 Nov 2017 16:16:47 +0000 (17:16 +0100)]
LU-10226 tests: properly check for fileset clear and error
Make sure fileset info on nodemap is cleared everywhere before
continuing test.
Also, properly exit on this error.
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: I1d117ffef6c4a1002d3eba47a301e64830be4b4f
Reviewed-on: https://review.whamcloud.com/30037
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Emoly Liu <emoly.liu@intel.com>
Reviewed-by: Stephan Thiell <sthiell@stanford.edu>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
(cherry picked from commit
eae0f97355cf9a20066815b004716e4f148cec3d)
Reviewed-on: https://review.whamcloud.com/30218
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
John L. Hammond [Wed, 15 Nov 2017 16:05:57 +0000 (10:05 -0600)]
LU-10038 test: improve error reporting in sanity test_133g()
In sanity test_133g() remove the output redirection to /dev/null so
that errors from do_facet or find go to the test logs. Suppress error
messages in badarea_io.c.
Test-Parameters: trivial envdefinitions=ONLY=133 testlist=sanity,sanity,sanity,sanity,sanity,sanity,sanity,sanity,sanity,sanity
Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: Ia51ccdacb995ff51a6467cbdd280c8965cfc5f47
Reviewed-on: https://review.whamcloud.com/30219
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Jinshan Xiong [Sat, 26 Aug 2017 19:49:38 +0000 (12:49 -0700)]
LU-9771 lov: skip empty pages in lov_io_submit()
empty page doesn't have corresponding bottem half so it should be
completed in the LOV layer.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Idb4576a8689bdf01638d66fddd123f05ffdd02cf
Reviewed-on: https://review.whamcloud.com/29094
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Jinshan Xiong [Sun, 30 Jul 2017 01:10:58 +0000 (18:10 -0700)]
LU-9771 flr: test script for mirrored file write
Add a test case to verify that writing to mirrored files work.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I98d97cc084554c769f2db5a3ef8a462d8db5dfce
Reviewed-on: https://review.whamcloud.com/29093
Reviewed-by: Jian Yu <jian.yu@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Jinshan Xiong [Fri, 15 Sep 2017 20:49:02 +0000 (20:49 +0000)]
LU-9771 flr: extend DATA_VERSION API to read layout version
The API is extended to fetch layout version from ost objects.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Iba852633992f0c52af8837cfed70922c1ed9ae00
Reviewed-on: https://review.whamcloud.com/29092
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Jinshan Xiong [Mon, 13 Nov 2017 23:34:14 +0000 (23:34 +0000)]
LU-9771 flr: Send write intent RPC to mdt
When a mirrored file is going to be written, the client needs
to send a write intent RPC to the MDT. The MDT will pick a mirror
as primary and mark the others as stale. The new md operation
moo_layout_change() is introduced for this purpose. The MDT also
transfers the latest layout version to the OST objects via
do_attr_set().
Once OSTs receive the setattr RPC for layout version change, it
will set the update layout version into extended attribute
XATTR_NAME_FID.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Ib0049a78b95895141b0032e8eff526a73a160dcb
Reviewed-on: https://review.whamcloud.com/29091
Tested-by: Jenkins
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Jinshan Xiong [Fri, 29 Sep 2017 19:25:23 +0000 (19:25 +0000)]
LU-10050 lod: suspicious buffer reference in lod replay
In the replay path of lod_declare_layout_change(), it mistakenly uses
the address of buffer pointer where it should use the buffer pointer.
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I82b77ad4b12bc7880f7376e13853baaa7dbfe341
Reviewed-on: https://review.whamcloud.com/29269
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Fri, 15 Sep 2017 20:37:46 +0000 (20:37 +0000)]
LU-9771 mdt: revise layout_change() to take md_layout_change
This is a preparation patch for FLR write support.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I6323c260a636d31f683c035b45536374faa10746
Reviewed-on: https://review.whamcloud.com/29090
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Jinshan Xiong [Tue, 26 Sep 2017 00:28:57 +0000 (00:28 +0000)]
LU-9771 lod: define ldo_mirrors to manage mirrors
Right now it only supports loading mirror from disk
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Bobi Jam <bobijam.xu@intel.com>
Change-Id: Id560070e6147465681ede5a02e1add585281ea89
Reviewed-on: https://review.whamcloud.com/29089
Tested-by: Jenkins
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Sun, 6 Aug 2017 05:27:24 +0000 (22:27 -0700)]
LU-9771 ptlrpc: use lu_extent in layout_intent
This way it will be easier to check and print the extent
of layout.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Ie99142388310a8e321899c1795bc16bee97657be
Reviewed-on: https://review.whamcloud.com/29087
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Wed, 2 Aug 2017 22:48:32 +0000 (15:48 -0700)]
LU-9771 lov: rework write intent on componect instantiation
It's revised to do in the I/O initialization.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Ib5edf6dc3d56c4b2068f434e644396c168e4bc5b
Reviewed-on: https://review.whamcloud.com/29086
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Fri, 15 Sep 2017 20:32:06 +0000 (20:32 +0000)]
LU-9771 flr: read support for flr
Avoid stale mirrors to read;
If preferred mirror is inaccessible, try next one, ndelay RPC
is implemented to make the error-out quick. ndelay RPC has
rq_no_delay bit set that can be applied to brw and lock RPC.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I52143079edd1566ecb3a734ed88dab19f882c2fc
Reviewed-on: https://review.whamcloud.com/29085
Tested-by: Jenkins
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Fri, 14 Jul 2017 23:22:46 +0000 (16:22 -0700)]
LU-9771 clio: no glimpse for data immutable file
When merging a layout to an existing file as a mirror, client will
report the size and blocks to the MDT, which will be set to the MDT
object. In that case, if the MDT discovers a mirrored file in
READ_ONLY state, it will report the size and blocks. Clients should
take this advantage and skip glimpse.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I60831689116e6c5dd0311dea62b91dd0ae3cfd56
Reviewed-on: https://review.whamcloud.com/29084
Tested-by: Jenkins
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Fri, 15 Sep 2017 20:01:58 +0000 (20:01 +0000)]
LU-9771 flr: lfs setstripe to create a new mirror
To create a mirrored file:
1. Create a component file
lfs setstripe -E -1 /mnt/lustre/tf
2. Add a synced mirror - create a mirror with specified layout
lfs setstripe --component-add [--mirror[=victim_file]]
[setstripe options] <file>
if victim_file exists, it will split the layout from that file and
use it as a mirror; otherwise, it will create a new mirror with
the stripe options in 'setstripe options'.
3. [todo] support to create a mirrored file directly by
lfs setstripe --mirror [setstripe options] --mirror [options] <file>
flag 'LCM_USER_FL_MIRROR' is reserved for this purpose.
Test-Parameters: testlist=sanity-flr
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I470feeb1a77554bd2c990e94d8538fd3d03d7b3b
Reviewed-on: https://review.whamcloud.com/29083
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Jinshan Xiong [Fri, 15 Sep 2017 19:53:50 +0000 (19:53 +0000)]
LU-9771 clio: introduce CIT_GLIMPSE for glimpse
It turned out that it's better to have a standaline I/O context
for glimpse request. In that case, it's easier for glimpse to try
a new mirror if the current one is out of access.
Another problem in this patch is to zero cl_io data structure if
the I/O starts from OSC layer.
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Ieeac36d4af38bc04a01affb9e6d3d129bceeb74e
Reviewed-on: https://review.whamcloud.com/29082
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Mon, 8 May 2017 20:22:13 +0000 (13:22 -0700)]
LU-9771 lov: pack lsm_flags from layout
Pack lsm_flags from compount layout.
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I39cb0fe319c1665ef9d12ff704931c4583d730ff
Reviewed-on: https://review.whamcloud.com/29081
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Jinshan Xiong [Fri, 15 Sep 2017 19:23:58 +0000 (19:23 +0000)]
LU-9997 ldlm: check lock cancellation in ldlm_cli_cancel()
In that case, the assert for 'list_empty(&lock->l_bl_ast)' will fail
because the lock is already in a cancel list.
This patch checks if the lock is already being canceled in prior.
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: I04b9df789cf3b3b5e6dd61a647376307f9975f4a
Reviewed-on: https://review.whamcloud.com/29080
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Jinshan Xiong [Sun, 15 Oct 2017 19:19:30 +0000 (12:19 -0700)]
LU-9785 lov: take lov layout lock for I/O with ignore_layout
A rule of thumb for taking lov layout configuration lock is if I/O
is initiated from LLITE layer, it should grab the lock. If an I/O
starts from the OSC layer, it won't be necessary because if the OSC
object exists, layout reconfiguration will move forward.
Right now CIT_MISC + ci_ignore_layout can identify the I/O from the
OSC layer, I just use this in lov_io_init() for this purpose. In the
future, an explicit bit may be defined for this.
Signed-off-by: Jinshan Xiong <jinshan.xiong@gmail.com>
Change-Id: I2fe37a957b5fb4161c4c723062f6469b915c1dd5
Reviewed-on: https://review.whamcloud.com/29638
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Bobi Jam <bobijam@hotmail.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Mikhal Pershin [Fri, 10 Nov 2017 10:18:48 +0000 (13:18 +0300)]
LU-3285 merge: 'dom' branch merging
Merge remote-tracking branch 'origin/dom'
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: I8c20ac4f5fdae6ec7ad034fbb7f5fda656f03c8b
Mikhail Pershin [Thu, 9 Nov 2017 19:26:15 +0000 (22:26 +0300)]
LU-3285 mdc: remove wrong assertion from mdc_object_ast_clear
It was added wrongly during DoM development but this
assertion is not correct due to AGL locks,
check LU-6042.
Signed-off-by: Mikhail Pershin <mike.pershin@intel.com>
Change-Id: Id14d408cbb7365cd9bb973c48e076abac4cd878f
Reviewed-on: https://review.whamcloud.com/30021
Tested-by: Jenkins
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Mikhal Pershin [Wed, 8 Nov 2017 09:58:37 +0000 (12:58 +0300)]
LU-3285 tests: disable DOM files in racer by default
Use RACER_ENABLE_DOM=true to enable dom files in racer
explicitly.
Test-Parameters: mdssizegb=20 mdscount=1 mdtcount=1 testlist=racer
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: Ibcbbff0dd995903915a2404c1076108e2016a4cb
Reviewed-on: https://review.whamcloud.com/30020
Tested-by: Jenkins
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Nathaniel Clark [Tue, 31 Oct 2017 16:49:39 +0000 (12:49 -0400)]
LU-10174 osd-zfs: Fix build against ZFS 0.6.5.x
Ensure all values used in https://review.whamcloud.com/29242 are
actually used conditionally. This allows us to build against
ZFS 0.6.5.7 again.
Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: Ide560e21f7b7fedc0c107b1943602e5af99b478c
Reviewed-on: https://review.whamcloud.com/29866
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Sonia [Fri, 27 Oct 2017 10:14:29 +0000 (03:14 -0700)]
LU-10151 lnet: report better config error with lnetctl
Configuring net or route currently reports generic
message on error. Adding specific error message for
the missing parameters.
With importing config from yaml file, specific
error messages help in finding the exact error.
Change-Id: I7d9bdeb2280f4548897d9958aab7d451b981e8bd
Signed-off-by: Sonia Sharma <sonia.sharma@intel.com>
Test-Parameters: trivial
Reviewed-on: https://review.whamcloud.com/29820
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Amir Shehata <amir.shehata@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Doug Oucharek <dougso@me.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Hongchao Zhang [Wed, 11 Oct 2017 05:05:28 +0000 (13:05 +0800)]
LU-10067 mdt: reinit lock when fail to try lock
In mdt_lock_objects_in_linkea, the mdt_lock_handle should be
re-initialized when the first try (mdt_object_lock_try) failed.
Change-Id: I8232c40c3e9e239391b7a43d9d16f5563bd794e5
Signed-off-by: Hongchao Zhang <hongchao.zhang@intel.com>
Reviewed-on: https://review.whamcloud.com/29597
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Ben Evans [Wed, 13 Sep 2017 13:56:07 +0000 (09:56 -0400)]
LU-9855 obdclass: cleanup obd_class.h defines
Get rid of OBT and CTXTP defines.
Remove OBD_CHECK_DT_OP
Convert EXP_CHECK_MD_OP into a function.
Remove CTXT_CHECK_OP.
Signed-off-by: Ben Evans <bevans@cray.com>
Change-Id: Ia2adc579602818ebdba0a40c99da9e3af1575d24
Reviewed-on: https://review.whamcloud.com/29286
Tested-by: Jenkins
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Steve Guminski <stephenx.guminski@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Alex Zhuravlev [Thu, 28 Sep 2017 11:34:33 +0000 (14:34 +0300)]
LU-10041 tests: sanity/51 to cleanup properly
sanity/51 should cleanup properly in case of failure
Change-Id: Ib1c0e1a116a6802f2bf25d665be5c076ae07c8b8
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-on: https://review.whamcloud.com/29246
Tested-by: Jenkins
Reviewed-by: James Nunez <james.a.nunez@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Wei Liu <wei3.liu@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Patrick Farrell [Mon, 16 Oct 2017 10:22:22 +0000 (05:22 -0500)]
LU-1757 brw: add short io osc/ost transfer.
There's no need to do target bulk io for small amount of
data, and it requires extra network operations.
For this case we add short i/o. When the i/o size is less
than or equal to some number of pages (default 3), we
encapsulate the data in the ptlrpc request.
With this patch, 4k direct i/o read latency on a Cray Aries
network (data is on flash on another node on the Aries)
drops from ~280 microseconds to ~200 microseconds. Write
latency drops from ~370 microseconds to ~350 microseconds
(much more of write latency is waiting for write commit).
This translates to about a 25-30% performance improvement
on 4k direct i/o reads and 4k random reads. (Write
performance improvement was small to non-existent.)
Improvement was similar with 8k i/o.
Buffered sequential i/o sees no improvement, because it
does not perform small i/os.
Performance data:
access = file-per-process
pattern = segmented (1 segment)
ordering in a file = random offsets
ordering inter file= no tasks offsets
xfersize = 4096 bytes
blocksize = 100 MiB
nprocs xfsize shortio dio random Read (MB/s)
1 4k no yes no 15.0
8 4k no yes no 73.4
16 4k no yes no 81.1
1 4k yes yes no 16.5
8 4k yes yes no 95.2
16 4k yes yes no 107.3
1 4k no no yes 15.5
8 4k no no yes 73.4
16 4k no no yes 81.2
1 4k yes no yes 16.8
8 4k yes no yes 95.0
16 4k yes no yes 106.5
Note even when individual i/o performance is not improved,
this change reduces the # of network operations required
for small i/o, which can help on large systems.
Signed-off-by: Patrick Farrell <paf@cray.com>
Change-Id: I70050935eaa0a5e98ca437e18e730be4aa0e4700
Reviewed-on: https://review.whamcloud.com/27767
Tested-by: Jenkins
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Reviewed-by: Alexandr Boyko <c17825@cray.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Fan Yong [Fri, 3 Nov 2017 01:22:12 +0000 (09:22 +0800)]
LU-7991 quota: project quota against ZFS backend
This patch enables the project quota feature against ZFS
backend. The project quota patch for ZFS itself will be
landed via https://github.com/zfsonlinux/zfs/pull/6290.
Such patch may be released via zfs-0.7.x (x >= 5).
This patch also cleanup the quota logic for ZFS backend
and sanity-quota.sh
Signed-off-by: Fan Yong <fan.yong@intel.com>
Change-Id: Ic488efe19a6e34a3615811f79fb9ea7954ad9263
Reviewed-on: https://review.whamcloud.com/27093
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Wang Shilong <wshilong@ddn.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Oleg Drokin [Wed, 8 Nov 2017 07:54:57 +0000 (02:54 -0500)]
New tag 2.10.55
Change-Id: I999629a7b3939fb827729e053fc9b52c24ca69ab
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
Steve Guminski [Tue, 7 Nov 2017 12:49:06 +0000 (07:49 -0500)]
LU-10199 utils: disable sanity test 56xb
The new sanity test 56xb introduced by changeset 25851 fails due
to a mismatch in the returned vs. expected value. Disable the test
until it can be fixed.
Test-Parameters: trivial
Signed-off-by: Steve Guminski <stephenx.guminski@intel.com>
Change-Id: I12b88eccdf7954ae854133b48cadf7054c8f683e
Reviewed-on: https://review.whamcloud.com/29954
Reviewed-by: James Nunez <james.a.nunez@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Bob Glossman [Wed, 25 Oct 2017 23:53:52 +0000 (16:53 -0700)]
LU-10164 kernel: kernel update [SLES12 SP3 4.4.92-6.18]
Update target and kernel_config files for new version
Test-Parameters: clientdistro=sles12sp3 testgroup=review-ldiskfs \
mdsdistro=sles12sp3 ossdistro=sles12sp3 \
mdtfilesystemtype=ldiskfs ostfilesystemtype=ldiskfs
Signed-off-by: Bob Glossman <bob.glossman@intel.com>
Change-Id: I4b046f0ac64b75545cd0e2a3a44e9117f4d79ef4
Reviewed-on: https://review.whamcloud.com/29793
Tested-by: Jenkins
Reviewed-by: Minh Diep <minh.diep@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Bob Glossman [Thu, 19 Oct 2017 15:25:25 +0000 (08:25 -0700)]
LU-10142 kernel: kernel update RHEL7.4 [3.10.0-693.5.2.el7]
update RHEL 7.4 kernel to 3.10.0-693.5.2.el7
Signed-off-by: Bob Glossman <bob.glossman@intel.com>
Change-Id: I6f22d9d96b86d7bd860a400cd803fad26a6b5d1a
Reviewed-on: https://review.whamcloud.com/29727
Tested-by: Jenkins
Reviewed-by: Yang Sheng <yang.sheng@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
James Nunez [Mon, 23 Oct 2017 19:28:13 +0000 (13:28 -0600)]
LU-10152 tests: reformat after conf-sanity test 99
conf-sanity test 99 reformats an OST with options that need
to be cleared to allow future tests to complete successfully.
Reformatting the file system will clear the OST format options.
Signed-off-by: James Nunez <james.a.nunez@intel.com>
Change-Id: I32be4bab5a22b9e5f939c6478c96255db30dc0eb
Reviewed-on: https://review.whamcloud.com/29717
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Casper <jamesx.casper@intel.com>
Reviewed-by: Wei Liu <wei3.liu@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Nathaniel Clark [Mon, 23 Oct 2017 14:52:57 +0000 (10:52 -0400)]
LU-10150 build: Build with ZFS 0.7.3
Update ZFS and SPL version to 0.7.3
Changelog: https://github.com/zfsonlinux/zfs/releases/tag/zfs-0.7.3
Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: I88f0f2601262c0c535431d256a159d9e9d6ebd75
Reviewed-on: https://review.whamcloud.com/29712
Tested-by: Jenkins
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Sebastien Buisson [Tue, 5 Sep 2017 15:04:56 +0000 (00:04 +0900)]
LU-9946 nodemap: have fileset on default nodemap.
When a directory is defined as fileset on the default nodemap entry,
all clients that fall into default will be imposed subdirectory
mount on this directory.
Signed-off-by: Sebastien Buisson <sbuisson@ddn.com>
Change-Id: I3491bce4f8c2011629e56494bf1a0de57f19829d
Reviewed-on: https://review.whamcloud.com/28858
Tested-by: Jenkins
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Emoly Liu <emoly.liu@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Andreas Dilger [Mon, 30 Oct 2017 18:41:55 +0000 (14:41 -0400)]
LU-8174 mdt: remove use of typedef mds_reint_t
Replace the use of mdt_reint_t with enum mds_reint_op.
Remove the old mds_reint_t and mdt_reint_t since they were only used
in one place in the Lustre code and are unlikely to cause additional
patch breakage. The majority of references are in wireshark.
Test-Parameters: trivial
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I3932db8e6dc9ac83325900d3f382c648ac57b8c0
Reviewed-on: https://review.whamcloud.com/27494
Tested-by: Jenkins
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Ben Evans <bevans@cray.com>
Steve Guminski [Thu, 9 Mar 2017 12:19:44 +0000 (07:19 -0500)]
LU-6051 utils: allow lfs_migrate to handle hard links
Detect files that are hard links to files that have already been
migrated, and skip them. This prevents unnecessary work and speeds
up the migration process. Sanity test 56xb has been added to test
the new behavior. A new option '-S <stripe_size>' has been added
to lfs_migrate, and allows the test to be run with a single OST.
Previously, the default behavior was to skip migration of any
file name that contained hard links other than itself. Therefore,
the file in the link set would not be migrated at all. The '-l'
option could be used to override. However, there was no attempt to
detect which file names were hard linked to already migrated files,
so the file would be migrated multiple times.
The new behavior automatically migrates the file once and skips
other file names in the link set.
Test-Parameters: trivial
Signed-off-by: Steve Guminski <stephenx.guminski@intel.com>
Signed-off-by: Evan Felix <evan.felix@pnnl.gov>
Change-Id: I43678b34931507c0fe30c1c40ca2dc2d47f86aeb
Reviewed-on: https://review.whamcloud.com/25851
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Henri Doreau <henri.doreau@cea.fr>
Andreas Dilger [Mon, 30 Oct 2017 16:19:43 +0000 (12:19 -0400)]
LU-7813 lov: rename LOV_MAGIC_V*_DEF to *_DEFINED
Rename LOV_MAGIC_V1_DEF to LOV_MAGIC_V1_DEFINED so that it is not
confused with "_DEFAULT" as one might expect.
Test-Parameters: trivial
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: Idb98fc24974a105077bf75bb122006fad34d69e2
Reviewed-on: https://review.whamcloud.com/18888
Tested-by: Jenkins
Reviewed-by: Steve Guminski <stephenx.guminski@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
John L. Hammond [Tue, 24 Oct 2017 15:28:57 +0000 (10:28 -0500)]
LU-10086 libcfs: use dynamic minors for /dev/{lnet,obd}
Request dynamic minor allocation when registering /dev/lnet and
/dev/obd. Remove the obsolete create-device-if-not-found code from
register_ioc_dev().
Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: I59c70912b4729f58a76dc6107b3e1d7379c6d7a3
Reviewed-on: https://review.whamcloud.com/29741
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Nathaniel Clark [Thu, 21 Sep 2017 17:09:18 +0000 (13:09 -0400)]
LU-10007 pacemaker: Use lctl and load lustre
When scripts are started, load lustre module.
Use lctl instead of directly accessing health_check file.
Test-Parameters: trivial
Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: I4a81248939464e498006dc2c4072d44685add018
Reviewed-on: https://review.whamcloud.com/29144
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Andreas Dilger [Thu, 6 Jul 2017 06:55:08 +0000 (00:55 -0600)]
LU-9611 lov: allow lov.*.stripe{size,count}=-1 param
Since LU-7344 patch http://review.whamcloud.com/16930 was landed,
lov_stripeoffset_seq_write() and lov_stripecount_seq_write() have
incorrectly checked that lov.*.stripecount and lov.*.stripeoffset
are not negative. In fact they can both be "-1" to indicate that
the filesystem-wide default value should be used. These parameters
can also be set internally if using "lfs setstripe -c -1 $MOUNT"
or "lfs setstripe -i -1 $MOUNT" to set the system wide default,
generating console errors on the MDS from class_process_proc_param():
lov.: error writing proc entry 'stripecount': rc = -34
lov.: error writing proc entry 'stripeoffset': rc = -34
Fix these functions to allow "-1" as a valid value.
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I295d2591d535b039634689524a29725e963ebbe5
Reviewed-on: https://review.whamcloud.com/27946
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Jian Yu <jian.yu@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Ben Evans [Tue, 24 Oct 2017 15:34:06 +0000 (11:34 -0400)]
LU-7988 hsm: wake up cdt when requests are empty
The coordinator only runs once per second, we need a mechanism
to send more work when everything is done (cdt_request_count
goes to zero)
Without this, there is a hard limit of max_requests per sec
requests that can be processed, causing performance issues
with small files.
Signed-off-by: Ben Evans <bevans@cray.com>
Change-Id: I563666a1a3e53f0ec5908de593de71ff4d925467
Reviewed-on: https://review.whamcloud.com/29742
Reviewed-by: Frank Zago <fzago@cray.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Sergey Cheremencev <cherementsev@gmail.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Nathaniel Clark [Fri, 6 Oct 2017 16:49:23 +0000 (12:49 -0400)]
LU-10098 scripts: Fix mounted check in Lustre RA
The "Lustre" resource agent for pacemaker can mis-identify a resource
as being mounted if it's mountpoint is a substring match for anything
else in /proc/mounts. Change the lustre_is_mounted() function to
check to make sure it's a lustre fs mounted at mountpoint and the
"source" (i.e. device) is the target we expect.
Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: Ib877b0dc3d3ce0d93fd4663aa2418ac21d670428
Reviewed-on: https://review.whamcloud.com/29351
Tested-by: Jenkins
Reviewed-by: Malcolm Cowe <malcolm.j.cowe@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Olaf Faaland-LLNL <faaland1@llnl.gov>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Bruno Faccini [Mon, 9 Oct 2017 15:21:50 +0000 (17:21 +0200)]
LU-9994 obdclass: fix llog_cat_id2handle() error handling
Patch for LU-9153 ("llog: consolidate common error checking") has
introduced a regression in llog_cat_id2handle() error handling
path by adding llog_cat_process_common() common routine additional
call in sequence and allowing it to return zero even when catalog
entry was invalid and it had cleared it instead to populate
llog_handle, thus causing an exception when handle was later
dereferenced in llog_process_thread().
Signed-off-by: Bruno Faccini <bruno.faccini@intel.com>
Change-Id: I50153b931e3c1567bfe9c15564ba29fabe3a2d4c
Reviewed-on: https://review.whamcloud.com/29370
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
John L. Hammond [Tue, 17 Oct 2017 20:32:52 +0000 (15:32 -0500)]
LU-10132 llite: handle xattr cache refill race
In ll_xattr_cache_refill() if the xattr cache was invalid (and no
request was sent) then return -EAGAIN so that ll_getxattr_common()
caller will fetch the xattr from the MDT.
Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: Ia9ec7424e8786d92bdecf4897fafcf71d5061fb1
Reviewed-on: https://review.whamcloud.com/29654
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Gu Zheng [Wed, 18 Oct 2017 19:10:53 +0000 (15:10 -0400)]
LU-9951 lustre_compat: add wrapper function for posix_acl_update_mode
posix_acl_update_mode is introduced in kernel 4.9, add the precheck
of it, if not exists, use inline wrapper function instead.
Change-Id: I8a1476d611c387a88efef5d5b8707edf5feacca8
Signed-off-by: Gu Zheng <gzheng@ddn.com>
Reviewed-on: https://review.whamcloud.com/28871
Reviewed-by: Wang Shilong <wshilong@ddn.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Tested-by: Jenkins
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Jan Kara [Wed, 18 Oct 2017 16:26:19 +0000 (12:26 -0400)]
LU-9558 llite: port lustre to unified handling of bdi
For the linux 4.12 kernel the bdi handling was unified for all
file systems. This was done by allocating struct backing_dev_info
separately instead of embedding it inside superblock. For older
kernels we move all the bdi handling lustre does to the function
super_setup_bdi_name() which is what exist in the latest kernels.
Linux-commit:
9594caf216dc0fe3e318b34af0127276db661241
Change-Id: I5af60ea3661e3d3a97973fd99a79c28dcd1ce1cc
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/28511
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Alex Zhuravlev [Fri, 19 Oct 2012 14:18:05 +0000 (18:18 +0400)]
LU-7251 osp: do not assign commit callback to every thandle
with OSP there is a risk of getting a lot of commit callbacks.
say, 10K unlinks/sec on 4-striped files could result in 4*10K*5
= 200K commit callbacks. this patch implements another schema:
every OSP registers own callback every second. this should result
in 4*5 commit callbacks in the same situation. in case of forced
sync the commit callback is registered unconditionally.
the patch removes th_tags and th_ctx from struct thandle as they
are not used anymore. this elimintates 3 allocations from every
transaction:
(lu_object.c:1714:keys_init()) kmalloced 'ctx->lc_value': 320
(update_records.c:1217:update_key_init()) kmalloced 'value': 408
(osp_dev.c:1807:osp_txn_key_init()) kmalloced 'value': 4
Change-Id: I460d5eccb585b166423d84d5c142af2e27751d8b
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-on: https://review.whamcloud.com/17270
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
James Simmons [Wed, 18 Oct 2017 17:26:00 +0000 (13:26 -0400)]
LU-9019 ldlm: migrate the rest of the code to 64 bit time
Replace the last cfs_time_current_sec() to avoid the overflow
issues in 2038 with ktime_get_real_seconds(). Reduce the jiffies
usage to the bare minimum which is useage for mod_timer() and
schedule_timeout(). This makes the ldlm totally 64 bit time
compliant.
Change-Id: Iaee92c17d51fdfc55bd26e9e813e30a6ce794856
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/29295
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Alexander Boyko [Thu, 21 Sep 2017 13:13:27 +0000 (16:13 +0300)]
LU-10015 o2iblnd: fix race at kiblnd_connect_peer
cmid will be destroyed at OFED if kiblnd_cm_callback return error.
if error happen before the end of kiblnd_connect_peer, it will touch
destroyed cmid and fail as
(o2iblnd_cb.c:1315:kiblnd_connect_peer())
ASSERTION( cmid->device != ((void *)0) ) failed:
Seagate-bug-id: MRP-4592
Signed-off-by: Alexander Boyko <alexander.boyko@seagate.com>
Change-Id: I83eb5bceeb567acef0316498b936d25d6c6ccd95
Reviewed-on: https://review.whamcloud.com/29134
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Reviewed-by: Doug Oucharek <dougso@me.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
James Simmons [Mon, 9 Oct 2017 14:39:23 +0000 (10:39 -0400)]
LU-8066 obd: migrate to ksets
Lustre's sysfs only uses kobjects but with the introduction of
ksets we can use functionality like kset_find_kobj() and uevents.
Currently lustre is layered as lustre_kobj -> class -> obd device.
This patch changes the obd devices and the top level lustre_kobj
into ksets. The class level is kept as kobjects but are bound to
the top level lustre kset so they searchable and uevents can be
created for them. Also much of the class functionality can be
replaced with what ksets can do. With obd devices now ksets we
can replace lprocfs_kset_register with lprocfs_obd_setup. Some
of the sysfs attributes were not cleaned up so added proper
removal. Reversed what the default sysfs attributes are. This
will be needed for the replacement functionality for
class_process_proc_param().
Change-Id: I3ced5f69ace6a0a9a6bc51957f20a0caecdbafc9
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/28948
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Sonia Sharma <sonia.sharma@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Mikhal Pershin [Thu, 26 Oct 2017 20:41:32 +0000 (23:41 +0300)]
LU-3285 mdc: implement own mdc_io_fsync_start()
DoM lock cancelation may happen in llite and call
cl_sync_file_range() function to flush related data and
it uses DOM component end as limit for data to be flushed.
However related lock and extent are expanded to EOF and
this is asserted in osc_cache_writeback_range().
To avoid this a MDC uses own version of cio_start for FSYNC
and osc_cache_writeback_range() is called on whole DoM object
no matter what start/end are supplied by upper layers.
Test-Parameters: mdscount=1 mdtcount=1 mdssizegb=20 testlist=sanity-dom,dom-performance,racer
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: I044faa95d3664a0448c21e9a2f1c2e5dd3a69cde
Reviewed-on: https://review.whamcloud.com/29813
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Mikhal Pershin [Thu, 26 Oct 2017 19:42:12 +0000 (22:42 +0300)]
LU-3285 osc: remove wrongly applied assertion.
This assertion was removed from master by commit
4311cdaa832 but kept wrongly in dom branch.
Test-Parameters: mdssizegb=20 testlist=sanity-dom,dom-performance
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: I403eaca68fd334feb80c5db8c295eef9dbe171ac
Reviewed-on: https://review.whamcloud.com/29811
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Mikhal Pershin [Thu, 26 Oct 2017 19:13:32 +0000 (22:13 +0300)]
LU-3285 llite: check layout size after cl_object_layout_get
Check that layout size is not zero before doing flush for
DoM object. Also patch does that:
- initializes all values in cl_layout explicitly
in lov_object_layout_get().
- changes cl_dom_comp_size to u64 for future needs, e.g.
importing an existing filesystem image directly.
Test-Parameters: mdssizegb=20 testlist=sanity-dom,dom-performance
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: Ic6ff06ad4022f85686fda238eae34ad38ff2dcd0
Reviewed-on: https://review.whamcloud.com/29810
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Mikhal Pershin [Thu, 26 Oct 2017 19:49:11 +0000 (22:49 +0300)]
LU-3285 lod: don't initialize OSP objects for DoM
Skip OSP object initialization for DoM component in
lod_use_defined_striping().
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: I720eb100198b46974187b6f9d7931650e4f8742b
Reviewed-on: https://review.whamcloud.com/29812
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Mikhal Pershin [Thu, 26 Oct 2017 19:08:31 +0000 (22:08 +0300)]
LU-3285 lfs: handle -L option alphabetically
Move -L option handling in lfs.c to handle it
alphabetically.
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: I6ade41eb8e75df82f0306c89d446955e546f810c
Reviewed-on: https://review.whamcloud.com/29809
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Mikhail Pershin [Thu, 19 Oct 2017 13:11:45 +0000 (16:11 +0300)]
LU-3285 tests: style fixes in DoM tests
Several style fixes in DoM tests and code from review debts.
Signed-off-by: Mikhail Pershin <mike.pershin@intel.com>
Change-Id: I4ee011025a008cfa474db3d1c2f86b2c250483c4
Reviewed-on: https://review.whamcloud.com/29681
Tested-by: Jenkins
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Alex Zhuravlev [Thu, 28 Sep 2017 11:30:55 +0000 (14:30 +0300)]
LU-10041 osd: osd-zfs to choose dnode size
depending on dnodesize property it can be:
legacy (512 bytes), auto (512 bytes to 16K) or absolute
size (512, 1024, 2048, 4096, 8192, 16384).
Change-Id: Iea35d8ae850523440272467320410850821f484c
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Reviewed-on: https://review.whamcloud.com/29242
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Patrick Farrell [Wed, 18 Oct 2017 10:24:41 +0000 (05:24 -0500)]
LU-10131 llite: Update i_nlink on unlink
Currently, the client inode link count is not updated on
last unlink. This is fine because the dentries are all
gone and the inode is eligible for reclaim, but it's still
incorrect. This causes two problems:
1. Inode is not immediately reclaimed
2. i_nlink count is > 0 for a fully unlinked file, which
confuses wrapfs
On last unlink, the MDT sends back attributes. Use the
nlink count from these to update the client inode.
Remove null check inherited from ll_get_child_fid, because
the inode should never be null on an unlink.
Re-enabled test 76, which passes with this patch.
Removed slab allocator tuning from test_76, because slab is
no longer the default Linux allocator.
Signed-off-by: Patrick Farrell <paf@cray.com>
Change-Id: Ib253b5cf3d35188554cf8fc33a8a3d4b8bb237e8
Reviewed-on: https://review.whamcloud.com/29651
Tested-by: Jenkins
Reviewed-by: Ben Evans <bevans@cray.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andrew Perepechko <c17827@cray.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Amir Shehata [Tue, 10 Oct 2017 19:26:56 +0000 (12:26 -0700)]
LU-10089 o2iblnd: use IB_MR_TYPE_SG_GAPS
When allocating fastreg buffers use IB_MR_TYPE_SG_GAPS
instead of IB_MR_TYPE_MEM_REG, since the fragments we provide
the fast registration API can have gaps. MEM_REG doesn't handle
that case.
Test-Parameters: trivial
Signed-off-by: Amir Shehata <amir.shehata@intel.com>
Change-Id: I36dba6f676fdbc60730aed7c50d71f2a6b7c2549
Reviewed-on: https://review.whamcloud.com/29551
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Doug Oucharek <dougso@me.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Alexander Boyko [Wed, 3 Aug 2016 08:12:19 +0000 (11:12 +0300)]
LU-8475 target: use slab allocation
The patch adds kmem slabs for target threads and session info
to improve allocation and better accounting.
Signed-off-by: Alexander Boyko <alexander.boyko@seagate.com>
Signed-off-by: Alexey Lyashkov <alexey.lyashkov@seagate.com>
Change-Id: Ia0a93d410618c5d7724f2dcc86f1bcb9ae32e572
Seagate-bug-id: MRP-2836
Reviewed-on: https://review.whamcloud.com/21654
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
James Nunez [Fri, 6 Oct 2017 19:53:03 +0000 (13:53 -0600)]
LU-10101 tests: correct sanity-quota call to quota_error
sanity-quota test 7e calls quota_error with a "-u"
argument. Input to quota_error should not be prefaced
with "-".
Test-Parameters: trivial testgroup=review-zfs-part-1,review-dne-part-2
Signed-off-by: James Nunez <james.a.nunez@intel.com>
Change-Id: Iac84e3fb2348588a157beefcf4d554b1ac3171ed
Reviewed-on: https://review.whamcloud.com/29358
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Wei Liu <wei3.liu@intel.com>
Reviewed-by: Saurabh Tandan <saurabh.tandan@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Andreas Dilger [Fri, 29 Sep 2017 03:17:15 +0000 (21:17 -0600)]
LU-10046 misc: replace LASSERT() with CLASSERT()
Some code consistency checks are being done at runtime with LASSERT()
when they could be done at compile time with CLASSERT(). This might
miss defects introduced into the code if that particular code path is
not exercised during testing.
Replace LASSERT() with CLASSERT() in such cases.
Style cleanup for related code.
Test-Parameters: trivial
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I8dca903109b7151de59afe17fe9ca311119d1b36
Reviewed-on: https://review.whamcloud.com/29256
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Henri Doreau [Thu, 19 Oct 2017 08:14:18 +0000 (10:14 +0200)]
LU-10141 llapi: integer overflow in llapi_changelog_start
Use the appropriate type to store and check the return value from lseek.
This prevents from misinterpreting high offsets as errors.
Change-Id: I15e92be3454af20ee6611c2a7ddfc1b597d639c2
Signed-off-by: Henri Doreau <henri.doreau@cea.fr>
Reviewed-on: https://review.whamcloud.com/29674
Tested-by: Jenkins
Reviewed-by: Thomas LEIBOVICI <thomas.leibovici@cea.fr>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Stephan Thiell <sthiell@stanford.edu>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Bob Glossman [Fri, 22 Sep 2017 15:29:55 +0000 (08:29 -0700)]
LU-10023 kernel: kernel update [SLES12 SP3 4.4.82-6.9]
Update target and kernel_config files for new version
Test-Parameters: clientdistro=sles12sp3 testgroup=review-ldiskfs \
mdsdistro=sles12sp3 ossdistro=sles12sp3 \
mdtfilesystemtype=ldiskfs ostfilesystemtype=ldiskfs
Change-Id: Ie65afb3d7356c4679f4f37f4af324e955261b5af
Signed-off-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-on: https://review.whamcloud.com/29560
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Yang Sheng <yang.sheng@intel.com>
Reviewed-by: Minh Diep <minh.diep@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Andreas Dilger [Wed, 13 Sep 2017 16:47:07 +0000 (10:47 -0600)]
LU-4705 mdc: improve mdc_enqueue() error message
Include the parent/child FIDs and name in the mdc_enqueue()
debug message.
Test-Parameters: trivial
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I7b84921a52a4650be70fe87eea691ba2217bb3a6
Reviewed-on: https://review.whamcloud.com/28978
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Steve Guminski <stephenx.guminski@intel.com>
Reviewed-by: Yang Sheng <yang.sheng@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
James Simmons [Mon, 9 Oct 2017 14:37:14 +0000 (10:37 -0400)]
LU-9897 utils: remove libcfsutils.a and libptlctl.a
Currently lustre creates many libraries and combines them in
redudant ways. Broke up libptlctl.a and merged debug.c and
portals.c into lctl. The application lustre_rsync pulled in
way too much extra code that is not needed just for the function
obd_initialize(). Instead just call register_ioc_dev() directly
for lustre_rsync. This removes the libptlctl.a/portals.c
dependency. In time the portals.c code can be replaced by the
work from liblnetconfig. Integrated cyaml into liblnetconfig
instead of directly linking cyaml.c into lnetctl. This way
we can take advantage of YAML in the future for lnet selftest
and lustre utilities. Only a small change was needed for lnet
selftest to be dependent on liblnetconfig instead of libptlctl.a.
Change-Id: Ic1caaa01b3faedf90dc7ae8bc26ee40396a52a07
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/28752
Tested-by: Jenkins
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Alex Zhuravlev [Thu, 1 Jun 2017 07:20:12 +0000 (11:20 +0400)]
LU-9578 llite: use security context if it's enabled in the kernel
if it's disabled, then Lustre stop to work properly (can not create
files, etc)
Change-Id: I1e431ec95a2b0613b43893567eb6d1a64ec832de
Signed-off-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-on: https://review.whamcloud.com/27364
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Jenkins
Reviewed-by: Chris Horn <hornc@cray.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Sebastien Buisson <sbuisson@ddn.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Andreas Dilger [Fri, 5 May 2017 23:39:48 +0000 (17:39 -0600)]
LU-9452 ldlm: remove MSG_CONNECT_LIBCLIENT support
Remove old server code that handled liblustre client connections,
marked with MSG_CONNECT_LIBCLIENT and associated code checking for
exp_libclient. Servers will now outright refuse connections from
liblustre clients with a clear message, rather than allowing the
connection and pretending to work. Liblustre client support was
broken and removed years ago.
There are still some liblustre remnants in the code (e.g. blocked
lock handling for LDLM_FL_CANCEL_ON_BLOCK), but that has more
complex semantics and should be removed in a separate patch.
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: Ifbea507e82d758f849db24094c5cc0a8003ebbe5
Reviewed-on: https://review.whamcloud.com/26972
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Ben Evans <bevans@cray.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Andreas Dilger [Wed, 4 May 2016 05:29:42 +0000 (23:29 -0600)]
LU-7990 llite: increase whole-file readahead to RPC size
Increase the default whole-file readahead limit to match the current
RPC size. That ensures that files smaller than the RPC size will be
read in a single round-trip instead of sending multiple smaller RPCs.
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I3bdb1c7f92c546d58951a9e6b783af23c83ebbe5
Reviewed-on: https://review.whamcloud.com/26955
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Patrick Farrell <paf@cray.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
John L. Hammond [Mon, 1 May 2017 21:54:16 +0000 (16:54 -0500)]
LU-9405 utils: remove device path parsing from mount.lustre
In mount_utils_ldiskfs.c remove code that analyzes the device path
(/dev/mdXX, /dev/mdXXpX, /dev/mapper/XXX, /dev/loopX ...) to determine
the device type and replace with use of stat(). Locate the device's
sysfs directory using the /sys/dev/block/<major>:<minor> symlink
rather than globbing. Rename set_blockdev_tunables() to
tune_block_dev() and break into subfunctions to handle setting
md/stripe_cache_size, queue/max_sectors_kb, and queue/scheduler.
Signed-off-by: John L. Hammond <john.hammond@intel.com>
Change-Id: Ibd272bdf2e76bdec4c207c29dff76a96a65ea333
Reviewed-on: https://review.whamcloud.com/26909
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
James Simmons [Tue, 17 Oct 2017 00:40:19 +0000 (20:40 -0400)]
LU-9019 ofd: migrate to 64 bit time
Change fmd_expire and ofd_fmd_max_age to time64_t fields since we
don't need more than seconds resolution. Move several parts of the
code away from jiffies handling since it can be different across a
set of nodes. We leave l_last_used and the stats timeout code alone
since it affects more than the ofd layer.
Change-Id: I505ad9b1c553bf1769241a5920cf146595a3812c
Signed-off-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-on: https://review.whamcloud.com/28976
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Jenkins
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Yang Sheng [Tue, 15 Aug 2017 10:42:09 +0000 (18:42 +0800)]
LU-9814 ldiskfs: restore simple_strtol in prealloc
Since kstrtol needs a null-terminor string so we
back to use simple_strtol in prealloc patches.
Signed-off-by: Yang Sheng <yang.sheng@intel.com>
Change-Id: I331308d830fbeef9c00156bb8c14b43651d66420
Reviewed-on: https://review.whamcloud.com/28553
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Andreas Dilger [Fri, 29 Sep 2017 21:25:04 +0000 (15:25 -0600)]
LU-4923 osd-ldiskfs: dirdata is not needed on MGS
Don't print a warning message if the "dirdata" feature is not enabled
on MGS devices. It is only needed for ldiskfs MDT devices.
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
Change-Id: I1d8ccfc9c60eff128b480ea8efa298c1212c041a
Reviewed-on: https://review.whamcloud.com/29274
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Fan Yong <fan.yong@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Alexey Lyashkov [Thu, 20 Jul 2017 09:06:18 +0000 (14:36 +0530)]
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,
Seagate-bug-id: MRP-4474
Signed-off-by: Alexey Lyashkov <alexey.lyashkov@seagate.com>
Change-Id: I63d480bfc7c6b7599b80ceeec9447b227a1610c8
Reviewed-on: https://review.whamcloud.com/28145
Reviewed-by: Fan Yong <fan.yong@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andrew Perepechko <andrew.perepechko@seagate.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Alexander Boyko [Thu, 15 Jun 2017 14:25:58 +0000 (17:25 +0300)]
LU-4134 obdclass: obd_device improvement
The patch removes self exports from obd's reference counting which
allows to avoid freeing of self exports by zombie thread.
A pair of functions class_register_device()/class_unregister_device()
is to make sure that an obd can not be referenced again once its
refcount reached 0. For target_handle_connect() take a reference for
obd_device during finding it by name.
Fix grant mismatch message
"tot_granted 4194304 != fo_tot_granted".
Signed-off-by: Vladimir Saveliev <vladimir.saveliev@seagate.com>
Signed-off-by: Alexey Lyashkov <alexey.lyashkov@seagate.com>
Signed-off-by: Alexander Boyko <alexander.boyko@seagate.com>
Seagate-bug-id: MRP-2139 MRP-3267
Change-Id: I9cc6860431c6bb7db6983e0d15a5d3d2b564265e
Reviewed-on: https://review.whamcloud.com/8045
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Reviewed-by: Alexey Lyashkov <c17817@cray.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Amir Shehata [Thu, 12 Oct 2017 23:43:08 +0000 (19:43 -0400)]
LU-9990 lnet: add backwards compatibility for YAML config
In 2.10 YAML configuration had a numa block, which was
removed post 2.10. The YAML parser needs to continue handling
the numa block to maintain backwards compatibility.
Signed-off-by: Amir Shehata <amir.shehata@intel.com>
Change-Id: Ic6ff6033631c5bec82323d9f8d5d4f2a19fd8d1b
Reviewed-on: https://review.whamcloud.com/29333
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Sonia Sharma <sonia.sharma@intel.com>
Reviewed-by: Doug Oucharek <dougso@me.com>
Reviewed-by: Olaf Weber <olaf.weber@hpe.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
James Nunez [Mon, 11 Sep 2017 21:16:42 +0000 (15:16 -0600)]
LU-9968 tests: correct stripe index sanity 300g
In sanity test 300g, we set the starting stripe index to MDT 1
and MDT 2 using 'lfs setstripedir -iN' for N = 1 and 2. At the
beginning of the test, we check that there are two or more MDTs
in the Lustre file system being tested. If there are only two MDTs,
then this test will fail when we try to set the starting stripe
index to 2 because the MDT indexes are zero based.
For santiy test 300g only use MDT start index 0 and 1.
Signed-off-by: James Nunez <james.a.nunez@intel.com>
Change-Id: If2c252ad9bb7249aa777764f212ee40523aee82f
Reviewed-on: https://review.whamcloud.com/28935
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Saurabh Tandan <saurabh.tandan@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Wei Liu <wei3.liu@intel.com>
James Nunez [Fri, 11 Aug 2017 00:57:53 +0000 (18:57 -0600)]
LU-9860 tests: Run command on MGS for conf-sanity 33a
When conf-sanity test 33a is run on a Lustre configuration
with separate MGS and MDS, the 'lctl set_param' command for
timeout must be run on the MGS.
For the same test, adding the '--mgs' flag when formatting
the MDS of the second file system should be based on
if there is a combined or separate MDS and MGS.
Test-Parameters: combinedmdsmgs=false testlist=conf-sanity
Signed-off-by: James Nunez <james.a.nunez@intel.com>
Change-Id: Iadb9e0e3ab4f64edba2c0bbc938e64ff3bce9468
Reviewed-on: https://review.whamcloud.com/28478
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Wei Liu <wei3.liu@intel.com>
Reviewed-by: Saurabh Tandan <saurabh.tandan@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Jinshan Xiong [Mon, 16 Oct 2017 18:44:00 +0000 (11:44 -0700)]
LU-3285 tests: add dom into racer test suite
Add dom into racer test and fix a problem where it checks OSTCOUNT
to decide if to use specific layout.
Test-parameters: trivial testlist=racer,racer,racer mdscount=1 mdtcount=1
Signed-off-by: Jinshan Xiong <jinshan.xiong@intel.com>
Change-Id: Ie3245644589f636201d11d9fc2ce86ecec82649e
Reviewed-on: https://review.whamcloud.com/29631
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Mike Pershin <mike.pershin@intel.com>
Mikhal Pershin [Mon, 16 Oct 2017 09:54:01 +0000 (12:54 +0300)]
LU-3285 mds: combine DoM bit with other IBITS
The DoM bit combining with other ibits opens way to several
optimization, like getting IO lock in advance along with OPEN,
size attribute caching at client and others.
Test-Parameters: mdssizegb=20 testlist=sanity-dom,dom-performance
Signed-off-by: Mikhail Pershin <mike.pershin@intel.com>
Change-Id: I442f742b21efba84a0c61501f4877a36c7e9d572
Reviewed-on: https://review.whamcloud.com/28024
Tested-by: Jenkins
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Bob Glossman [Thu, 7 Sep 2017 19:37:27 +0000 (12:37 -0700)]
LU-9956 kernel: kernel upgrade [SLES12 SP3 4.4.82-6.3]
Minor linux version upgrade, but SP2 and SP3 use linux 4.4 versions.
Some new kernel patches, a few revised ldiskfs patches.
All new target and config files.
Some autoconf changes to adapt to new or altered kernel APIs.
Test-Parameters: clientdistro=sles12sp3 testgroup=review-ldiskfs \
mdsdistro=sles12sp3 ossdistro=sles12sp3 \
mdtfilesystemtype=ldiskfs ostfilesystemtype=ldiskfs
Change-Id: I99e2b6848197ea19402fa415fdb562d03e87d947
Signed-off-by: Bob Glossman <bob.glossman@intel.com>
Signed-off-by: Yang Sheng <yang.sheng@intel.com>
Reviewed-on: https://review.whamcloud.com/28910
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Minh Diep <minh.diep@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Qian Yingjin [Thu, 29 Jun 2017 09:03:44 +0000 (17:03 +0800)]
LU-9140 nrs: measure the runtime of dd directly
This patch changes the way to measure the runtime of "dd". Instead
of parsing the output of "dd", we use date command to calculate
the runtime of dd directly, avoiding the parsing failure caused
by changed output format of "dd".
Change-Id: Ibd2e3963f791404ee927981238227012cf4dbf2c
Test-Parameters: trivial testlist=sanityn
Signed-off-by: Qian Yingjin <qian@ddn.com>
Reviewed-on: https://review.whamcloud.com/27878
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: James Nunez <james.a.nunez@intel.com>
Reviewed-by: Minh Diep <minh.diep@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Chris Horn [Fri, 13 Oct 2017 18:58:42 +0000 (13:58 -0500)]
LU-10119 scripts: Correct shebang/hashpling format
Shebang/hashpling should not have a space between the number sign and
exclamation mark.
Test-Parameters: trivial
Signed-off-by: Chris Horn <hornc@cray.com>
Change-Id: I4a31d7dd7579bfaf231284c678e4100acea77d9b
Reviewed-on: https://review.whamcloud.com/29605
Tested-by: Jenkins
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Tested-by: Maloo <hpdd-maloo@intel.com>
Alexander Boyko [Fri, 13 Oct 2017 08:57:49 +0000 (04:57 -0400)]
LU-8344 test: fix sanity 256
The test error
Changelog catalog has wrong number of slots 1
is a result of the debugfs dump happaned before a previous
changes were commited to a disk.
The patch adds mds sync before debugfs command.
Also it fixes temp file removal.
Signed-off-by: Alexander Boyko <c17825@cray.com>
Change-Id: Ic14a58956642f419b0f6d695027f88a0cad9fd39
Test-Parameters: trivial testlist=sanity
Reviewed-on: https://review.whamcloud.com/29598
Reviewed-by: Sergey Cheremencev <cherementsev@gmail.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: James Simmons <uja.ornl@yahoo.com>
Wang Shilong [Mon, 25 Sep 2017 12:35:26 +0000 (20:35 +0800)]
LU-10029 osd-ldiskfs: make project inherit attr removeable
Inherit attribute should be clearable now
Signed-off-by: Wang Shilong <wshilong@ddn.com>
Change-Id: I878fde0dc134c9820436ee80979d87e6dacfb70d
Reviewed-on: https://review.whamcloud.com/29189
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Niu Yawei <yawei.niu@intel.com>
Reviewed-by: Li Xi <lixi@ddn.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Henri Doreau [Wed, 23 Aug 2017 15:16:25 +0000 (17:16 +0200)]
LU-9416 hsm: add kkuc before sending registration RPCs
This avoids a situation where the registration completes and the CDT
sends HSM actions just before the kkuc registration happens. In this
case the client drops the actions because there are no CT pipes in the
kkuc list.
Change-Id: Icbd6575f04c0ca7e8f731ee8481ec72a9ff4f2e1
Signed-off-by: Henri Doreau <henri.doreau@cea.fr>
Reviewed-on: https://review.whamcloud.com/28751
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Faccini Bruno <bruno.faccini@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
Nathaniel Clark [Thu, 5 Oct 2017 11:43:26 +0000 (07:43 -0400)]
LU-9752 man: Reference zgenhostid instead of genhostid
In ZFS 0.7.0, they added zgenhostid(8) to be used in place of
Redhat's genhostid, so that there would be a platform agnostic
way to generate /etc/hostid.
Test-Parameters: trivial
Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: I691266d04f91d5fa7c50b72948c801afa69d647d
Reviewed-on: https://review.whamcloud.com/29327
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Bob Glossman <bob.glossman@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Mikhal Pershin [Sun, 11 Dec 2016 17:16:25 +0000 (20:16 +0300)]
LU-3285 mdt: use generic grant code at MDT
Use grants at MDT for Data-on-MDT needs.
Add parameter to reserve part of available space
for metadata and never grants it to clients.
Test-Parameters: mdssizegb=20 testlist=dom-performance
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: I2612352062871e4edd3817f32e7d96cb95a0a52b
Reviewed-on: https://review.whamcloud.com/28021
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Mikhail Pershin [Thu, 21 Aug 2014 10:23:33 +0000 (14:23 +0400)]
LU-3285 test: add Data-on-MDT tests and fixes
- add test for basic DoM functionality in sanity.sh
- add test to read/write many files with small chunks of data,
it is used for performance comparision.
- the sanity-dom.sh is added to test Data-on-MDT.
It contains specific sanity tests and calls sanity.sh and
sanityn.sh with limited set of test to cover the same cases
as OSC.
- fixes for DoM code for issues revealed by tests.
Test-Parameters: mdssizegb=20 testlist=sanity-dom,dom-performance
Signed-off-by: Mikhal Pershin <mike.pershin@intel.com>
Change-Id: I17fbbf8e913cc14043703969d01ac65e6828fcc6
Reviewed-on: https://review.whamcloud.com/28020
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>