From patchwork Sun Nov 27 06:26:39 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Haynes X-Patchwork-Id: 9448713 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C6BAB6071C for ; Sun, 27 Nov 2016 06:27:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B049220855 for ; Sun, 27 Nov 2016 06:27:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A508422376; Sun, 27 Nov 2016 06:27:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.8 required=2.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2ABC720855 for ; Sun, 27 Nov 2016 06:27:52 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753079AbcK0G1v (ORCPT ); Sun, 27 Nov 2016 01:27:51 -0500 Received: from us-smtp-delivery-194.mimecast.com ([63.128.21.194]:28986 "EHLO us-smtp-delivery-194.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753222AbcK0G1s (ORCPT ); Sun, 27 Nov 2016 01:27:48 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=PrimaryData.onmicrosoft.com; s=selector1-primarydata-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=oURpMmE/5zFKUnEmb+AiqkH7yQf9Wa3x+8T8Z8+eg3I=; b=V+pV4BBW1g3JAL0edUeRxKmHEDjLKlxEtcT3ppKnNl2dPzBtZ9XQSbbogDhiTd8gkcWSfBHVoalDFHcXK2M9FrUIFIjWavLuMBDOLXFlHMq/bnDU0fy/5wNAVcNlriEcaf7hrtfSnqjpsZ3SCYoWD0QeYcH1zb6CgvH0krt8XpA= Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02lp0018.outbound.protection.outlook.com [216.32.180.18]) (Using TLS) by us-smtp-1.mimecast.com with ESMTP id us-mta-66-SEfZasqAMY6QAJcG9seBPg-5; Sun, 27 Nov 2016 01:27:37 -0500 Received: from jhereg.localdomain (73.202.55.195) by BN6PR11MB1364.namprd11.prod.outlook.com (10.173.33.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.747.10; Sun, 27 Nov 2016 06:27:26 +0000 From: Tom Haynes To: "J. Bruce Fields" CC: Linux NFS Mailing list Subject: [PATCH pynfs 10/12] FFLS1: Simulate LAYOUTSTATS for 20 small file creations Date: Sat, 26 Nov 2016 22:26:39 -0800 Message-ID: <1480228001-64821-11-git-send-email-loghyr@primarydata.com> X-Mailer: git-send-email 2.3.6 In-Reply-To: <1480228001-64821-1-git-send-email-loghyr@primarydata.com> References: <1480228001-64821-1-git-send-email-loghyr@primarydata.com> MIME-Version: 1.0 X-Originating-IP: [73.202.55.195] X-ClientProxiedBy: DM2PR07CA0047.namprd07.prod.outlook.com (10.141.52.175) To BN6PR11MB1364.namprd11.prod.outlook.com (10.173.33.8) X-MS-Office365-Filtering-Correlation-Id: 9e632929-e376-46a7-45b1-08d4168e74d5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN6PR11MB1364; X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1364; 3:1t4cvKmd9uvJ9DgAjTrObDr248/SyWNZXwuo1NzcT2uF612BCGRddWsTz6oMPoLENxlSGqKr8v1uUO2B9RN0ehEyL2FBS2IsQ+X/KtBkWNVKEL3usBJQRXOJnOLWs8R0meJCtBkXV+pInrhAlnDzikzg0rNEIGqbo+kzrSlZHo1uwS+nJlWui7LxPc3Mmj2g4qPstQy98MCpCAoZsqes3wPeoHQH31idw6VByTa8RIMHNf4kFKQ4GNegYrPO7icBMN9+lKTAq4kZgi9o+RpCjQ== X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1364; 25:pulLLmwv67HOB4GdMRmBqQSY1bqRHLqYbJgAgb8ypu2wTdDcPuP5OgQ7ysuL+K6hcsV4XMyUf3ucfxq9MTlWhitMqBaE5ST7ODfueUw+/DHCIRAZT506hws0RnxsCGUdq7ma+WMlTBCOysYMvH7+QnK9e+2tyvnEwjzntTsVuJ8xCx4kyaffF7vCw77AdLjBiw3N0n/vNo7skYnaxygEDIXXGatWIRW0C9nrFHmtT9ovkw7drff/T1BKP4kuv/Yww2QMQ5C3WprceSbM/SWL7KnnHXASpLLDrV5HsZq/kzCsAY+DEzLWl4BKB2PfkCayUP7b3MRaFZoIFNOX2/YnIgjLo1w7iBs/VcOe7Mq3XETKwNR/f1EpdsqA2Wu3gmql0yuF6aznjulD0gz58GDhvLeZOtZfsoBL9dw5oPycLPFxFvWZcc1+v28ATz07z9IH0CQuCb6WgBg1kan59YT0WAUOBIkLeMyQofd01p6J12zCHxoRlQBxNz4mTy9NnE5p14F1c3l0UEv4Z+dCDcrF/s7JLH/xVIkAIYgPyPI/NzWiT5eXT47VuLJkMu1pA8oCR50ebTzQNOYRWxvQbehUUvi+/T0tdx7+PNVypL0N2UwhTJyS2SGoFJT4D6TFkFzv2VyBtqLlx/Ui8I3dNmqBRwpaQplEeOQ5l5BUtxUUhox5krm5mxrzb4lYVisy6u2eBfaV7WOwyRuQyZzluml8P5E/HYQw6XPpSF/3GkNTgawMEUjQjliGecTeTXFf0Hd3 X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1364; 31:eMogWSHZlrqmjORjcGCySEd4UtObhFLTTfoaDhIeWeqFZhrp5Ei+P6daqL9sUt5hcQcJ6bbfgtScYA66b+KK+mgV7uA1iE3z1gPvFcfHFOz98ymSFvDeut578W3TFE38MICzXB6Fsyr/Q97ExJQeQeSO8K7nXlZNdzkvagOQ5qnX1dRmUrUvSF9iVzp8uZR5BIeJoqIp6wCC/WQoCzLijjlyiRRSbJ57/7B/TA8oA2ce+HC20AXE7WCAxgtcdPFoyVxuqfaCp63Nkrg5MfS+6g==; 20:C93v8FCmfp1gEmC/wyTQiSlCCNKx8KSE1rCxJqOcTWH1V4UDLCaVcBVxGPYDGC2xWhfxNygniEDWoQgTrYMOVP8yZssa+zNbAfWRjxAgEfjiMDgujn65CXCJaJxLQyEvgNeFUX7D7qHPT8/8C46/MM+/Ru8I+l6ea30Dz7Cy4ls= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6060326)(6045199)(6040361)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041248)(6061324)(20161123560025)(2016111802025)(20161123555025)(20161123564025)(20161123562025)(6043046)(6042181); SRVR:BN6PR11MB1364; BCL:0; PCL:0; RULEID:; SRVR:BN6PR11MB1364; X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1364; 4:dg9neEa2DX+A1unRqdm8zIWEgIClDJ+UkG4eNsyotC5u4uKaYgJAfgEB8i8zJ06B8ePR8cUliehjlZlDdQPpTbWnYul93AUsA5q8KdAMGIQ/7uATN7inYnC1bHBHs3gzlkXieRNbsVeY3glN134GfZC0irtxlU1Y3IrF7IleqU5J2acoA2bjOfYybf2De210oVj+tgqM4sF6nQs5DakxP2wW0jcTLzGwIT+S+PncP5zd2i4Fo3vd2esrzk7iPV2saUfTTE3lHOEbnzS9/3jP7dUJaMXvwqjIxjaqrQrbWGyNmfphUuRodYwI1jYYg3IOm5E9JLMLt6qs8mJmHQtP7g4x/mmno0QIT+c954JX04ZR8G25kCdbqZcxtjiRCFyCeWpMQKAIom+zoEHTvSTFpHcZ02TVybmaPRz878J+LhSjxM5DviYXZ26TJJye7bpX+ZDi+iOQl/VLwBs0C8cUkxLSQjJXmPACXZndv7mW1zTyMDNNVfEtIj5ZLYv+JTzAMyaH/iJNd2S/RKDsK1ZI/BRmHtvTmK/l/6YlZq6tcpBLCqebIe+++RfUHcFNiZlJe3lqc+cXpULnOfqkKL4XzH0KF75JEq5e0fHSGdKhmNDOrPQYE4YZyo30HByEJ6pwQtkTxYXJPnLK/w+xEs3eD/yvxwZ4uWVKoApqSz/ir7i5VmhXR96qyylQ3Ox9Qin5 X-Forefront-PRVS: 0139052FDB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(4630300001)(6009001)(7916002)(199003)(189002)(50986999)(86362001)(5003940100001)(68736007)(305945005)(7736002)(7846002)(105586002)(101416001)(97736004)(42186005)(92566002)(76176999)(36756003)(66066001)(38730400001)(47776003)(110136003)(33646002)(106356001)(733004)(2950100002)(50466002)(8676002)(6916009)(6666003)(81166006)(81156014)(4326007)(50226002)(5660300001)(48376002)(2906002)(6116002)(3846002)(6486002)(189998001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR11MB1364; H:jhereg.localdomain; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR11MB1364; 23:6V7mplx919sfy7AAnDo3CxVchyCRqYNR0pWCEAh8x?= =?us-ascii?Q?f8tIabMtWROOVJWknSOIrFgGGGOgNsBzQ1tKCc+BgF60QdFX589rfk0Az5Xl?= =?us-ascii?Q?Gt5W2Z5e5Z3pj9hmBmo6VWw97W+rRJX8jmFl5pub0XC6q+Kem2BbwUkb0rmo?= =?us-ascii?Q?jyAjGRgygWgMZiLL85tF2ZaZmI/vnQJi7wibxxy5cCgS+ndUu/RpT7HgF7CD?= =?us-ascii?Q?kBHXdmcQ7o5vWaRQT1MhW2rEOh5+nunB2pH72QeBW1NUGmixDx4urO0Pp2Vf?= =?us-ascii?Q?21I255FrnCpMDmmKVBNz3PaM0CXOZVEA3+iCuiy1Muq4P5Eo4t7zFnFHKTve?= =?us-ascii?Q?O5qllzi+PJwZMwD2NvKvqqsmQkB6o6A4AufceoSnEckD5KjneKfcu1F49gUE?= =?us-ascii?Q?9bH+5RG3UaXKQhHA31V763cWXfuMSatHKyjGJTCoDC5rqlQuB16rWc2sNKTf?= =?us-ascii?Q?Y22mBKtn6duHQnyR/hF8p/KhuTqLAJSX+E1+bs42Zd1RoC5/IYtCSBYdB87s?= =?us-ascii?Q?9MNK5urOVLdu1j27fqdgAoLFLduMD0kJY/GOE0jWGjPMUnAgtTnV/42uQx62?= =?us-ascii?Q?XNFt2i3YXZ/86Ae1JKqxNrEiKEjPyQ+qvtxPr9vTuj3HM2w5kxFAyfXtNTwD?= =?us-ascii?Q?V3wphFJlL5EQDowBEhs/7Fywaaj5UYr7YDjab5Twmq16bQ7W5wiuRf1koidJ?= =?us-ascii?Q?6aniWUeolkVYJxeTZVLjtrTS3SmSbu1SycjRKSeFzua/17HMHABH3mWFDYD8?= =?us-ascii?Q?vwppOy0bTqJkLBl0JHtsZElkymyD/NHZnOnsbTnt6XNATDrtRcIUYGdK4yx3?= =?us-ascii?Q?UaCLCiMeD3uLNjrj+rH+ksjkg0JGR9XTo6ygYxoD9f/35OA2Wa6uq8UK9rgx?= =?us-ascii?Q?HTc8pb1mrjJ410SuHR51f2fW/s5lXiN9MKHJ1AVsScMh5gFXQ7M/SJrgtLRC?= =?us-ascii?Q?hKYasGD9dNuNhgOQ7SrlqY6W94NtTRBL4De4nzIQ9xbRDlRCm1XWspTkTVHP?= =?us-ascii?Q?ZuK8WiSfrvuEEi1lILLnMMURZSh9GDYiXKCDiCPNc+Bdg=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1364; 6:/QNzvLVHkiKJYZSJe5O2iy2f8dMdOJ1XQbj+fLyPaz0kE0OKzTDsUUB1rnKz2VXJT0uc44U8/pBtQiJQkjVPbmJbKbrTvdqn3uu7z0NsOaJ000F3IfgTazNe3HXfYAeAycdb9/LwqcjYu7TBBoFVVFGdWJHYtPmclLIeIjtlgjQDNze3wzMrj4Q+5zIEUBiqjpC/Z9qFU3lULdMQWvO7IqQE8PjMf2+lCS4bq+grO0U6v/r+v1Nn3cZLntreUSmZE6NwB/sreYvkW1ZbYWk4FgG4udjvYTOs0EVBxmL7I35J97UM2xOqLpKFE9Gzhsp8z1LqUhitIG0dNVFLYt+p6raq0dvrR4TWavwNalCJtvKmCWYscVL+jnpwlvdgsaGa940Q10J4d8Czs4++4Fm2d1dKu/sD5J+JcM8/3/C4ve0ysXecVrxy/7TmDeBtZFSV7aNixFk6kGPblPnINr5HAvKk4ONuwfisKC5FsH7eqvo=; 5:TQWMIzmnXHc972bnyhWZ87BFiwtDjciwh4dPaf/j5DN2KRR3nk0YrokB3LsKImBbeP91VybNcC9eIB2d2zwOeMRQGBBnBGg7xGo/qJoKhG9ZfbcpVy12//tPnF6IeucbIPWfXWkbIKzVFvL0AuOyUEbuB14qDxmYodXNFwHk0q8=; 24:mSNuwE8BQzNKKr3wW3yxCtRpPmvEjdXPrGH0TL/oQW2aqstaRDxk3vVbtqzBZR9T1HG+93+wCFfl8xYPg+FAlX19ye2x1ZMpsPknFdfidP8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR11MB1364; 7:89z/BZO83Xvuag8DD6uwfjFSYUb3a/hUYYbafnQhnsyqZtJrIrH9TBvaRSHwzj4jpuQMSsbpExnh0lRdK8DNZBDs+BcP7LL/x44w6KjMYmriniCCPj+lOs9Mi0me7sAxOSDwfjBERiqrGfD1dqnrYhMWEKkFBmEj5oVoPNJ3FUxo8aajW3H3qVk2cQjxzdGpO2jLksYpRflrmzJL+Fj6wdOIUoh1b6tsIjMXKfgpoaGdkYJh5TpmWxw++WAbGuxb3E9Zo/H4lRfN5dowYX5aRNa+BneI2AJQwWWp17R4dkHZm5qFYNRFoQQvtc7GsD84Ki0M7kGQSj3ogZZ/0cHjXOyuTNZhffCGmYqldcL3WCX3yav29UWKyK9eMK7hGqF+2RcXMFKqEtGOSYxi/S7ZKIZCAPI1E5beC3kPuH2oL/58EPLDfRY2V92LtlBUCMTN3W95AjTDK1c4Wjhz6QCgLA==; 20:Ip3Xxvo7d2eCPvaJz50BggSLp8a+3OEIjsKprnqCTHdXihyviyQ7ogrnzIMzqUxDuAKQZozDznq6O5zKw9iualN/oPorbp5pAfNUDcGRC2ng9NwS1tuD+gi7kV7DKGlT9LmpMmn48nfesh4zPISmpCOlzwav9GNpqRK8t0EIMEU= X-OriginatorOrg: primarydata.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Nov 2016 06:27:26.3360 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB1364 X-MC-Unique: SEfZasqAMY6QAJcG9seBPg-5 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Tom Haynes --- nfs4.1/server41tests/st_flex.py | 84 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/nfs4.1/server41tests/st_flex.py b/nfs4.1/server41tests/st_flex.py index fdcfd32..6398592 100644 --- a/nfs4.1/server41tests/st_flex.py +++ b/nfs4.1/server41tests/st_flex.py @@ -3,11 +3,13 @@ from xdrdef.nfs4_type import * from xdrdef.nfs4_pack import * import nfs_ops op = nfs_ops.NFS4ops() -from environment import check, fail, create_file, close_file +from environment import check, fail, create_file, close_file, open_create_file_op from xdrdef.nfs4_pack import NFS4Packer as FlexPacker, \ NFS4Unpacker as FlexUnpacker from nfs4lib import FancyNFS4Packer, get_nfstime +current_stateid = stateid4(1, '\0' * 12) + def testStateid1(t, env): """Check for proper sequence handling in layout stateids. @@ -321,3 +323,83 @@ def testFlexLayoutTestAccess(t, env): res = close_file(sess, fh, stateid=open_stateid) check(res) + +def testFlexLayoutStatsSmall(t, env): + """Open 20 "small" files and simulate LAYOUTSTATS for them + 1) OPEN, LAYOUTGET + 2) GETDEVINFO + 3) LAYOUTRETURN, CLOSE + + FLAGS: flex + CODE: FFLS1 + """ + lats = [93089, 107683, 112340, 113195, 130412, 138390, 140427, 158824, 193078, 201879, 391634, 404757, 2201181, 2232614, 2280089, 2296343, 2341763, 2392984, 3064546, 3070314] + durs = [3387666, 3439506, 3737081, 4448315, 4380523, 4419273, 4419746, 5903420, 5932432, 5932938, 7573082, 11085497, 11125274, 11126513, 13720303, 15990926, 16020425, 16020948, 20181628, 20213871] + + if len(lats) != len(durs): + fail("Lats and durs not same") + + sess = env.c1.new_pnfs_client_session(env.testname(t)) + + for i in range(len(lats)): + open_op = open_create_file_op(sess, env.testname(t) + str(i), open_create=OPEN4_CREATE) + res = sess.compound( open_op + + [op.layoutget(False, LAYOUT4_FLEX_FILES, LAYOUTIOMODE4_RW, + 0, 0xffffffffffffffff, 4196, current_stateid, 0xffff)]) + check(res, NFS4_OK) + lo_stateid = res.resarray[-1].logr_stateid + fh = res.resarray[-2].object + open_stateid = res.resarray[-3].stateid + + if lo_stateid.seqid != 1: + fail("Expected stateid.seqid==%i, got %i" % (1, lo_stateid.seqid)) + + layout = res.resarray[-1].logr_layout[-1] + p = FlexUnpacker(layout.loc_body) + opaque = p.unpack_ff_layout4() + p.done() + + # Assume one mirror/storage device + ds = opaque.ffl_mirrors[-1].ffm_data_servers[-1] + + stats_hint = opaque.ffl_stats_collect_hint + + deviceid = ds.ffds_deviceid + + ops = [op.putfh(fh), + op.getdeviceinfo(deviceid, LAYOUT4_FLEX_FILES, 0xffffffff, 0)] + res = sess.compound(ops) + check(res) + + gda = res.resarray[-1].gdir_device_addr + + p = FlexUnpacker(gda.da_addr_body) + da = p.unpack_ff_device_addr4() + p.done() + + rd_io = io_info4(0, 0) + wr_io = io_info4(1, 16384) + + rd_lat = ff_io_latency4(0, 0, 0, 0, 0, nfstime4(0, 0), nfstime4(0, 0)) + wr_lat = ff_io_latency4(1, 16384, 1, 16384, 0, nfstime4(0, lats[i]), nfstime4(0, lats[i])) + + offset = 0 + file_length = 16384 + + dur = durs[i] + fflu = ff_layoutupdate4(da.ffda_netaddrs[-1], ds.ffds_fh_vers[-1], + rd_lat, wr_lat, nfstime4(0, dur), True) + + ffio = ff_iostats4(offset, file_length, lo_stateid, rd_io, wr_io, deviceid, fflu) + fflr = ff_layoutreturn4([], [ffio]) + + p = FlexPacker() + p.pack_ff_layoutreturn4(fflr) + + ops = [op.putfh(fh), + op.layoutreturn(False, LAYOUT4_FLEX_FILES, LAYOUTIOMODE4_ANY, + layoutreturn4(LAYOUTRETURN4_FILE, + layoutreturn_file4(0, 0xffffffffffffffff, lo_stateid, p.get_buffer()))), + op.close(0, open_stateid)] + res = sess.compound(ops) + check(res)