From owner-freebsd-geom@freebsd.org Tue Oct 27 02:37:58 2015 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 021FAA1D055; Tue, 27 Oct 2015 02:37:58 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0078.outbound.protection.outlook.com [207.46.100.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2A42F1324; Tue, 27 Oct 2015 02:37:56 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from CY1PR08MB1803.namprd08.prod.outlook.com (10.162.218.25) by CY1PR08MB1801.namprd08.prod.outlook.com (10.162.218.23) with Microsoft SMTP Server (TLS) id 15.1.306.13; Tue, 27 Oct 2015 02:22:34 +0000 Received: from CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) by CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) with mapi id 15.01.0306.003; Tue, 27 Oct 2015 02:22:33 +0000 From: "Pokala, Ravi" To: "freebsd-geom@freebsd.org" , "freebsd-scsi@freebsd.org" , "freebsd-hackers@freebsd.org" CC: "scottl@freebsd.org" , "ken@freebsd.org" , "imp@freebsd.org" Subject: Low-level trace-buffers in CAM Thread-Topic: Low-level trace-buffers in CAM Thread-Index: AQHREF5W2DCPOIdjUUGMRg6fRJs3ww== Date: Tue, 27 Oct 2015 02:22:33 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/0.0.0.151008 authentication-results: spf=none (sender IP is ) smtp.mailfrom=rpokala@panasas.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [64.80.217.3] x-microsoft-exchange-diagnostics: 1; CY1PR08MB1801; 5:bosRlMo+g5nFNnVCd6VhdoW/KG7GwEI4ZwVLrSTlJyHnJ3YC6qs41zWI4lE8cdAeOibcn0ZaPsO7nwIWzyfuS/43d9PWVKB5CqZ8ci6TZ5+K9Zp0AMyptFIA0XVgDdYBijhaBdVBFLPLVpEL9wsA2g==; 24:LUH48ETZdrNqLm82CtRWwkez6aCQ9C3kNBIFOnZAc7Lxdcp6aaujf94y4Zs1uFGrZiEZ7i7Bkmift25i3RMig7wVrFV8CAwAQs4ZZ6N1b8s=; 20:kkNZ5fBwStuD6qepFW788DbYHqGCO3OhxX2Hm2mZRcpFXZfv4Nw9g92mDGvIREXd7Ek4XXNWKhHUSreX11I6Lw== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR08MB1801; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:; x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(102215026); SRVR:CY1PR08MB1801; BCL:0; PCL:0; RULEID:; SRVR:CY1PR08MB1801; x-forefront-prvs: 0742443479 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(199003)(164054003)(189002)(189998001)(66066001)(5004730100002)(33656002)(5007970100001)(2900100001)(5008740100001)(551934003)(5001960100002)(229853001)(10400500002)(77096005)(2501003)(102836002)(92566002)(5002640100001)(81156007)(5001770100001)(97736004)(83506001)(82746002)(450100001)(106116001)(87936001)(40100003)(122556002)(105586002)(575784001)(86362001)(36756003)(99286002)(106356001)(50986999)(101416001)(2201001)(54356999)(83716003)(4001350100001)(427584002)(21314002)(104396002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR08MB1801; H:CY1PR08MB1803.namprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: panasas.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: panasas.com X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Oct 2015 02:22:33.6380 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: acf01c9d-c699-42af-bdbb-44bf582e60b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR08MB1801 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2015 02:37:58 -0000 SGkgZm9sa3MsDQoNCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NClRoaXMgaXMgYW4gdXBkYXRlZCByZS1zZW5kIG9mIGEgbWVz c2FnZSBJIG9yaWdpbmFsbHkgc2VudCBhYm91dCBhIHllYXIgYWdvLCBkdXJpbmcgTWVldEJTRCAy MDE0LiBBIGZldyBwZW9wbGUgZXhwcmVzc2VkIGludGVyZXN0IGluIHBlcnNvbiwgYnV0IG5vIG9u ZSBldmVyIGZvbGxvd2VkIHVwIG9uIHRoZSBsaXN0cy4gSSdtIGJyaW5naW5nIHRoaXMgdXAgYWdh aW4sIGluIHRoZSBob3BlcyB0aGF0IEkgY2FuIGdldCBzb21lIGZlZWRiYWNrIGJlZm9yZSAvIGR1 cmluZyBuZXh0IHdlZWsncyBEZXYvVmVuZG9yIFN1bW1pdC4gSSdtIENDaW5nIHNvbWUgZm9sa3Mg d2hvIGV4cHJlc3NlZCBpbnRlcmVzdCBhdCB0aGF0IHRpbWUsIGFuZCBzb21lIGZvbGtzIHRoYXQg SSB3YXMgdG9sZCB3b3VsZCBiZSBpbnRlcmVzdGVkLg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQpBdCBQYW5hc2FzLCB3 ZSBmb3VuZCBpdCB1c2VmdWwgdG8gaGF2ZSBhIHRyYWNlIGJ1ZmZlciBmb3IgZWFjaCBBVEEgZHJp dmUgaW4gdGhlIHN5c3RlbSwgZm9yIGdhdGhlcmluZyBpbmZvcm1hdGlvbiBhYm91dCBjb21tYW5k IHNlcXVlbmNlcyBhbmQgbGF0ZW5jeS4gSSBpbXBsZW1lbnRlZCB0aGF0IGZ1bmN0aW9uYWxpdHkg Zm9yIG91ciBvbGQgNy1pc2ggQVRBIGRyaXZlciwgYW5kIGl0IHdvcmtzIHF1aXRlIHdlbGwsIHdp dGggZmFpcmx5IGxvdyBvdmVyaGVhZC4gKEkgcmFuIG91ciB1c3VhbCBzdWl0ZSBvZiBwZXJmb3Jt YW5jZSB0ZXN0cywgYW5kIGFueSBkaWZmZXJlbmNlcyB3ZXJlIGxvc3QgaW4gdGhlIG5vaXNlLikg VGhlc2UgdHJhY2VzIGFsbG93ZWQgdXMgdG8gY2FwdHVyZSBhbmQgcmVwbGF5IGFjY2VzcyBwYXR0 ZXJucyAodGhvdWdoIG9idmlvdXNseSBub3Qgd2l0aCB0aGUgc2FtZSBkYXRhKSwgYW5hbHl6ZSBh bmQgY29tcGFyZSBsYXRlbmN5LCBldGMuDQoNCkFzIFBhbmFzYXMgbW92ZXMgdG93YXJkIGEgbW9y ZSBtb2Rlcm4gYmFzZSwgd2Ugd2FudCB0byByZS1pbXBsZW1lbnQgdGhpcyBmdW5jdGlvbmFsaXR5 IGZvciBBVEEsIFNDU0ksIE5WTWUsIGV0Yy4gQW5kIHB1c2ggaXQgdXBzdHJlYW0sIG9mIGNvdXJz ZSEgOi0pDQoNCkZpcnN0LCBzb21lIGV4YW1wbGUgb3V0cHV0OyBJIHdyb3RlIGNvZGUgZm9yIHRo cmVlIGRpZmZlcmVudCBmb3JtYXRzOg0KICAtIFRoZSBiaW5hcnkgdHJhY2UgYnVmZmVyIGR1bXAN CiAgICBVc2VmdWwgZm9yIG1hbmlwdWxhdGluZyBpbiBDOyB0aGUgb3RoZXIgdHdvIGZvcm1hdHMg YXJlIHBvc3QtcHJvY2Vzc2VkIG91dCBvZiB0aGlzLCBhbmQgSSBhbHNvIHdyb3RlIGEgcmVwbGF5 IHV0aWxpdHkgYW5kIGEgYmFzaWMgc3RhdHMgYW5hbHl6ZXIgd2hpY2ggb3BlcmF0ZWQgb24gdGhl IGJpbmFyeSBkdW1wLg0KICAtIFRhYnVsYXIgaGV4DQogICAgVXNlZnVsIGZvciBwYXJzaW5nIHdp dGggc2NyaXB0czsgSSBuZXZlciBhY3R1YWxseSB1c2VkIHRoaXMgZm9ybWF0LCBidXQgaXQgd2Fz IHRyaXZpYWwgc28gSSBqdXN0IHdlbnQgYWhlYWQgYW5kIHdyb3RlIGl0Lg0KICAtIEh1bWFuLXJl YWRhYmxlDQogICAgVXNlZnVsIGZvciBleWViYWxsaW5nOyBvbiBtb3JlIHRoYW4gb25lIG9jY2Fz aW9uLCBJIHdhcyBhYmxlIHRvIHNlZSB0aGF0IEkgaGFkIG1pcy1hc3NlbWJsZWQgYSBjb21tYW5k IGluIHVzZXJzcGFjZSwgZXRjLg0KDQpUaGVzZSBleGFtcGxlcyBhcmUgYWN0dWFsbHkgcmVhbGx5 IGxvbmcgbGluZXM7IEkndmUgYnJva2VuIHRoZW0gdXAgYW5kIGluZGVudGVkIGZvciB0aGUgc2Fr ZSBvZiBlbWFpbDoNCg0KICAgICMgVGFidWxhciBoZXggZm9ybWF0LCBmb3IgdXNlIHcvIHNjcmlw dHMNCiAgICAjIFJlcXVlc3QgdGltZSAgICAgICBBVEEgcmVxdWVzdCBpbmZvcm1hdGlvbiAgIFJl c3BvbnNlIHRpbWUgICAgICAgIA0KICAgICAgICBBVEEgcmVzcG9uc2UgaW5mb3JtYXRpb24gIHN0 cy9lcnIgIGZsYWdzDQogICAgMTQ0NTgzOTc5MzAwMzczNyAgICAgYzggMDAwMCAwMDA0IDAwMDAw MDAwMmZhOCAxNDQ1ODM5NzkzMDAzODA2ICAgICANCiAgICAgICAgYzggMDAwMCAwMDA0IDAwMDAw MDAwMmZhOCA1MCAwMCAwMDAwMDA3ZA0KICAgIDE0NDU4Mzk3OTMwMDM4NzQgICAgIGM4IDAwMDAg MDAyMCAwMDAwMDAxMTNhYzggMTQ0NTgzOTc5MzAxMTU0MSAgICAgDQogICAgICAgIGM4IDAwMDAg MDAyMCAwMDAwMDAxMTNhYzggNTAgMDAgMDAwMDAwN2QNCiAgICAxNDQ1ODM5NzkzMDExNzk1ICAg ICBjOCAwMDAwIDAwMDggMDAwMDAwMTE4Y2E4IDE0NDU4Mzk3OTMwMTc3MDIgICAgIA0KICAgICAg ICBjOCAwMDAwIDAwMDggMDAwMDAwMTE4Y2E4IDUwIDAwIDAwMDAwMDdkDQogICAgMTQ0NTgzOTc5 MzAxNzgwOCAgICAgYzggMDAwMCAwMDgwIDAwMDAwMDExNzYyOCAxNDQ1ODM5NzkzMDE4OTc1ICAg ICANCiAgICAgICAgYzggMDAwMCAwMDgwIDAwMDAwMDExNzYyOCA1MCAwMCAwMDAwMDA3ZA0KICAg IDE0NDU4Mzk3OTMwMTkwNzkgICAgIGM4IDAwMDAgMDAyMCAwMDAwMDAxMTc3YTggMTQ0NTgzOTc5 MzAxOTY4NiAgICAgDQogICAgICAgIGM4IDAwMDAgMDAyMCAwMDAwMDAxMTc3YTggNTAgMDAgMDAw MDAwN2QNCg0KICAgICMgSHVtYW4tcmVhZGFibGUNCiAgICBGTEFHUyAgICAgICBSRVFVRVNUIFRJ TUUgICAgICAgICBSRVNQT05TRSBUSU1FICAgICAgICBFTEFQU0VEIFRJTUUgICAgICAgICANCiAg ICAgICAgUkVRVUVTVCBDT01NQU5EICAgICAgICAgICAgICAgICAgICAgICAgICBTVEFUVVMgICBF UlJPUiAgICANCiAgICAgICAgUkVTUE9OU0UgQ09NTUFORCAgICAgICAgICAgICAgICAgICAgICAg IA0KICAgIC0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0t LS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tIA0KICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIA0KICAgICAgICAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICAgX19fX0MuLi4uX1YgMTQ0NTgzOTc5 MzAwMzczNyAgICAgMTQ0NTgzOTc5MzAwMzgwNiAgICAgNjkgICAgICAgICAgICAgICAgICAgDQog ICAgICAgIFJFQUQgRE1BIChMQkEgMTIyMDAgKyA0IHNlY3RvcnMpICAgICAgICAgX1JfU19fX18g X19fX19fX18gDQogICAgICAgIC0tLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICANCiAgICBfX19fQy4uLi5fViAxNDQ1ODM5NzkzMDAzODc0ICAgICAxNDQ1ODM5NzkzMDExNTQx ICAgICA3NjY3ICAgICAgICAgICAgICAgICANCiAgICAgICAgUkVBRCBETUEgKExCQSAxMTI5MTYw ICsgMzIgc2VjdG9ycykgICAgICBfUl9TX19fXyBfX19fX19fXyANCiAgICAgICAgLS0tLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgIF9fX19DLi4uLl9WIDE0NDU4Mzk3 OTMwMTE3OTUgICAgIDE0NDU4Mzk3OTMwMTc3MDIgICAgIDU5MDcgICAgICAgICAgICAgICAgIA0K ICAgICAgICBSRUFEIERNQSAoTEJBIDExNTAxMjAgKyA4IHNlY3RvcnMpICAgICAgIF9SX1NfX19f IF9fX19fX19fIA0KICAgICAgICAtLS0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgDQogICAgX19fX0MuLi4uX1YgMTQ0NTgzOTc5MzAxNzgwOCAgICAgMTQ0NTgzOTc5MzAxODk3 NSAgICAgMTE2NyAgICAgICAgICAgICAgICAgDQogICAgICAgIFJFQUQgRE1BIChMQkEgMTE0NDM2 MCArIDEyOCBzZWN0b3JzKSAgICAgX1JfU19fX18gX19fX19fX18gDQogICAgICAgIC0tLS0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICANCiAgICBfX19fQy4uLi5fViAxNDQ1ODM5 NzkzMDE5MDc5ICAgICAxNDQ1ODM5NzkzMDE5Njg2ICAgICA2MDcgICAgICAgICAgICAgICAgICAN CiAgICAgICAgUkVBRCBETUEgKExCQSAxMTQ0NzQ0ICsgMzIgc2VjdG9ycykgICAgICBfUl9TX19f XyBfX19fX19fXyANCiAgICAgICAgLS0tLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIA0KDQpUaGUgb2J2aW91cyBwbGFjZSB0byBwdXQgdGhpcyBzb3J0IG9mIHRyYWNpbmcgd291 bGQgYmUgaW4gR0VPTSwgYnV0IHRoYXQgYWN0dWFsbHkgaXNuJ3Qgd2hhdCBJIHdhbnQsIGZvciBh IGZldyByZWFzb25zLiBGaXJzdCBvZiBhbGwsIEknbSBwcmltYXJpbHkgaW50ZXJlc3RlZCBpbiB0 aGUgZXhhY3QgcmVnaXN0ZXIgLyB0YXNrZmlsZSAvIENEQiB2YWx1ZXMgc2VudCB0byB0aGUgZHJp dmUgLSBvcGNvZGUsIGZlYXR1cmUgY29kZXMsIExCQXMsIGV0Yy4gU2Vjb25kLCBJJ20gaW50ZXJl c3RlZCBpbiBoYXJkd2FyZS1sZXZlbCBsYXRlbmN5IC0gaG93IGxvbmcgZG9lcyBhIHJlcXVlc3Qg c3RheSBpbiB0aGUgY29udHJvbGxlciBhbmQgZGV2aWNlLiBCb3RoIG9mIHRob3NlIHByZXR0eSBt dWNoIHJlcXVpcmUgd29ya2luZyBiZWxvdyBHRU9NLg0KDQpUaGVyZWZvcmUsIEkgdGhpbmsgSSB3 YW50IHRvIGRvIGl0IGluIHRoZSBDQU0gc3RhY2s7IGlkZWFsbHksIEknZCBwdXQgdGhlIGhvb2tz IGluIHRoZSBTSU0gZHJpdmVycywgdG8gZ2V0IGFzIGNsb3NlIHRvIHRoZSBtZXRhbCBhcyBwb3Nz aWJsZSwgdG8gZ2V0IHRoZSBtb3N0IGFjY3VyYXRlIGxhdGVuY3kuIEhvd2V2ZXIsIGV2ZW4gYSBs aWdodCB0b3VjaCB0byBldmVyeSBTSU0gZHJpdmVyIGlzIGdvaW5nIHRvIGJlIHBhaW5mdWwsIGFu ZCBzaW5jZSBJIGRvbid0IGhhdmUgYWNjZXNzIHRvIGV2ZXJ5IGNvbnRyb2xsZXIgaW4gdGhlIHdv cmxkLCB0ZXN0aW5nIHdvdWxkIGJlIGRpZmZpY3VsdC4gQWRkaW5nIHRoZSBob29rcyB0byBkYSg0 KSBhbmQgYWRhKDQpIHdvdWxkIHN0aWxsIGJlIHByZXR0eSBjbG9zZSB0byB0aGUgbWV0YWwsIGFu ZCB3b3VsZCByZXF1aXJlIG11Y2ggc21hbGxlciBjaGFuZ2VzLiBPciBtYXliZSB0aGV5IGJlbG9u ZyBpbiB0aGUgWFBUIGxheWVyPyAoSSBkb24ndCBrbm93IG5lYXJseSBhcyBtdWNoIGFib3V0IENB TSBhcyBJIHNob3VsZC4gOi0vKQ0KDQotLS0tLS0tLQ0KTk9URTogV2hlbiBJIG1lbnRpb25lZCB0 aGlzIGlkZWEgYXQgYSAoU2FuIEZyYW5jaXNjbykgQmF5IEFyZWEgRnJlZUJTRCBVc2VyIEdyb3Vw IChCQUZVRykgbWVldGluZywgdGhlcmUgd2VyZSBzdWdnZXN0aW9ucyBhYm91dCBpbnRlZ3JhdGlu ZyB0aGlzIHdpdGggRFRyYWNlIG9yIEtUcmFjZSBpbnN0ZWFkLiBJJ20gaGFwcHkgdG8gY29uc2lk ZXIgZWl0aGVyIG9mIHRob3NlLCBidXQgSSBrbm93IGV2ZW4gbGVzcyBhYm91dCB0aG9zZSB0aGFu IEkgZG8gYWJvdXQgQ0FNLiBJZiB0aGF0J3MgcmVhbGx5IHRoZSBiZXN0IHdheSB0byBkbyB0aGlz IHNvcnQgb2YgdGhpbmcsIEknbSBoYXBweSB0byBsZWFybiwgaWYgc29tZW9uZSBpcyB3aWxsaW5n IHRvIHRlYWNoLg0KLS0tLS0tLS0NCg0KSSB0b29rIHRoZSBQYW5hc2FzIC8gNy54IGltcGxlbWVu dGF0aW9uLCBhbmQgcHNldWRvLWNvZGVkIHdoYXQgaXQgbWlnaHQgbG9vayBsaWtlIGluIENBTS4g KEkgY291bGQgcHJvYmFibHkgbWFrZSBkaWZmcyBhZ2FpbnN0IHRoZSBvbGQgQVRBIHN0YWNrIGF2 YWlsYWJsZSBmb3IgY29tcGFyaXNvbiwgYnV0IEkgZmlndXJlZCBubyBvbmUgd291bGQgY2FyZSBh bnltb3JlLikgQSBodWdlIGNhdmVhdCBpcyB0aGF0IEkndmUgbmV2ZXIgcmVhbGx5IHBva2VkIGlu IENBTSBiZWZvcmUsIHNvIEkgZnVsbHkgZXhwZWN0IEknbSBkb2luZyBzZXZlcmFsIHRoaW5ncyB3 cm9uZy4gUGxlYXNlIGVkdWNhdGUgbWUuIDotKQ0KDQo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQ0KDQpDcmVhdGUgYSBjaXJjdWxhciBidWZmZXIgb2YgdHJhY2UgcmVjb3JkcyBmb3Ig ZWFjaCBDQU0gUEVSSVBILiBFYWNoIHJlY29yZCB3aWxsIGNvbnRhaW4gdGhlIGZ1bGwgQ0RCIGZv ciB0aGUgcmVxdWVzdCBhcyBzZW50IHRvIHRoZSBkZXZpY2UsIHRoZSB0aW1lc3RhbXAgKGluIHVz ZWMpIG9mIHRoZSByZXF1ZXN0LCB0aGUgQ0RCIGFzIHJldHVybmVkIGJ5IHRoZSBkZXZpY2UsIHRo ZSB0aW1lc3RhbXAgb2YgdGhlIHJlc3BvbnNlLCBhbmQgdGhlIHN0YXR1cyBhbmQgZXJyb3IgY29k ZS4gQWRkaXRpb25hbGx5LCBmbGFncyBhcmUgcHJvdmlkZWQgdG8gdHJhY2sgdGhlIHN0YXRlIG9m IHRoZSB0cmFjZSByZWNvcmQsIGFuZCB0byBpbmRpY2F0ZSB3aGljaCB0eXBlIG9mIHBlcmlwaCB0 aGUgcmVjb3JkIGlzIGFzc29jaWF0ZWQgd2l0aC4NCg0KLS0tLS0tLS0NCg0KdHlwZWRlZiBzdHJ1 Y3Qgew0KCXVfaW50MzJfdAlmbGFnczsNCiNkZWZpbmUgQ0FNX1RSQUNFX0ZfVkFMSUQJMHgwMDAw MDAwMQkvKiB2YWxpZCByZWNvcmQgKi8NCiNkZWZpbmUgQ0FNX1RSQUNFX0ZfSU5QUk9HUkVTUwkw eDAwMDAwMDAyCS8qIHJlcXVlc3QgaW4gcHJvZ3Jlc3MgKi8NCiNkZWZpbmUgQ0FNX1RSQUNFX0Zf UkVRX1ZBTElECTB4MDAwMDAwMDQJLyogcmVxdWVzdCBkYXRhIHZhbGlkICovDQojZGVmaW5lIENB TV9UUkFDRV9GX1JFU1BfVkFMSUQJMHgwMDAwMDAwOAkvKiByZXNwb25zZSBkYXRhIHZhbGlkICov DQojZGVmaW5lIENBTV9UUkFDRV9GX0NPTVBMRVRFCTB4MDAwMDAwMTAJLyogcmVzcG9uc2UgZ2F0 aGVyZWQgKi8NCiNkZWZpbmUgQ0FNX1RSQUNFX0ZfVElNRURPVVQJMHgwMDAwMDAyMAkvKiByZXF1 ZXN0IHRpbWVkIG91dCAqLw0KI2RlZmluZSBDQU1fVFJBQ0VfRl9BQkFORE9ORUQJMHgwMDAwMDA0 MAkvKiBjYW5jZWxsZWQsIGV0Yy4gKi8NCiNkZWZpbmUgQ0FNX1RSQUNFX0ZfUkVUUklFRAkweDAw MDAwMDgwCS8qIHJldHJ5IGluIGxhdGVyIHJlY29yZCAqLw0KI2RlZmluZSBDQU1fVFJBQ0VfRl9J U19SRVRSWQkweDAwMDAwMTAwCS8qIHJldHJ5IG9mIGVhcmxpZXIgcmVxLiAqLw0KI2RlZmluZSBD QU1fVFJBQ0VfRl9QRVJJUEhfTUFTSwkweGYwMDAwMDAwCS8qIHVwIHRvIDE2IFBFUklQSCB0eXBl cyAqLw0KI2RlZmluZSBDQU1fVFJBQ0VfRl9QRVJJUEhfREEJMHgwDQojZGVmaW5lIENBTV9UUkFD RV9GX1BFUklQSF9BREEJMHgxDQojZGVmaW5lIENBTV9UUkFDRV9GX1BFUklQSF9OVkQJMHgyDQoJ dV9pbnQ2NF90CXJlcV91c2VjOw0KCWNkYl90CQlyZXFfY2RiOw0KCXVfaW50NjRfdAlyZXNwX3Vz ZWM7DQoJY2RiX3QJCXJlc3BfY2RiOw0KCXVfaW50OF90CXJlc3Bfc3RhdHVzOw0KCXVfaW50OF90 CXJlc3BfZXJyb3I7DQoJdV9pbnQ4X3QJcmVzcF9hc2M7CS8qIE5lZWRlZCBmb3IgU0NTST8gKi8N Cgl1X2ludDhfdAlyZXNwX2FzcTsJLyogTmVlZGVkIGZvciBTQ1NJPyAqLw0KCXVfaW50OF90CXBh ZGRpbmdbOF07CS8qIFBhZCB0byA2NCBieXRlcyAqLw0KLyogVGhlcmUncyBnb2luZyB0byBiZSBh IGxhcmdlLWlzaCBhcnJheSBvZiB0aGVzZSBpbiB0aGUga2VybmVsOyBtYWtlIHN1cmUNCiAqIHRo ZXkncmUgcGFja2VkIHRvIG1pbmltaXplIHNwYWNlIHVzYWdlLCBhbmQga2VlcCB0aGluZ3MgYWxp Z25lZC4gSXQgbWF5DQogKiBtYWtlIHNlbnNlIHRvIHJlLW9yZGVyIHRoZSBmaWVsZHMgZm9yIGFs aWdubWVudCBhcyB3ZWxsLg0KICovDQp9IGNhbV90cmFjZV9yZWNvcmRfdCBfX2F0dHJpYnV0ZV9f KChwYWNrZWQsIGFsaWduZWQoOCkpKTsNCg0KdHlwZWRlZiBzdHJ1Y3Qgew0KCXVfaW50MzJfdAkJ dHJhY2VfYnVmX3JlY29yZF9jb3VudDsNCgljYW1fdHJhY2VfcmVjb3JkX3QJKnRyYWNlX2J1ZjsN Cn0gY2FtX3RyYWNlX2J1ZmZlcl90Ow0KDQovKiBUaGlzIGlzIHNldHRhYmxlIHZpYSBhIHR1bmFi bGU7IGZvciBQYW5hc2FzJyBwdXJwb3NlcywgMTAwSyBlbnRyaWVzIHdhcw0KICogZW5vdWdoIHRv IHByb3ZpZGUgYSBnb29kIGFtb3VudCBvZiBoaXN0b3J5IGV2ZW4gb24gYSBidXN5IHN5c3RlbSwg d2hpbGUNCiAqIG5vdCB0YWtpbmcgdXAgbXVjaCBzcGFjZSAoPCA1TUIvZHJpdmUpLg0KICovDQoj ZGVmaW5lIENBTV9UUkFDRV9CVUZGRVJfREVGQVVMVF9DT1VOVCAxMDAwMDANCg0KLS0tLS0tLS0t LS0tLS0tLQ0KDQppb2N0bCBpbnRlcmZhY2VzIGFyZSB1c2VkIHRvIGdldCB0aGUgdHJhY2UgYnVm ZmVyIHNpemUsIHRvIHJldHJpZXZlIHRoZSBidWZmZXIgY29udGVudHMsIG9yIHRvIGNsZWFyIHRo ZSBidWZmZXIuIFRoZSBidWZmZXIgY2FuIHRoZW4gYmUgYW5hbHl6ZWQgZnJvbSB1c2Vyc3BhY2Us IG9yIHdyaXR0ZW4gdG8gYSBmaWxlIGZvciBwb3N0LXByb2Nlc3NpbmcuDQoNCi0tLS0tLS0tDQoN CiNkZWZpbmUgQ0FNX0dFVF9UUkFDRV9SRUNPUkRfQ09VTlQJX0lPUig/Pz8sID8/PywgdV9pbnQz Ml90KQ0KI2RlZmluZSBDQU1fR0VUX1RSQUNFX0JVRkZFUgkJX0lPV1IoPz8/LCA/Pz8sIGNhbV90 cmFjZV9idWZmZXJfdCkNCiNkZWZpbmUgQ0FNX0NMRUFSX1RSQUNFX0JVRkZFUgkJX0lPVyg/Pz8s ID8/PywgdV9pbnQzMl90KQ0KDQotLS0tLS0tLS0tLS0tLS0tDQoNClRvIGdldCB0aGUgYnVmZmVy Og0KDQotLS0tLS0tLQ0KDQoJY2FtX3RyYWNlX2J1ZmZlcl90IHRyYWNlID0gTlVMTDsNCglmZCA9 IG9wZW4ocGVyaXBoX25hbWUsIE9fUkRPTkxZKTsNCgllcnJvciA9IGlvY3RsKGZkLCBDQU1fR0VU X1RSQUNFX1JFQ09SRF9DT1VOVCwNCgkgICAgJnRyYWNlLnRyYWNlX2J1Zl9yZWNvcmRfY291bnQp Ow0KCXRyYWNlLnRyYWNlX2J1ZiA9IG1hbGxvYyh0cmFjZS50cmFjZV9idWZfcmVjb3JkX2NvdW50 ICoNCgkgICAgc2l6ZW9mKGNhbV90cmFjZV9yZWNvcmRfdCkpOw0KCWVycm9yID0gaW9jdGwoZmQs IENBTV9HRVRfVFJBQ0VfQlVGRkVSLCAmdHJhY2UpOw0KDQotLS0tLS0tLS0tLS0tLS0tDQoNCkJ5 IGluY2x1ZGluZyB0aGUgZnVsbCBDREIsIHRoZSBlbnRpcmUgY29tbWFuZCBjYW4gYmUgZGVjb2Rl ZCBieSBhbmFseXNpcyB0b29scy4gVG9vbHMgY2FuIGJlIHdyaXR0ZW4gdG8gcGFyc2UgdGhlIGJ1 ZmZlciBhbmQgdHJhbnNsYXRlIGNvbW1hbmQgZGF0YSBpbnRvIGh1bWFuLXJlYWRhYmxlIGRlc2Ny aXB0aW9ucywgY2FsY3VsYXRlIGVsYXBzZWQgdGltZXMgZm9yIHJlcXVlc3RzLCBwZXJmb3JtIHN0 YXRpc3RpY2FsIGFuYWx5c2lzIGJhc2VkIG9uIG9wY29kZSwgY29tbWFuZCB0eXBlLCB0cmFuc2Zl ciBzaXplLCBldGMuIENvbW1hbmQgZGVjb2RlcnMgd291bGQgbmVlZCB0byBiZSB3cml0dGVuIGZv ciBlYWNoIFBFUklQSCB0eXBlIChpLmUuIG9uZSBmb3IgQVRBLCBvbmUgZm9yIFNDU0ksIG9uZSBm b3IgTlZNZSwgZXRjLikuDQoNCi0tLS0tLS0tLS0tLS0tLS0NCg0KRWFjaCBQRVJJUEgncyBzb2Z0 YyBuZWVkcyB0byBpbmNsdWRlIHNvbWUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHBlci1kZXZpY2UN CmJ1ZmZlci4NCg0KLS0tLS0tLS0NCg0KCXVfaW50MzJfdAkJdHJhY2VfYnVmX3JlY29yZF9jb3Vu dDsNCgl1X2ludDY0X3QJCXRyYWNlX2J1Zl9yZXF1ZXN0X2NvdW50Ow0KCWNhbV90cmFjZV9yZWNv cmRfdAkqdHJhY2VfYnVmOw0KDQotLS0tLS0tLS0tLS0tLS0tDQoNCkluIGVhY2ggU0lNLCB0aGVy ZSBzaG91bGQgYWxyZWFkeSBiZSBzb21lIHNvcnQgb2YgcmVxdWVzdCBzdHJ1Y3R1cmUsIHdoaWNo IGFzc29jaWF0ZXMgdGhlIHNvZnRjIGFuZCB0aGUgQ0RCIG9mIHRoZSByZXF1ZXN0LiBUbyB0aGF0 IHN0cnVjdHVyZSwgYWRkIGEgcG9pbnRlciB0byB0aGUgdHJhY2UgcmVjb3JkIGFzc29jaWF0ZWQg d2l0aCB0aGUgcmVxdWVzdC4NCg0KLS0tLS0tLS0NCg0KcmVxdWVzdCBzdHJ1Y3R1cmU6DQoJY2Ft X3RyYWNlX3JlY29yZF90CSp0cmFjZV9yZWM7DQoNCi0tLS0tLS0tLS0tLS0tLS0NCg0KV2hlbiBp bml0aWFsaXppbmcgdGhlIHBlci1kZXZpY2Ugc29mdGMsIGFsbG9jYXRlIGEgdHJhY2UgYnVmZmVy LiBUaGUgbnVtYmVyIG9mIHJlY29yZHMgY2FuIGJlIGhhcmQtY29kZWQsIG9yIHNldHRhYmxlIHZp YSBhIHR1bmFibGUuDQoNClRoZSBleGFtcGxlIGJlbG93IGhhcyBhIGdsb2JhbCBzaXplIGZvciBl dmVyeXRoaW5nLCBidXQgaXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIGRvIGl0IG9uIGEgcGVyLWRl dmljZSBvciBwZXItUEVSSVBIIGJhc2lzLg0KDQotLS0tLS0tLQ0KDQoJLyoqIEluaXRpYWxpemUg cGVyLWRyaXZlIGNvbW1hbmQgdHJhY2luZyBidWZmZXIuICoqLw0KCS8qIEdldCB0aGUgYnVmZmVy IHNpemUgZnJvbSB0aGUgdHVuYWJsZS4gU2FuaXR5IGNoZWNrIGl0LiAqLw0KCXNjLT50cmFjZV9i dWZfcmVjb3JkX2NvdW50ID0gQ0FNX1RSQUNFX0JVRkZFUl9ERUZBVUxUX0NPVU5UOw0KCVRVTkFC TEVfVUxPTkdfRkVUQ0goImNhbS50cmFjZV9idWZfcmVjb3JkX2NvdW50IiwNCgkgICAgJnRyYWNl X2J1Zl9yZWNvcmRfY291bnRfdHVuYWJsZSk7DQoJaWYgKHRyYWNlX2J1Zl9yZWNvcmRfY291bnRf dHVuYWJsZSkgew0KCQkvKiBMZXNzIHRoYW4gMUsgcmVjb3JkcyBpcyB1bnVzYWJseSBmZXc7IG1v cmUgdGhhbiAxTQ0KCQkgKiByZWNvcmRzIGlzIHVudXNhYmx5IG1hbnkuDQoJCSAqLw0KCQlpZiAo KHRyYWNlX2J1Zl9yZWNvcmRfY291bnRfdHVuYWJsZSA8ICgxIDw8IDEwKSkgfHwNCgkJICAgICh0 cmFjZV9idWZfcmVjb3JkX2NvdW50X3R1bmFibGUgPiAoMSA8PCAyMCkpKSB7DQoJCQlkZXZpY2Vf cHJpbnRmKGRldiwgImNhbS50cmFjZV9idWZfcmVjb3JkX2NvdW50PSVsdSINCgkJCSAgICAiIG91 dCBvZiByYW5nZTsgc2hvdWxkIGJlIGJldHdlZW4gJXUgYW5kICV1XG4iLA0KCQkJICAgIHRyYWNl X2J1Zl9yZWNvcmRfY291bnRfdHVuYWJsZSwgKDEgPDwgMTApLA0KCQkJICAgICgxIDw8IDIwKSk7 DQoJCX0gZWxzZSB7DQoJCQlzYy0+dHJhY2VfYnVmX3JlY29yZF9jb3VudCA9ICh1X2ludDMyX3Qp DQoJCQkgICAgdHJhY2VfYnVmX3JlY29yZF9jb3VudF90dW5hYmxlOw0KCQl9DQoJfQ0KCS8qIEFs bG9jYXRlIHRoZSBidWZmZXIuICovDQoJdHJhY2VfYnVmX2J5dGVzID0gc2MtPnRyYWNlX2J1Zl9y ZWNvcmRfY291bnQgKg0KCSAgICBzaXplb2YoY2FtX3RyYWNlX3JlY29yZF90KTsNCglzYy0+dHJh Y2VfYnVmID0gbWFsbG9jKHRyYWNlX2J1Zl9ieXRlcywgTV9BRCwgTV9OT1dBSVQgfCBNX1pFUk8p Ow0KCWlmIChzYy0+dHJhY2VfYnVmID09IE5VTEwpIHsNCgkJZGV2aWNlX3ByaW50ZihkZXYsICJ1 bmFibGUgdG8gYWxsb2NhdGUgJXpkIGZvciB0cmFjZV9idWZcbiIsDQoJCSAgICB0cmFjZV9idWZf Ynl0ZXMpOw0KCQlzYy0+dHJhY2VfYnVmX3JlY29yZF9jb3VudCA9IDA7DQoJfSBlbHNlIHsNCgkJ ZGV2aWNlX3ByaW50ZihkZXYsICJhbGxvY2F0ZWQgJXpkIEAgJXAgZm9yIHRyYWNlX2J1ZlxuIiwN CgkJICAgIHRyYWNlX2J1Zl9ieXRlcywgc2MtPnRyYWNlX2J1Zik7DQoJfQ0KCS8qIFJlcXVlc3Qg Y291bnRlciwgdXNlZCBmb3IgaW5kZXhpbmcgKi8NCglzYy0+dHJhY2VfYnVmX3JlcXVlc3RfY291 bnQgPSAwOw0KDQoNCi0tLS0tLS0tLS0tLS0tLS0NCg0KLyogSW5pdGlhbCBzZXR1cCBvZiB0aGUg dHJhY2UgcmVjb3JkIGZvciBhIG5ldyByZXF1ZXN0Lg0KICoNCiAqICBMb2NhdGUgdGhlIGNpcmN1 bGFyIHBlci1kZXZpY2UgdHJhY2UgYnVmZmVyIGluIHRoZSBkcml2ZSdzIHNvZnRjLg0KICogIFBv cHVsYXRlIHRoZSBwb2ludGVyIHRvIHRoZSBuZXh0IHJlY29yZCBpbiB0aGUgdHJhY2UgYnVmZmVy OyB0aGlzIGlzDQogKiAgZG9uZSBhdG9taWNhbGx5IHRvIHByZXZlbnQgY29uY3VycmVudCByZXF1 ZXN0cyBmcm9tIGdldHRpbmcgdGhlIHNhbWUNCiAqICBpbmRleC4gVGhhdCBjb3VsZCBnZXQgYSBi aXQgd2VpcmQgaWYvd2hlbiAndHJhY2VfYnVmX3JlcXVlc3RfY291bnQnDQogKiAgcm9sbHMgb3Zl ciwgaWYgdGhlIG1heGltdW0gY291bnRlciB2YWx1ZSBpcyBub3QgYSBtdWx0aXBsZSBvZg0KICog ICd0cmFjZV9idWZfcmVjb3JkX2NvdW50JyAoaS5lLiB0aGUgcmVxdWVzdCBjb3VudGVyIHJlY3lj bGVzIGluIHRoZQ0KICogIG1pZGRsZSBvZiB0aGUgYnVmZmVyKS4gQnkgdXNpbmcgYSA2NC1iaXQg cmVxdWVzdCBjb3VudGVyLCB3ZSdyZSBwcmV0dHkNCiAqICBzYWZlIC0gZXZlbiBhdCBvbmUgdHJh bnNhY3Rpb24gcGVyIG5hbm9zZWNvbmQsIHRoYXQgd2lsbCBzdGlsbCBsYXN0DQogKiAgYWJvdXQg NTg1IHllYXJzLg0KICoNCiAqICBJbml0aWFsaXplIHRoZSByZWNvcmQgYnkgemVyb2luZyBpdCBh bmQgdGhlbiBzZXR0aW5nIHRoZSBWQUxJRCBmbGFnLg0KICoNCiAqICBUaGlzIGNvdWxkIGJlIGRv bmUgYXQgYW55IHBvaW50IGJlZm9yZSBzZW5kaW5nIHRoZSByZXF1ZXN0IHRvIHRoZQ0KICogIGhh cmR3YXJlOyBuZWl0aGVyIHRoZSBDREIgZGF0YSBub3IgdGhlIHRpbWVzdGFtcHMgYXJlIGludm9s dmVkIHlldC4NCiAqLw0Kdm9pZA0KdHJhY2VfcmVjX2luaXQoY2FtX3JlcXVlc3RfdCByZXEpIHsN CglhZGFfc29mdGMgKnNjID0gKHJlcXVlc3QtPi4uLi0+c29mdGMpDQoJdV9pbnQ2NF90IHRtcCA9 IDA7DQoJaWYgKHNjICYmIHNjLT50cmFjZV9idWYpIHsNCgkJdG1wID0gYXRvbWljX2ZldGNoYWRk X2xvZygmc2MtPnRyYWNlX2J1Zl9yZXF1ZXN0X2NvdW50LCAxKTsNCgkJcmVxLT50cmFjZV9yZWMg PSAmc2MtPnRyYWNlX2J1Zlt0bXAgJQ0KCQkgICAgc2MtPnRyYWNlX2J1Zl9yZWNvcmRfY291bnRd Ow0KCQliemVybyhyZXEtPnRyYWNlX3JlYywgc2l6ZW9mKCpyZXEtPnRyYWNlX3JlYykpOw0KCQly ZXEtPnRyYWNlX3JlYy0+ZmxhZ3MgPSAoQ0FNX1RSQUNFX0ZfUEVSSVBIX1hYWCA8PCAyOCk7DQoJ CXJlcS0+dHJhY2VfcmVjLT5mbGFncyB8PSBDQU1fVFJBQ0VfRl9WQUxJRDsNCgl9IGVsc2Ugew0K CQlyZXEtPnRyYWNlX3JlYyA9IE5VTEw7DQoJfQ0KfQ0KDQotLS0tLS0tLS0tLS0tLS0tDQoNCi8q IFN0dWZmIHRoZSByZXF1ZXN0IGRhdGEgaW50byB0aGUgdHJhY2UgcmVjb3JkLg0KICoNCiAqICBJ ZiB0aGUgdHJhY2UgcmVjb3JkIGlzIHByZXNlbnQgYW5kIHZhbGlkLCBjb3B5IHRoZSBDREIgaW50 byB0aGUNCiAqICByZWNvcmQuIFNldCBDQU1fVFJBQ0VfRl9SRVFfVkFMSUQgdG8gaW5kaWNhdGUg dGhhdCB0aGUgcmVxdWVzdCBkYXRhIGlzDQogKiAgdmFsaWQsIGFuZCBJTlBST0dSRVNTIHRvIHNo b3cgdGhhdCB0aGUgcmVxdWVzdCBpcyBpbi1wcm9ncmVzcy4NCiAqDQogKiAgVGhpcyBzaG91bGQg YmUgZG9uZSBqdXN0IGJlZm9yZSBzZW5kaW5nIHRoZSByZXF1ZXN0IHRvIHRoZSBoYXJkd2FyZS4N CiAqICBUaGlzIHNob3VsZCAqbm90KiBiZSBmdXNlZCBpbnRvIHRyYWNlX3JlY19pbml0KCksIGJl Y2F1c2UNCiAqICB0cmFjZV9yZWNfaW5pdCgpIGlzIGFsc28gdXNlZCBpbiB0aGUgcmV0cnkgY2Fz ZSwgd2hlcmUgaXQgaXMgbm90DQogKiBjb3JyZWN0IHRvIGltbWVkaWF0ZWx5IHN0YXJ0IHRoZSB0 aW1lci4NCiAqLw0Kdm9pZA0KdHJhY2VfcmVjX3JlcShjYW1fcmVxdWVzdF90IHJlcSkgew0KCXN0 cnVjdCB0aW1ldmFsIHR2Ow0KCWlmIChyZXEtPnRyYWNlX3JlYyAmJiAocmVxLT50cmFjZV9yZWMt PmZsYWdzICYgQ0FNX1RSQUNFX0ZfVkFMSUQpKSB7DQoJCWJjb3B5KHJlcS0+Y2RiLCByZXEtPnRy YWNlX3JlYy0+cmVxX2NkYiwgc2l6ZW9mKHJlcS0+Y2RiKSk7DQoJCW1pY3JvdXB0aW1lKCZ0dik7 DQoJCXJlcS0+dHJhY2VfcmVjLT5yZXFfdXNlYyA9ICgodWludDY0X3QpIHR2LT50dl9zZWMgKiAx MDAwMDAwKQ0KCQkgICAgKyB0di0+dHZfdXNlYzsNCgkJcmVxLT50cmFjZV9yZWMtPmZsYWdzIHw9 DQoJCSAgICAoQ0FNX1RSQUNFX0ZfUkVRX1ZBTElEIHwgQ0FNX1RSQUNFX0ZfSU5QUk9HUkVTUyk7 DQoJfQ0KfQ0KDQotLS0tLS0tLS0tLS0tLS0tDQoNCi8qIFN0dWZmIHRoZSByZXNwb25zZSBkYXRh IGludG8gdGhlIHRyYWNlIHJlY29yZC4NCiAqDQogKiAgSWYgdGhlIHRyYWNlIHJlY29yZCBpcyBw cmVzZW50IGFuZCB2YWxpZCwgY29weSB0aGUgQ0RCICoqYXMgcmV0dXJuZWQgYnkNCiAqICB0aGUg ZHJpdmUqKiBpbnRvIHRoZSByZWNvcmQuIEF0IHRoaXMgcG9pbnQsIHdlIGFsc28gaGF2ZSB0aGUg cmVzdWx0IGZyb20NCiAqICB0aGUgY29tbWFuZCAoc3RhdHVzLCBlcnJvciwgKGFzYz8gYXNjcT8p KSwgc28gc2F2ZSB0aGVtIHRvby4gU2V0DQogKiAgQ0FNX1RSQUNFX0ZfUkVTUF9WQUxJRCB0byBp bmRpY2F0ZSB0aGF0IHRoZSByZXNwb25zZSBkYXRhIGlzIHZhbGlkLg0KICogIENsZWFyIElOUFJP R1JFU1MgYW5kIHNldCBDT01QTEVURSBpbnN0ZWFkLg0KICoNCiAqICBUaGlzIHNob3VsZCBiZSBk b25lIGp1c3QgYWZ0ZXIgZ2V0dGluZyB0aGUgcmVzcG9uc2UgaW5mb3JtYXRpb24gZnJvbSB0aGUN CiAqICBoYXJkd2FyZS4NCiAqLw0Kdm9pZA0KdHJhY2VfcmVjX3Jlc3AoY2FtX3JlcXVlc3RfdCBy ZXEpIHsNCglzdHJ1Y3QgdGltZXZhbCB0djsNCglpZiAocmVxLT50cmFjZV9yZWMgJiYgKHJlcS0+ dHJhY2VfcmVjLT5mbGFncyAmIENBTV9UUkFDRV9GX1ZBTElEKSkgew0KCQltaWNyb3VwdGltZSgm dHYpOw0KCQliY29weShyZXEtPmNkYiwgcmVxLT50cmFjZV9yZWMtPnJlc3BfY2RiLCBzaXplb2Yo cmVxLT5jZGIpKTsNCgkJcmVxLT50cmFjZV9yZWMtPnJlc3BfdXNlYyA9ICgodWludDY0X3QpIHR2 LT50dl9zZWMgKg0KCQkgICAgMTAwMDAwMCkgKyB0di0+dHZfdXNlYzsNCgkJcmVxLT50cmFjZV9y ZWMtPmZsYWdzIHw9DQoJCSAgICAoQ0FNX1RSQUNFX0ZfUkVTUF9WQUxJRCB8IENBTV9UUkFDRV9G X0NPTVBMRVRFKTsNCgkJcmVxLT50cmFjZV9yZWMtPmZsYWdzICY9IH5DQU1fVFJBQ0VfRl9JTlBS T0dSRVNTOw0KCX0NCn0NCg0KLS0tLS0tLS0tLS0tLS0tLQ0KDQovKiBVcGRhdGUgdGhlIHRyYWNl IHJlY29yZCBpZiB0aGVyZSB3YXMgYSB0aW1lb3V0Lg0KICoNCiAqICBJZiB0aGUgdHJhY2UgcmVj b3JkIGlzIHByZXNlbnQgYW5kIHZhbGlkLCBzZXQgVElNRURPVVQgdG8gaW5kaWNhdGUNCiAqICB0 aGF0IHRoZSByZXF1ZXN0IGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVjb3JkIGV4Y2VlZGVkIGl0cyB0 aW1lb3V0Lg0KICogIFNpbmNlIHRoaXMgYXR0ZW1wdCBpcyBjb21wbGV0ZSwgY2xlYXIgSU5QUk9H UkVTUyBhbmQgc2V0IENPTVBMRVRFLg0KICoNCiAqICBUaGlzIHNob3VsZCBiZSBkb25lIGFsb25n IHdpdGggb3RoZXIgdGltZW91dCBoYW5kbGluZy4NCiAqLw0Kdm9pZA0KdHJhY2VfcmVjX3RpbWVv dXQoY2FtX3JlcXVlc3RfdCByZXEpIHsNCglpZiAocmVxLT50cmFjZV9yZWMgJiYgKHJlcS0+dHJh Y2VfcmVjLT5mbGFncyAmIENBTV9UUkFDRV9GX1ZBTElEKSkgew0KCQlyZXEtPnRyYWNlX3JlYy0+ ZmxhZ3MgfD0NCgkJICAgIChDQU1fVFJBQ0VfRl9USU1FRE9VVCB8IENBTV9UUkFDRV9GX0NPTVBM RVRFKTsNCgkJcmVxLT50cmFjZV9yZWMtPmZsYWdzICY9IH5DQU1fVFJBQ0VfRl9JTlBST0dSRVNT Ow0KCX0NCn0NCg0KLS0tLS0tLS0tLS0tLS0tLQ0KDQovKiBVcGRhdGUgdGhlIHRyYWNlIHJlY29y ZCBpZiB0aGUgcmVxdWVzdCBpcyBiZWluZyByZXRyaWVkLg0KICogIA0KICogIElmIHRoZSB0cmFj ZSByZWNvcmQgaXMgcHJlc2VudCBhbmQgdmFsaWQsIHNldCBSRVRSSUVEIHRvIGluZGljYXRlDQog KiAgdGhhdCB0aGUgcmVxdWVzdCBhc3NvY2lhdGVkIHdpdGggdGhlIHJlY29yZCBpcyBnb2luZyB0 byBiZSByZXRyaWVkLg0KICogIFNpbmNlIHRoaXMgYXR0ZW1wdCBpcyBjb21wbGV0ZSwgY2xlYXIg SU5QUk9HUkVTUyBhbmQgc2V0IENPTVBMRVRFLg0KICogIFRoZW4gZ2V0IGEgbmV3IHRyYWNlIHJl Y29yZCBmb3IgdGhlIG5ldyBhdHRlbXB0LCBjb3B5IHRoZSByZXF1ZXN0DQogKiAgY29tbWFuZCBk YXRhIHRvIHRoZSBuZXcgcmVjb3JkLCBhbmQgc2V0IElTX1JFVFJZIHRvIHNob3cgdGhhdCB0aGlz DQogKiAgaXMgYSByZXRyeSBvZiBhbiBlYXJsaWVyIHJlcXVlc3QuDQogKg0KICogIFRoaXMgc2hv dWxkIGJlIGRvbmUgYXQgdGhlIHRpbWUgdGhlIHJldHJ5IGlzIHF1ZXVlZC4NCiAqLw0Kdm9pZA0K dHJhY2VfcmVjX3JldHJ5KGNhbV9yZXF1ZXN0X3QgcmVxKSB7DQoJaWYgKHJlcS0+dHJhY2VfcmVj ICYmIChyZXEtPnRyYWNlX3JlYy0+ZmxhZ3MgJiBDQU1fVFJBQ0VfRl9WQUxJRCkpIHsNCgkJLyog Rmlyc3QsIG1hcmsgdGhlIG9yaWdpbmFsIHJlcXVlc3QgYXMgYmVpbmcgcmVxdWV1ZWQuICovDQoJ CXJlcS0+dHJhY2VfcmVjLT5mbGFncyB8PQ0KCQkgICAgKENBTV9UUkFDRV9GX1JFVFJJRUQgfCBD QU1fVFJBQ0VfRl9DT01QTEVURSk7DQoJCXJlcS0+dHJhY2VfcmVjLT5mbGFncyAmPSB+Q0FNX1RS QUNFX0ZfSU5QUk9HUkVTUzsNCgkJLyogR2V0IGEgbmV3IHJlY29yZCBmb3IgdGhlIHJldHJ5LiAq Lw0KCQl0cmFjZV9yZWNfaW5pdChyZXEpOw0KCQkvKiBNYXJrIHRoZSBuZXcgcmVjb3JkIGFzIGJl aW5nIGEgcmV0cnkuICovDQoJCXJlcS0+dHJhY2VfcmVjLT5mbGFncyB8PSBDQU1fVFJBQ0VfRl9J U19SRVRSWTsNCgl9DQp9DQoNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCkkn ZCBhcHByZWNpYXRlIGZlZWRiYWNrLCBib3RoIG9uIHRoZSBpbXBsZW1lbnRhdGlvbiBkZXRhaWxz IGFuZCBvbiB0aGUgaWRlYSBhcyBhIHdob2xlLiBTb21lIG9wZW4gcXVlc3Rpb25zIGFyZToNCg0K LSBNeSBhc3N1bXB0aW9uIGlzIHRoYXQgZWFjaCBTSU0gaGFzIGEgc3RydWN0dXJlIHRoYXQgYXNz b2NpYXRlcyBhIFBFUklQSCdzIHNvZnRjIHdpdGggdGhlIENEQiB0aGF0J3MgYmVpbmcgcHJvY2Vz c2VkLiBJdCBtaWdodCByZXF1aXJlIGRlcmVmZXJlbmNpbmcgYSBjaGFpbiBvZiBwb2ludGVycywg YnV0IGl0IHNob3VsZCBiZSB0aGVyZSBpbiBzb21lIGZhc2hpb24uDQoNCi0gVGhlIGN1cnJlbnQg aW1wbGVtZW50YXRpb24gYWRkcyBhIGZldyBpb2N0bHMgdG8gdGhlIG9sZCBhZCg0KSBkaXNrLWRl dmljZSBkcml2ZXIuIEkgd291bGQgZXhwZWN0IHRvIGFkZCB0aGUgbmV3IGlvY3RscyB0byBkYSg0 KSBhbmQgYWRhKDQpOyBpcyB0aGF0IHRoZSByaWdodCB0aGluZyB0byBkbz8NCg0KQWdhaW4sIGFu eSBmZWVkYmFjayB3b3VsZCBiZSBncmVhdGx5IGFwcHJlY2lhdGVkLiBJJ2xsIGJlIGF0IHRoZSBE ZXYvVmVuZG9yIFN1bW1pdCBuZXh0IHdlZWssIGlmIGFueW9uZSB3YW50cyB0byBkaXNjdXNzIHRo aXMgd2l0aCBtZSBpbiBwZXJzb24uDQoNClRoYW5rcywNCg0KUmF2aQ0K From owner-freebsd-geom@freebsd.org Tue Oct 27 02:52:26 2015 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2737BA1D637; Tue, 27 Oct 2015 02:52:26 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-ig0-x230.google.com (mail-ig0-x230.google.com [IPv6:2607:f8b0:4001:c05::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E750D1ED1; Tue, 27 Oct 2015 02:52:25 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: by igbdj2 with SMTP id dj2so69954862igb.1; Mon, 26 Oct 2015 19:52:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=p0N04urbmjDcKXag4ODP61wNFTI9J0m9FSkmzdfrVxE=; b=th4YS+SukWTb9+Pl+hATNh020/GWHaKkl8C7mS+b7gdtjIXX3MA3JTthh54sTkiTI9 xhzG5Mev06XJOvVpDMi7tNPYdm9QXd9s1PYprZYScCl0+L1H9eMIbvo6v/TsREW5pu5i /sIPOd2/0UCVT4PyU85wusBhJbyr6pcVgaq1u4UIm2t9q/S6EISH2oWXRJKjiMGMasKH 1qEURqDYIrOyBAiziqEndhJ3Azhea/n+vOkMtF+mVW8jtd34Jf6E/1+LDOUUCRKErqKy nKdASewgkyG+0Z+pNdJ9SQlCtjG7lYVM2NdNiy0XL1mACn+BnTHbuuS9RdJYhAlBQLJ6 UUqA== MIME-Version: 1.0 X-Received: by 10.50.111.226 with SMTP id il2mr21220057igb.61.1445914345393; Mon, 26 Oct 2015 19:52:25 -0700 (PDT) Received: by 10.36.46.66 with HTTP; Mon, 26 Oct 2015 19:52:25 -0700 (PDT) In-Reply-To: References: Date: Mon, 26 Oct 2015 21:52:25 -0500 Message-ID: Subject: Re: Low-level trace-buffers in CAM From: Adrian Chadd To: "Pokala, Ravi" Cc: "freebsd-geom@freebsd.org" , "freebsd-scsi@freebsd.org" , "freebsd-hackers@freebsd.org" , "ken@freebsd.org" , "imp@freebsd.org" , "scottl@freebsd.org" Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2015 02:52:26 -0000 Hi, ok. So this is where I create work for people. :-) Something I've been tossing up for quite some time is a generic version of this that exposes a ring-buffer of entries back to userland. For things like this, things like ALQ/KTR, etc, it's all just a producer-consumer ring based thing. You don't even care about multiple readers; that's a userland thing. So, I'm a big fan of this. I did this for the ath driver to debug descriptors and register accesses and it was a big help. I'd really like to see a more generic way we can expose this data in an efficient manner! -a From owner-freebsd-geom@freebsd.org Tue Oct 27 03:15:47 2015 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 70020A1E49B for ; Tue, 27 Oct 2015 03:15:47 +0000 (UTC) (envelope-from scott4long@yahoo.com) Received: from nm30-vm8.bullet.mail.gq1.yahoo.com (nm30-vm8.bullet.mail.gq1.yahoo.com [98.136.216.199]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 3E9561F60 for ; Tue, 27 Oct 2015 03:15:47 +0000 (UTC) (envelope-from scott4long@yahoo.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1445915324; bh=EQOsczGewNEODH9UYzy6zp7RenazxJBTgd8Xi9dCsyA=; h=Subject:From:In-Reply-To:Date:Cc:References:To:From:Subject; b=AGViYa2Cy3pWx1CnEU9yQsSgP4pm6dzPKMKz/zY0yLlidB03WVxt9TECMqpPBK4GBhT+fxh7jN75S/b25BRJmba5tXF155m8uhEgF0PRVNeTmt3OGxwy+5K3enzcQq9iyt/FYCGkI0hYfDCn5BE4zxs5jqCdcDzZo1LiV8Yfqm/n/qNAtBUwa8wssT7p5uCfkW2JdafPsvyNlhRGOTV9ZHLSVqSiIoT0ElfJJ3HzFCqo3tjLeKgghZjyyIiiPz5kqcMaGCruQwpKPPjKnut3aXN47kWDE/3t2he9a3I/KVYEpqNPaFrPeSDr6dujhKxh3OGS9SocY8cGc6oNPQv6hQ== Received: from [98.137.12.55] by nm30.bullet.mail.gq1.yahoo.com with NNFMP; 27 Oct 2015 03:08:44 -0000 Received: from [208.71.42.198] by tm15.bullet.mail.gq1.yahoo.com with NNFMP; 27 Oct 2015 03:08:44 -0000 Received: from [127.0.0.1] by smtp209.mail.gq1.yahoo.com with NNFMP; 27 Oct 2015 03:08:44 -0000 X-Yahoo-Newman-Id: 651161.7604.bm@smtp209.mail.gq1.yahoo.com X-Yahoo-Newman-Property: ymail-3 X-YMail-OSG: CO37JK4VM1nFIy7Qa8nbeXEOF9VtrnHzSFncdrpMNP8Tgdg YQ8keMmIC2Nz5Oc3t8jQ4oiN2et05cQ7QWwwpu9pSR01PHJINhqR9WZAaAq9 aFjWMLa5_wcxTmTBzFwULDRemrxPawOzexZa.PROmjSv3NjdhQMrgXuaMPK3 EIbgcmAPnxcBIinCP6nlo_Eb5zmcJg5rES56fDqFPsLl7ADvHTvcTWrE2bBP zSbIItr86dPnmIaBNBnvwTJ49pSCVp9dm1sd57g5OMhS7FyCKcrVQAE6S60b GSM5M5bi3AVgyxWWwGF8U96Om08tFo3e0eMf2yuX_zbv1vzxB.Pr71qh4G5p p.lZfvMMtFpruoY2xe4cXQ8HjJZJACn_VqwZsekcvNDogt2mMamHRd7eXbX8 oWOtTUuvywFgSNR3SuVZhOxqTa0vGKsWv5s0ZY0zSDLRtToEwHwsHeJ0BYps 0a_j2OIHNdfObetFyhwfE3FdMCJGN2kRllio3oodVbHnJS5GoWQeO.Se3Gnt sfSpXfvPJaNxpyTR7mHOucq4V0LFEwsnDPcIBXeY- X-Yahoo-SMTP: clhABp.swBB7fs.LwIJpv3jkWgo2NU8- Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: Low-level trace-buffers in CAM From: Scott Long X-Mailer: iPhone Mail (13B143) In-Reply-To: Date: Mon, 26 Oct 2015 21:08:42 -0600 Cc: "freebsd-geom@freebsd.org" , "freebsd-scsi@freebsd.org" , "freebsd-hackers@freebsd.org" , "ken@freebsd.org" , "imp@freebsd.org" , "scottl@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <2C9653BA-CC10-497B-ACEF-0C76AAE2FF44@yahoo.com> References: To: "Pokala, Ravi" X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2015 03:15:47 -0000 Hi Ravi, Yes I was one of the people who never followed up. I'll be at the vendor su= mmit next week, let's chat some more. Scott Sent from my iPhone > On Oct 26, 2015, at 8:22 PM, Pokala, Ravi wrote: >=20 > Hi folks, >=20 > ---------------------------------------------------------------- > This is an updated re-send of a message I originally sent about a year ago= , during MeetBSD 2014. A few people expressed interest in person, but no one= ever followed up on the lists. I'm bringing this up again, in the hopes tha= t I can get some feedback before / during next week's Dev/Vendor Summit. I'm= CCing some folks who expressed interest at that time, and some folks that I= was told would be interested. > ---------------------------------------------------------------- >=20 > At Panasas, we found it useful to have a trace buffer for each ATA drive i= n the system, for gathering information about command sequences and latency.= I implemented that functionality for our old 7-ish ATA driver, and it works= quite well, with fairly low overhead. (I ran our usual suite of performance= tests, and any differences were lost in the noise.) These traces allowed us= to capture and replay access patterns (though obviously not with the same d= ata), analyze and compare latency, etc. >=20 > As Panasas moves toward a more modern base, we want to re-implement this f= unctionality for ATA, SCSI, NVMe, etc. And push it upstream, of course! :-) >=20 > First, some example output; I wrote code for three different formats: > - The binary trace buffer dump > Useful for manipulating in C; the other two formats are post-processed o= ut of this, and I also wrote a replay utility and a basic stats analyzer whi= ch operated on the binary dump. > - Tabular hex > Useful for parsing with scripts; I never actually used this format, but= it was trivial so I just went ahead and wrote it. > - Human-readable > Useful for eyeballing; on more than one occasion, I was able to see tha= t I had mis-assembled a command in userspace, etc. >=20 > These examples are actually really long lines; I've broken them up and ind= ented for the sake of email: >=20 > # Tabular hex format, for use w/ scripts > # Request time ATA request information Response time =20 > ATA response information sts/err flags > 1445839793003737 c8 0000 0004 000000002fa8 1445839793003806 =20 > c8 0000 0004 000000002fa8 50 00 0000007d > 1445839793003874 c8 0000 0020 000000113ac8 1445839793011541 =20 > c8 0000 0020 000000113ac8 50 00 0000007d > 1445839793011795 c8 0000 0008 000000118ca8 1445839793017702 =20 > c8 0000 0008 000000118ca8 50 00 0000007d > 1445839793017808 c8 0000 0080 000000117628 1445839793018975 =20 > c8 0000 0080 000000117628 50 00 0000007d > 1445839793019079 c8 0000 0020 0000001177a8 1445839793019686 =20 > c8 0000 0020 0000001177a8 50 00 0000007d >=20 > # Human-readable > FLAGS REQUEST TIME RESPONSE TIME ELAPSED TIME = =20 > REQUEST COMMAND STATUS ERROR =20 > RESPONSE COMMAND =20 > ----------- -------------------- -------------------- -----------------= ---=20 > ---------------------------------------- -------- --------=20 > ---------------------------------------- > ____C...._V 1445839793003737 1445839793003806 69 = =20 > READ DMA (LBA 12200 + 4 sectors) _R_S____ ________=20 > ---- =20 > ____C...._V 1445839793003874 1445839793011541 7667 = =20 > READ DMA (LBA 1129160 + 32 sectors) _R_S____ ________=20 > ---- =20 > ____C...._V 1445839793011795 1445839793017702 5907 = =20 > READ DMA (LBA 1150120 + 8 sectors) _R_S____ ________=20 > ---- =20 > ____C...._V 1445839793017808 1445839793018975 1167 = =20 > READ DMA (LBA 1144360 + 128 sectors) _R_S____ ________=20 > ---- =20 > ____C...._V 1445839793019079 1445839793019686 607 = =20 > READ DMA (LBA 1144744 + 32 sectors) _R_S____ ________=20 > ---- =20 >=20 > The obvious place to put this sort of tracing would be in GEOM, but that a= ctually isn't what I want, for a few reasons. First of all, I'm primarily in= terested in the exact register / taskfile / CDB values sent to the drive - o= pcode, feature codes, LBAs, etc. Second, I'm interested in hardware-level la= tency - how long does a request stay in the controller and device. Both of t= hose pretty much require working below GEOM. >=20 > Therefore, I think I want to do it in the CAM stack; ideally, I'd put the h= ooks in the SIM drivers, to get as close to the metal as possible, to get th= e most accurate latency. However, even a light touch to every SIM driver is g= oing to be painful, and since I don't have access to every controller in the= world, testing would be difficult. Adding the hooks to da(4) and ada(4) wou= ld still be pretty close to the metal, and would require much smaller change= s. Or maybe they belong in the XPT layer? (I don't know nearly as much about= CAM as I should. :-/) >=20 > -------- > NOTE: When I mentioned this idea at a (San Francisco) Bay Area FreeBSD Use= r Group (BAFUG) meeting, there were suggestions about integrating this with D= Trace or KTrace instead. I'm happy to consider either of those, but I know e= ven less about those than I do about CAM. If that's really the best way to d= o this sort of thing, I'm happy to learn, if someone is willing to teach. > -------- >=20 > I took the Panasas / 7.x implementation, and pseudo-coded what it might lo= ok like in CAM. (I could probably make diffs against the old ATA stack avail= able for comparison, but I figured no one would care anymore.) A huge caveat= is that I've never really poked in CAM before, so I fully expect I'm doing s= everal things wrong. Please educate me. :-) >=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D >=20 > Create a circular buffer of trace records for each CAM PERIPH. Each record= will contain the full CDB for the request as sent to the device, the timest= amp (in usec) of the request, the CDB as returned by the device, the timesta= mp of the response, and the status and error code. Additionally, flags are p= rovided to track the state of the trace record, and to indicate which type o= f periph the record is associated with. >=20 > -------- >=20 > typedef struct { > u_int32_t flags; > #define CAM_TRACE_F_VALID 0x00000001 /* valid record */ > #define CAM_TRACE_F_INPROGRESS 0x00000002 /* request in progress */ > #define CAM_TRACE_F_REQ_VALID 0x00000004 /* request data valid */ > #define CAM_TRACE_F_RESP_VALID 0x00000008 /* response data valid */ > #define CAM_TRACE_F_COMPLETE 0x00000010 /* response gathered */ > #define CAM_TRACE_F_TIMEDOUT 0x00000020 /* request timed out */ > #define CAM_TRACE_F_ABANDONED 0x00000040 /* cancelled, etc. */ > #define CAM_TRACE_F_RETRIED 0x00000080 /* retry in later record */ > #define CAM_TRACE_F_IS_RETRY 0x00000100 /* retry of earlier req. */ > #define CAM_TRACE_F_PERIPH_MASK 0xf0000000 /* up to 16 PERIPH types *= / > #define CAM_TRACE_F_PERIPH_DA 0x0 > #define CAM_TRACE_F_PERIPH_ADA 0x1 > #define CAM_TRACE_F_PERIPH_NVD 0x2 > u_int64_t req_usec; > cdb_t req_cdb; > u_int64_t resp_usec; > cdb_t resp_cdb; > u_int8_t resp_status; > u_int8_t resp_error; > u_int8_t resp_asc; /* Needed for SCSI? */ > u_int8_t resp_asq; /* Needed for SCSI? */ > u_int8_t padding[8]; /* Pad to 64 bytes */ > /* There's going to be a large-ish array of these in the kernel; make sure= > * they're packed to minimize space usage, and keep things aligned. It may > * make sense to re-order the fields for alignment as well. > */ > } cam_trace_record_t __attribute__((packed, aligned(8))); >=20 > typedef struct { > u_int32_t trace_buf_record_count; > cam_trace_record_t *trace_buf; > } cam_trace_buffer_t; >=20 > /* This is settable via a tunable; for Panasas' purposes, 100K entries was= > * enough to provide a good amount of history even on a busy system, while > * not taking up much space (< 5MB/drive). > */ > #define CAM_TRACE_BUFFER_DEFAULT_COUNT 100000 >=20 > ---------------- >=20 > ioctl interfaces are used to get the trace buffer size, to retrieve the bu= ffer contents, or to clear the buffer. The buffer can then be analyzed from u= serspace, or written to a file for post-processing. >=20 > -------- >=20 > #define CAM_GET_TRACE_RECORD_COUNT _IOR(???, ???, u_int32_t) > #define CAM_GET_TRACE_BUFFER _IOWR(???, ???, cam_trace_buffer_t) > #define CAM_CLEAR_TRACE_BUFFER _IOW(???, ???, u_int32_t) >=20 > ---------------- >=20 > To get the buffer: >=20 > -------- >=20 > cam_trace_buffer_t trace =3D NULL; > fd =3D open(periph_name, O_RDONLY); > error =3D ioctl(fd, CAM_GET_TRACE_RECORD_COUNT, > &trace.trace_buf_record_count); > trace.trace_buf =3D malloc(trace.trace_buf_record_count * > sizeof(cam_trace_record_t)); > error =3D ioctl(fd, CAM_GET_TRACE_BUFFER, &trace); >=20 > ---------------- >=20 > By including the full CDB, the entire command can be decoded by analysis t= ools. Tools can be written to parse the buffer and translate command data in= to human-readable descriptions, calculate elapsed times for requests, perfor= m statistical analysis based on opcode, command type, transfer size, etc. Co= mmand decoders would need to be written for each PERIPH type (i.e. one for A= TA, one for SCSI, one for NVMe, etc.). >=20 > ---------------- >=20 > Each PERIPH's softc needs to include some information about the per-device= > buffer. >=20 > -------- >=20 > u_int32_t trace_buf_record_count; > u_int64_t trace_buf_request_count; > cam_trace_record_t *trace_buf; >=20 > ---------------- >=20 > In each SIM, there should already be some sort of request structure, which= associates the softc and the CDB of the request. To that structure, add a p= ointer to the trace record associated with the request. >=20 > -------- >=20 > request structure: > cam_trace_record_t *trace_rec; >=20 > ---------------- >=20 > When initializing the per-device softc, allocate a trace buffer. The numbe= r of records can be hard-coded, or settable via a tunable. >=20 > The example below has a global size for everything, but it should be possi= ble to do it on a per-device or per-PERIPH basis. >=20 > -------- >=20 > /** Initialize per-drive command tracing buffer. **/ > /* Get the buffer size from the tunable. Sanity check it. */ > sc->trace_buf_record_count =3D CAM_TRACE_BUFFER_DEFAULT_COUNT; > TUNABLE_ULONG_FETCH("cam.trace_buf_record_count", > &trace_buf_record_count_tunable); > if (trace_buf_record_count_tunable) { > /* Less than 1K records is unusably few; more than 1M > * records is unusably many. > */ > if ((trace_buf_record_count_tunable < (1 << 10)) || > (trace_buf_record_count_tunable > (1 << 20))) { > device_printf(dev, "cam.trace_buf_record_count=3D%lu" > " out of range; should be between %u and %u\n", > trace_buf_record_count_tunable, (1 << 10), > (1 << 20)); > } else { > sc->trace_buf_record_count =3D (u_int32_t) > trace_buf_record_count_tunable; > } > } > /* Allocate the buffer. */ > trace_buf_bytes =3D sc->trace_buf_record_count * > sizeof(cam_trace_record_t); > sc->trace_buf =3D malloc(trace_buf_bytes, M_AD, M_NOWAIT | M_ZERO); > if (sc->trace_buf =3D=3D NULL) { > device_printf(dev, "unable to allocate %zd for trace_buf\n", > trace_buf_bytes); > sc->trace_buf_record_count =3D 0; > } else { > device_printf(dev, "allocated %zd @ %p for trace_buf\n", > trace_buf_bytes, sc->trace_buf); > } > /* Request counter, used for indexing */ > sc->trace_buf_request_count =3D 0; >=20 >=20 > ---------------- >=20 > /* Initial setup of the trace record for a new request. > * > * Locate the circular per-device trace buffer in the drive's softc. > * Populate the pointer to the next record in the trace buffer; this is > * done atomically to prevent concurrent requests from getting the same > * index. That could get a bit weird if/when 'trace_buf_request_count' > * rolls over, if the maximum counter value is not a multiple of > * 'trace_buf_record_count' (i.e. the request counter recycles in the > * middle of the buffer). By using a 64-bit request counter, we're pretty > * safe - even at one transaction per nanosecond, that will still last > * about 585 years. > * > * Initialize the record by zeroing it and then setting the VALID flag. > * > * This could be done at any point before sending the request to the > * hardware; neither the CDB data nor the timestamps are involved yet. > */ > void > trace_rec_init(cam_request_t req) { > ada_softc *sc =3D (request->...->softc) > u_int64_t tmp =3D 0; > if (sc && sc->trace_buf) { > tmp =3D atomic_fetchadd_log(&sc->trace_buf_request_count, 1); > req->trace_rec =3D &sc->trace_buf[tmp % > sc->trace_buf_record_count]; > bzero(req->trace_rec, sizeof(*req->trace_rec)); > req->trace_rec->flags =3D (CAM_TRACE_F_PERIPH_XXX << 28); > req->trace_rec->flags |=3D CAM_TRACE_F_VALID; > } else { > req->trace_rec =3D NULL; > } > } >=20 > ---------------- >=20 > /* Stuff the request data into the trace record. > * > * If the trace record is present and valid, copy the CDB into the > * record. Set CAM_TRACE_F_REQ_VALID to indicate that the request data is > * valid, and INPROGRESS to show that the request is in-progress. > * > * This should be done just before sending the request to the hardware. > * This should *not* be fused into trace_rec_init(), because > * trace_rec_init() is also used in the retry case, where it is not > * correct to immediately start the timer. > */ > void > trace_rec_req(cam_request_t req) { > struct timeval tv; > if (req->trace_rec && (req->trace_rec->flags & CAM_TRACE_F_VALID)) { > bcopy(req->cdb, req->trace_rec->req_cdb, sizeof(req->cdb)); > microuptime(&tv); > req->trace_rec->req_usec =3D ((uint64_t) tv->tv_sec * 1000000) > + tv->tv_usec; > req->trace_rec->flags |=3D > (CAM_TRACE_F_REQ_VALID | CAM_TRACE_F_INPROGRESS); > } > } >=20 > ---------------- >=20 > /* Stuff the response data into the trace record. > * > * If the trace record is present and valid, copy the CDB **as returned by= > * the drive** into the record. At this point, we also have the result fro= m > * the command (status, error, (asc? ascq?)), so save them too. Set > * CAM_TRACE_F_RESP_VALID to indicate that the response data is valid. > * Clear INPROGRESS and set COMPLETE instead. > * > * This should be done just after getting the response information from th= e > * hardware. > */ > void > trace_rec_resp(cam_request_t req) { > struct timeval tv; > if (req->trace_rec && (req->trace_rec->flags & CAM_TRACE_F_VALID)) { > microuptime(&tv); > bcopy(req->cdb, req->trace_rec->resp_cdb, sizeof(req->cdb)); > req->trace_rec->resp_usec =3D ((uint64_t) tv->tv_sec * > 1000000) + tv->tv_usec; > req->trace_rec->flags |=3D > (CAM_TRACE_F_RESP_VALID | CAM_TRACE_F_COMPLETE); > req->trace_rec->flags &=3D ~CAM_TRACE_F_INPROGRESS; > } > } >=20 > ---------------- >=20 > /* Update the trace record if there was a timeout. > * > * If the trace record is present and valid, set TIMEDOUT to indicate > * that the request associated with the record exceeded its timeout. > * Since this attempt is complete, clear INPROGRESS and set COMPLETE. > * > * This should be done along with other timeout handling. > */ > void > trace_rec_timeout(cam_request_t req) { > if (req->trace_rec && (req->trace_rec->flags & CAM_TRACE_F_VALID)) { > req->trace_rec->flags |=3D > (CAM_TRACE_F_TIMEDOUT | CAM_TRACE_F_COMPLETE); > req->trace_rec->flags &=3D ~CAM_TRACE_F_INPROGRESS; > } > } >=20 > ---------------- >=20 > /* Update the trace record if the request is being retried. > * =20 > * If the trace record is present and valid, set RETRIED to indicate > * that the request associated with the record is going to be retried. > * Since this attempt is complete, clear INPROGRESS and set COMPLETE. > * Then get a new trace record for the new attempt, copy the request > * command data to the new record, and set IS_RETRY to show that this > * is a retry of an earlier request. > * > * This should be done at the time the retry is queued. > */ > void > trace_rec_retry(cam_request_t req) { > if (req->trace_rec && (req->trace_rec->flags & CAM_TRACE_F_VALID)) { > /* First, mark the original request as being requeued. */ > req->trace_rec->flags |=3D > (CAM_TRACE_F_RETRIED | CAM_TRACE_F_COMPLETE); > req->trace_rec->flags &=3D ~CAM_TRACE_F_INPROGRESS; > /* Get a new record for the retry. */ > trace_rec_init(req); > /* Mark the new record as being a retry. */ > req->trace_rec->flags |=3D CAM_TRACE_F_IS_RETRY; > } > } >=20 > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D >=20 > I'd appreciate feedback, both on the implementation details and on the ide= a as a whole. Some open questions are: >=20 > - My assumption is that each SIM has a structure that associates a PERIPH'= s softc with the CDB that's being processed. It might require dereferencing a= chain of pointers, but it should be there in some fashion. >=20 > - The current implementation adds a few ioctls to the old ad(4) disk-devic= e driver. I would expect to add the new ioctls to da(4) and ada(4); is that t= he right thing to do? >=20 > Again, any feedback would be greatly appreciated. I'll be at the Dev/Vendo= r Summit next week, if anyone wants to discuss this with me in person. >=20 > Thanks, >=20 > Ravi > _______________________________________________ > freebsd-scsi@freebsd.org mailing list > https://lists.freebsd.org/mailman/listinfo/freebsd-scsi > To unsubscribe, send any mail to "freebsd-scsi-unsubscribe@freebsd.org" From owner-freebsd-geom@freebsd.org Tue Oct 27 04:22:52 2015 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id CA863A066CE; Tue, 27 Oct 2015 04:22:52 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0084.outbound.protection.outlook.com [207.46.100.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 23EBE1E16; Tue, 27 Oct 2015 04:22:51 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from CY1PR08MB1803.namprd08.prod.outlook.com (10.162.218.25) by CY1PR08MB1801.namprd08.prod.outlook.com (10.162.218.23) with Microsoft SMTP Server (TLS) id 15.1.306.13; Tue, 27 Oct 2015 04:22:49 +0000 Received: from CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) by CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) with mapi id 15.01.0306.003; Tue, 27 Oct 2015 04:22:49 +0000 From: "Pokala, Ravi" To: Scott Long CC: "freebsd-geom@freebsd.org" , "freebsd-scsi@freebsd.org" , "freebsd-hackers@freebsd.org" , "ken@freebsd.org" , "imp@freebsd.org" , "scottl@freebsd.org" Subject: Re: Low-level trace-buffers in CAM Thread-Topic: Low-level trace-buffers in CAM Thread-Index: AQHREF5W2DCPOIdjUUGMRg6fRJs3w55+qNQA//+fWoA= Date: Tue, 27 Oct 2015 04:22:49 +0000 Message-ID: <12D1A6F3-2C2B-4912-B752-7DDF9EB09CD9@panasas.com> References: <2C9653BA-CC10-497B-ACEF-0C76AAE2FF44@yahoo.com> In-Reply-To: <2C9653BA-CC10-497B-ACEF-0C76AAE2FF44@yahoo.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/0.0.0.151008 authentication-results: spf=none (sender IP is ) smtp.mailfrom=rpokala@panasas.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [24.6.178.251] x-microsoft-exchange-diagnostics: 1; CY1PR08MB1801; 5:4djtNbEwtU6shvp5hZnmyquE8kbmrx8oA9lb48KOHqa1dm6AF2+y19rHFwkJeqCLp2UWH7acWCYOtt81masGdyrDw5Wq3ljLXNpHrf7xzHs6ibAaZByfcnRIrIscnLoWcwm6whVK3/gMkiot7KEZJA==; 24:7JWPSg0Mj80J+9v9M/IpbEUw27vtAmBzd7U9YFbsJOGmcbIflNaKiUSH1fVz8CmalsUVhy5hVPwTu6w3/YznbTKho7Du66XelIVvOzetd18=; 20:EU/c1mX/qDZ5BKIpDSBfANGdb9ItBFFqsFH265+GtBakPyHkZkx44kUjs+QX7v8O64CJHTZvCS4Rg1vGu7tbpg== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR08MB1801; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(201166117486090)(239227872634102); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(102215026); SRVR:CY1PR08MB1801; BCL:0; PCL:0; RULEID:; SRVR:CY1PR08MB1801; x-forefront-prvs: 0742443479 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(13464003)(377424004)(199003)(189002)(189998001)(66066001)(5004730100002)(33656002)(11100500001)(5007970100001)(2900100001)(5008740100001)(5001960100002)(10400500002)(102836002)(77096005)(110136002)(2950100001)(92566002)(5002640100001)(4001150100001)(19580405001)(81156007)(97736004)(19580395003)(83506001)(82746002)(106116001)(87936001)(40100003)(122556002)(105586002)(2521001)(36756003)(86362001)(99286002)(4001350100001)(50986999)(106356001)(101416001)(76176999)(54356999)(83716003)(104396002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR08MB1801; H:CY1PR08MB1803.namprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: panasas.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <7674820A88048243B3C70D2E851DBE35@namprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: panasas.com X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Oct 2015 04:22:49.2661 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: acf01c9d-c699-42af-bdbb-44bf582e60b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR08MB1801 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2015 04:22:53 -0000 LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCg0KDQpGcm9tOiBTY290dCBMb25nIDxzY290dDRs b25nQHlhaG9vLmNvbT4NCkRhdGU6IDIwMTUtMTAtMjYsIE1vbmRheSBhdCAyMDowOA0KVG86IFJh dmkgUG9rYWxhIDxycG9rYWxhQHBhbmFzYXMuY29tPg0KQ2M6ICJmcmVlYnNkLWdlb21AZnJlZWJz ZC5vcmciIDxmcmVlYnNkLWdlb21AZnJlZWJzZC5vcmc+LCAiZnJlZWJzZC1zY3NpQGZyZWVic2Qu b3JnIiA8ZnJlZWJzZC1zY3NpQGZyZWVic2Qub3JnPiwgImZyZWVic2QtaGFja2Vyc0BmcmVlYnNk Lm9yZyIgPGZyZWVic2QtaGFja2Vyc0BmcmVlYnNkLm9yZz4sICJrZW5AZnJlZWJzZC5vcmciIDxr ZW5AZnJlZWJzZC5vcmc+LCAiaW1wQGZyZWVic2Qub3JnIiA8aW1wQGZyZWVic2Qub3JnPiwgInNj b3R0bEBmcmVlYnNkLm9yZyIgPHNjb3R0bEBmcmVlYnNkLm9yZz4NClN1YmplY3Q6IFJlOiBMb3ct bGV2ZWwgdHJhY2UtYnVmZmVycyBpbiBDQU0NCg0KPkhpIFJhdmksDQo+DQo+WWVzIEkgd2FzIG9u ZSBvZiB0aGUgcGVvcGxlIHdobyBuZXZlciBmb2xsb3dlZCB1cC4NCg0KTm8gd29ycmllcy4gSSdt IGp1c3Qgbm93IGNpcmNsaW5nIGJhY2sgYXJvdW5kIHRvIGl0IG15c2VsZi4NCg0KPkknbGwgYmUg YXQgdGhlIHZlbmRvciBzdW1taXQgbmV4dCB3ZWVrLCBsZXQncyBjaGF0IHNvbWUgbW9yZS4NCg0K TG9va2luZyBmb3J3YXJkIHRvIGl0LiBTZWUgeW91IHRoZW4uDQoNCi1SYXZpDQoNCj5TY290dA0K From owner-freebsd-geom@freebsd.org Tue Oct 27 04:56:34 2015 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 81786A06CC6; Tue, 27 Oct 2015 04:56:34 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1bn0100.outbound.protection.outlook.com [157.56.110.100]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8FC7018AB; Tue, 27 Oct 2015 04:56:33 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from CY1PR08MB1803.namprd08.prod.outlook.com (10.162.218.25) by CY1PR08MB1801.namprd08.prod.outlook.com (10.162.218.23) with Microsoft SMTP Server (TLS) id 15.1.306.13; Tue, 27 Oct 2015 04:21:58 +0000 Received: from CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) by CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) with mapi id 15.01.0306.003; Tue, 27 Oct 2015 04:21:58 +0000 From: "Pokala, Ravi" To: Adrian Chadd CC: "freebsd-geom@freebsd.org" , "freebsd-scsi@freebsd.org" , "freebsd-hackers@freebsd.org" , "ken@freebsd.org" , "imp@freebsd.org" , "scottl@freebsd.org" Subject: Re: Low-level trace-buffers in CAM Thread-Topic: Low-level trace-buffers in CAM Thread-Index: AQHREF5W2DCPOIdjUUGMRg6fRJs3w55+pEiA//+jqQA= Date: Tue, 27 Oct 2015 04:21:58 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/0.0.0.151008 authentication-results: spf=none (sender IP is ) smtp.mailfrom=rpokala@panasas.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [24.6.178.251] x-microsoft-exchange-diagnostics: 1; CY1PR08MB1801; 5:US3Ailkrpkb9jcOEy1WylEDtrYnQS67nzRpt/ILe9Xg92Tgo0yIh7cMUWI0e1SpZgwff+x8/WufAIQmXydlaAI8rc27LZMwQ9lva7hLW108g69OF5pst7kF3pvqJv2t2/YSeBSZW7pbRbi71nYQQjQ==; 24:5ziYBHVUzSIPwL+JEAKXKMe86GFDhbcEofIOJ225d2tY5ehJUFeg7H2uavSzqyGJsw+j41QPnJET9jmO38hFSmrM5DGdwCo7DuLv93Vkrxo=; 20:MaU9/bUsYZ83xEYB3IY9HLgjOG0Z4ThlotUIgZGcyxY0C62ToDlUVb4jpkeWXJ7lV9MIUwxPPoQ/eEun7DjbiQ== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR08MB1801; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(239227872634102); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(5005006)(520078)(8121501046)(3002001)(102215026); SRVR:CY1PR08MB1801; BCL:0; PCL:0; RULEID:; SRVR:CY1PR08MB1801; x-forefront-prvs: 0742443479 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(13464003)(377424004)(199003)(189002)(189998001)(66066001)(5004730100002)(33656002)(11100500001)(5007970100001)(2900100001)(5008740100001)(5001960100002)(10400500002)(102836002)(77096005)(110136002)(2950100001)(92566002)(5002640100001)(4001150100001)(19580405001)(81156007)(97736004)(19580395003)(83506001)(82746002)(106116001)(87936001)(40100003)(122556002)(105586002)(36756003)(86362001)(99286002)(4001350100001)(50986999)(106356001)(101416001)(76176999)(54356999)(83716003)(104396002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR08MB1801; H:CY1PR08MB1803.namprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: panasas.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <977EA068F5C318448D0D73F79294A6FB@namprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: panasas.com X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Oct 2015 04:21:58.2318 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: acf01c9d-c699-42af-bdbb-44bf582e60b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR08MB1801 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2015 04:56:34 -0000 LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCg0KDQpGcm9tOiBBZHJpYW4gQ2hhZGQgPGFkcmlh bi5jaGFkZEBnbWFpbC5jb20+DQpEYXRlOiAyMDE1LTEwLTI2LCBNb25kYXkgYXQgMTk6NTINClRv OiBSYXZpIFBva2FsYSA8cnBva2FsYUBwYW5hc2FzLmNvbT4NCkNjOiAiZnJlZWJzZC1nZW9tQGZy ZWVic2Qub3JnIiA8ZnJlZWJzZC1nZW9tQGZyZWVic2Qub3JnPiwgImZyZWVic2Qtc2NzaUBmcmVl YnNkLm9yZyIgPGZyZWVic2Qtc2NzaUBmcmVlYnNkLm9yZz4sICJmcmVlYnNkLWhhY2tlcnNAZnJl ZWJzZC5vcmciIDxmcmVlYnNkLWhhY2tlcnNAZnJlZWJzZC5vcmc+LCAia2VuQGZyZWVic2Qub3Jn IiA8a2VuQGZyZWVic2Qub3JnPiwgImltcEBmcmVlYnNkLm9yZyIgPGltcEBmcmVlYnNkLm9yZz4s ICJzY290dGxAZnJlZWJzZC5vcmciIDxzY290dGxAZnJlZWJzZC5vcmc+DQpTdWJqZWN0OiBSZTog TG93LWxldmVsIHRyYWNlLWJ1ZmZlcnMgaW4gQ0FNDQoNCj5IaSwNCj4NCj5vay4gU28gdGhpcyBp cyB3aGVyZSBJIGNyZWF0ZSB3b3JrIGZvciBwZW9wbGUuIDotKQ0KDQpUc2ssIHRzayEgKkkqIHdv dWxkIG5ldmVyIGRvIHN1Y2ggYSB0aGluZyEgOy0pDQoNCj5Tb21ldGhpbmcgSSd2ZSBiZWVuIHRv c3NpbmcgdXAgZm9yIHF1aXRlIHNvbWUgdGltZSBpcyBhIGdlbmVyaWMgdmVyc2lvbiBvZiB0aGlz IHRoYXQgZXhwb3NlcyBhIHJpbmctYnVmZmVyIG9mIGVudHJpZXMgYmFjayB0byB1c2VybGFuZC4g Rm9yIHRoaW5ncyBsaWtlIHRoaXMsIHRoaW5ncyBsaWtlIEFMUS9LVFIsIGV0YywgaXQncyBhbGwg anVzdCBhIHByb2R1Y2VyLWNvbnN1bWVyIHJpbmcgYmFzZWQgdGhpbmcuIFlvdSBkb24ndCBldmVu IGNhcmUgYWJvdXQgbXVsdGlwbGUgcmVhZGVyczsgdGhhdCdzIGEgdXNlcmxhbmQgdGhpbmcuDQo+ DQo+U28sIEknbSBhIGJpZyBmYW4gb2YgdGhpcy4gSSBkaWQgdGhpcyBmb3IgdGhlIGF0aCBkcml2 ZXIgdG8gZGVidWcgZGVzY3JpcHRvcnMgYW5kIHJlZ2lzdGVyIGFjY2Vzc2VzIGFuZCBpdCB3YXMg YSBiaWcgaGVscC4gSSdkIHJlYWxseSBsaWtlIHRvIHNlZSBhIG1vcmUgZ2VuZXJpYyB3YXkgd2Ug Y2FuIGV4cG9zZSB0aGlzIGRhdGEgaW4gYW4gZWZmaWNpZW50IG1hbm5lciENCg0KSSdtIGhhdmlu ZyB0cm91YmxlIHBhcnNpbmcgdGhhdCAtIGl0J3MgYmVlbiBhIGxvbmcgZGF5LiBZb3UncmUgdGFs a2luZyBhYm91dCBjcmVhdGluZyBhIGdlbmVyaWMgaW4ta2VybmVsIHJpbmctYnVmZmVyIGltcGxl bWVudGF0aW9uLCB0aGF0IHdlIGNvdWxkIGxldmVyYWdlIGZvciAoQ0FNIHRyYWNpbmcgfCBLVFIg fCB3aGF0ZXZlcik/IExpa2Ugd2UgZGlkIGZvciB2YXJpb3VzIGxpc3QgYW5kIHF1ZXVlIHR5cGVz IGluIDxzeXMvcXVldWUuaD4/IFRoYXQncyBhIGdvb2QgaWRlYSwgYnV0IEkgZ28gY3Jvc3MtZXll ZCBhbnkgdGltZSBJIGxvb2sgdG9vIGNsb3NlbHkgYXQgYWxsIHRoZSBwcmVwcm9jZXNzb3ItZnUg aW4gdGhlcmUuIDotKQ0KDQotUmF2aQ0KDQo+LWENCg== From owner-freebsd-geom@freebsd.org Tue Oct 27 22:26:04 2015 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DB431A1F360; Tue, 27 Oct 2015 22:26:04 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0058.outbound.protection.outlook.com [157.56.110.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C657510A4; Tue, 27 Oct 2015 22:26:02 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from CY1PR08MB1803.namprd08.prod.outlook.com (10.162.218.25) by CY1PR08MB1801.namprd08.prod.outlook.com (10.162.218.23) with Microsoft SMTP Server (TLS) id 15.1.306.13; Tue, 27 Oct 2015 22:25:54 +0000 Received: from CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) by CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) with mapi id 15.01.0306.003; Tue, 27 Oct 2015 22:25:53 +0000 From: "Pokala, Ravi" To: Adrian Chadd CC: "freebsd-geom@freebsd.org" , "freebsd-scsi@freebsd.org" , "freebsd-hackers@freebsd.org" , "ken@freebsd.org" , "imp@freebsd.org" , "scottl@freebsd.org" Subject: Re: Low-level trace-buffers in CAM Thread-Topic: Low-level trace-buffers in CAM Thread-Index: AQHREF5W2DCPOIdjUUGMRg6fRJs3w55+pEiA//+jqQCAAS7bgA== Date: Tue, 27 Oct 2015 22:25:53 +0000 Message-ID: <18A15118-7860-4912-B2D4-1EA51054D3FD@panasas.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/0.0.0.151008 authentication-results: spf=none (sender IP is ) smtp.mailfrom=rpokala@panasas.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [64.80.217.3] x-microsoft-exchange-diagnostics: 1; CY1PR08MB1801; 5:KHiVyCODBCiTNx0/E/c4u1fmCed68iAL9ujFl8wy5c6mlrT2F/m0XhNwpR31lmoWxLy/hEC3ZxY4Pdg4k2K/UqPongnC+9Sfi3DLvGY6g67GErSijr3GCNCltoC8MFAp92gNq6BQQPjUNX8AyWzlTA==; 24:yKDK2S78dwuY8YGVqTDC/9OWHGu14hCPk9tDqR/dwVgf6V32cTPQVW5wtVdwWBR1cbOgCycwhUqKA+7GejgepYiO2IARa1kIISyI15i8EPY=; 20:yRgnrEhK382Sqsjf/ODY2IK0lWPX7TVY8GoK2yBxFv5JCx4981fNIP6mTWCUqxcFSclWEhxG+i+f8l/pEQg/iw== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR08MB1801; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(239227872634102); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(10201501037)(3002001)(102215026); SRVR:CY1PR08MB1801; BCL:0; PCL:0; RULEID:; SRVR:CY1PR08MB1801; x-forefront-prvs: 0742443479 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(189002)(13464003)(199003)(377424004)(5002640100001)(82746002)(122556002)(106356001)(87936001)(83506001)(19580395003)(81156007)(105586002)(19580405001)(4001150100001)(36756003)(40100003)(106116001)(54356999)(83716003)(86362001)(50986999)(4001350100001)(76176999)(101416001)(99286002)(97736004)(66066001)(5004730100002)(33656002)(189998001)(92566002)(5001920100001)(77096005)(110136002)(102836002)(2900100001)(5008740100001)(2950100001)(10400500002)(5007970100001)(5001960100002)(104396002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR08MB1801; H:CY1PR08MB1803.namprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; received-spf: None (protection.outlook.com: panasas.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: panasas.com X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Oct 2015 22:25:53.4472 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: acf01c9d-c699-42af-bdbb-44bf582e60b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR08MB1801 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 27 Oct 2015 22:26:05 -0000 LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCg0KDQpGcm9tOiBSYXZpIFBva2FsYSA8cnBva2Fs YUBwYW5hc2FzLmNvbT4NCkRhdGU6IDIwMTUtMTAtMjYsIE1vbmRheSBhdCAyMToyMQ0KVG86IEFk cmlhbiBDaGFkZCA8YWRyaWFuLmNoYWRkQGdtYWlsLmNvbT4NCkNjOiAiZnJlZWJzZC1nZW9tQGZy ZWVic2Qub3JnIiA8ZnJlZWJzZC1nZW9tQGZyZWVic2Qub3JnPiwgImZyZWVic2Qtc2NzaUBmcmVl YnNkLm9yZyIgPGZyZWVic2Qtc2NzaUBmcmVlYnNkLm9yZz4sICJmcmVlYnNkLWhhY2tlcnNAZnJl ZWJzZC5vcmciIDxmcmVlYnNkLWhhY2tlcnNAZnJlZWJzZC5vcmc+LCAia2VuQGZyZWVic2Qub3Jn IiA8a2VuQGZyZWVic2Qub3JnPiwgImltcEBmcmVlYnNkLm9yZyIgPGltcEBmcmVlYnNkLm9yZz4s ICJzY290dGxAZnJlZWJzZC5vcmciIDxzY290dGxAZnJlZWJzZC5vcmc+DQpTdWJqZWN0OiBSZTog TG93LWxldmVsIHRyYWNlLWJ1ZmZlcnMgaW4gQ0FNDQoNCj5JJ20gaGF2aW5nIHRyb3VibGUgcGFy c2luZyB0aGF0IC0gaXQncyBiZWVuIGEgbG9uZyBkYXkuIFlvdSdyZSB0YWxraW5nIGFib3V0IGNy ZWF0aW5nIGEgZ2VuZXJpYyBpbi1rZXJuZWwgcmluZy1idWZmZXIgaW1wbGVtZW50YXRpb24sIHRo YXQgd2UgY291bGQgbGV2ZXJhZ2UgZm9yIChDQU0gdHJhY2luZyB8IEtUUiB8IHdoYXRldmVyKT8g TGlrZSB3ZSBkaWQgZm9yIHZhcmlvdXMgbGlzdCBhbmQgcXVldWUgdHlwZXMgaW4gPHN5cy9xdWV1 ZS5oPj8gVGhhdCdzIGEgZ29vZCBpZGVhLCBidXQgSSBnbyBjcm9zcy1leWVkIGFueSB0aW1lIEkg bG9vayB0b28gY2xvc2VseSBhdCBhbGwgdGhlIHByZXByb2Nlc3Nvci1mdSBpbiB0aGVyZS4gOi0p DQoNCkxvb2tpbmcgYXQgaXQgYWdhaW4gdG9kYXksIEkgdGhpbmsgSSBtaXMtcGFyc2VkIGl0LiBZ b3Ugd2VyZSAqYWN0dWFsbHkqIHRhbGtpbmcgYWJvdXQgYSBnZW5lcmljICppbnRlcmZhY2UqIGZv ciBwYXNzaW5nIGEgcmluZyBvdXQgb2YgdGhlIGtlcm5lbCwgcmlnaHQ/IFRoZSBrZXJuZWwganVz dCBkdW1wcyBvbnRvIGl0LCBhbmQgdXNlcmxhbmQgZGVhbHMgd2l0aCB3YWxraW5nIGl0LCBmaWd1 cmluZyBvdXQgaWYgaXQncyB0aGUgcmVjb3JkIGlzIHNvbWV0aGluZyB3ZSdyZSBpbnRlcmVzdGVk IGluLCBldGMuDQoNCk9yIGRpZCB5b3UgbWVhbiBhIDNyZCB0aGluZz8gOi0pDQoNCi1SYXZpDQo= From owner-freebsd-geom@freebsd.org Wed Oct 28 14:03:33 2015 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2984DA1F7E5; Wed, 28 Oct 2015 14:03:33 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from zxy.spb.ru (zxy.spb.ru [195.70.199.98]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id D8A9714FF; Wed, 28 Oct 2015 14:03:32 +0000 (UTC) (envelope-from slw@zxy.spb.ru) Received: from slw by zxy.spb.ru with local (Exim 4.84 (FreeBSD)) (envelope-from ) id 1ZrRJy-000Fhj-Ed; Wed, 28 Oct 2015 17:03:22 +0300 Date: Wed, 28 Oct 2015 17:03:22 +0300 From: Slawa Olhovchenkov To: "Pokala, Ravi" Cc: "freebsd-geom@freebsd.org" , "freebsd-scsi@freebsd.org" , "freebsd-hackers@freebsd.org" , "ken@freebsd.org" , "imp@freebsd.org" , "scottl@freebsd.org" Subject: Re: Low-level trace-buffers in CAM Message-ID: <20151028140322.GK6469@zxy.spb.ru> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: slw@zxy.spb.ru X-SA-Exim-Scanned: No (on zxy.spb.ru); SAEximRunCond expanded to false X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Oct 2015 14:03:33 -0000 On Tue, Oct 27, 2015 at 02:22:33AM +0000, Pokala, Ravi wrote: > Hi folks, > > ---------------------------------------------------------------- > This is an updated re-send of a message I originally sent about a year ago, during MeetBSD 2014. A few people expressed interest in person, but no one ever followed up on the lists. I'm bringing this up again, in the hopes that I can get some feedback before / during next week's Dev/Vendor Summit. I'm CCing some folks who expressed interest at that time, and some folks that I was told would be interested. > ---------------------------------------------------------------- What about also export average queue length? May be request wait time in queue. From owner-freebsd-geom@freebsd.org Wed Oct 28 20:29:23 2015 Return-Path: Delivered-To: freebsd-geom@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 810D0A205B8; Wed, 28 Oct 2015 20:29:23 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from na01-bn1-obe.outbound.protection.outlook.com (mail-bn1on0059.outbound.protection.outlook.com [157.56.110.59]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "MSIT Machine Auth CA 2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 419AB115A; Wed, 28 Oct 2015 20:29:21 +0000 (UTC) (envelope-from rpokala@panasas.com) Received: from CY1PR08MB1803.namprd08.prod.outlook.com (10.162.218.25) by CY1PR08MB1804.namprd08.prod.outlook.com (10.162.218.26) with Microsoft SMTP Server (TLS) id 15.1.306.13; Wed, 28 Oct 2015 20:29:13 +0000 Received: from CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) by CY1PR08MB1803.namprd08.prod.outlook.com ([10.162.218.25]) with mapi id 15.01.0306.003; Wed, 28 Oct 2015 20:29:12 +0000 From: "Pokala, Ravi" To: Slawa Olhovchenkov CC: "freebsd-geom@freebsd.org" , "freebsd-scsi@freebsd.org" , "freebsd-hackers@freebsd.org" , "ken@freebsd.org" , "imp@freebsd.org" , "scottl@freebsd.org" Subject: Re: Low-level trace-buffers in CAM Thread-Topic: Low-level trace-buffers in CAM Thread-Index: AQHREF5W2DCPOIdjUUGMRg6fRJs3w56A8hIA///2c4A= Date: Wed, 28 Oct 2015 20:29:12 +0000 Message-ID: <76951B36-ADA9-45AC-BC20-2A8340DEC6B8@panasas.com> References: <20151028140322.GK6469@zxy.spb.ru> In-Reply-To: <20151028140322.GK6469@zxy.spb.ru> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Microsoft-MacOutlook/0.0.0.151008 authentication-results: spf=none (sender IP is ) smtp.mailfrom=rpokala@panasas.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [64.80.217.3] x-microsoft-exchange-diagnostics: 1; CY1PR08MB1804; 5:c6qRbEpEfVaJuKUkHbjuhg07MxfN6rrlcQ6qoLmbEz6bSLAiG3H5V/gqX0fOeaU+qF+6mklYcoEYVBKpLBwNxtt5BviQRN9Td8OXl0f5Tdk1TnUjSe0y5q3GWQ0LqZFs2S2ZPgK7VC05kYXs4OG+gg==; 24:EprJwT9EfvBgScJTLO7KxPffk9Qny1i/nNC/0wBwhjHP5uSH8m3eRkZYB/Xyklu9rXNlkqkfTvEqGyjjtm3uzn/8gtojz8j9kbZYRdxRntk=; 20:G2x4I/r9jPvTqz7/OvXEY8HbgmlKXujvHPJMYNgjentWf2p88gVbqGva0RKWqzKlZPChBfTWU1EetitA9+JGfg== x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR08MB1804; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(239227872634102); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(601004)(2401047)(520078)(8121501046)(5005006)(10201501046)(3002001)(102215026); SRVR:CY1PR08MB1804; BCL:0; PCL:0; RULEID:; SRVR:CY1PR08MB1804; x-forefront-prvs: 0743E8D0A6 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(24454002)(199003)(13464003)(189002)(377424004)(106356001)(19580395003)(33656002)(106116001)(2900100001)(19580405001)(4477795004)(66066001)(5007970100001)(105586002)(4001350100001)(92566002)(83716003)(5004730100002)(50986999)(81156007)(99286002)(102836002)(77096005)(4001150100001)(10400500002)(5002640100001)(5008740100001)(101416001)(36756003)(2950100001)(86362001)(189998001)(97736004)(83506001)(110136002)(40100003)(87936001)(5001960100002)(76176999)(54356999)(122556002)(82746002)(104396002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR08MB1804; H:CY1PR08MB1803.namprd08.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: panasas.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:23 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <86E42B15E4EF4D4098A0ADEA231CE97C@namprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: panasas.com X-MS-Exchange-CrossTenant-originalarrivaltime: 28 Oct 2015 20:29:12.6307 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: acf01c9d-c699-42af-bdbb-44bf582e60b0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR08MB1804 X-BeenThere: freebsd-geom@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: GEOM-specific discussions and implementations List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 28 Oct 2015 20:29:23 -0000 LS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCg0KDQpGcm9tOiBTbGF3YSBPbGhvdmNoZW5rb3Yg PHNsd0B6eHkuc3BiLnJ1Pg0KRGF0ZTogMjAxNS0xMC0yOCwgV2VkbmVzZGF5IGF0IDA3OjAzDQpU bzogUmF2aSBQb2thbGEgPHJwb2thbGFAcGFuYXNhcy5jb20+DQpDYzogImZyZWVic2QtZ2VvbUBm cmVlYnNkLm9yZyIgPGZyZWVic2QtZ2VvbUBmcmVlYnNkLm9yZz4sICJmcmVlYnNkLXNjc2lAZnJl ZWJzZC5vcmciIDxmcmVlYnNkLXNjc2lAZnJlZWJzZC5vcmc+LCAiZnJlZWJzZC1oYWNrZXJzQGZy ZWVic2Qub3JnIiA8ZnJlZWJzZC1oYWNrZXJzQGZyZWVic2Qub3JnPiwgImtlbkBmcmVlYnNkLm9y ZyIgPGtlbkBmcmVlYnNkLm9yZz4sICJpbXBAZnJlZWJzZC5vcmciIDxpbXBAZnJlZWJzZC5vcmc+ LCAic2NvdHRsQGZyZWVic2Qub3JnIiA8c2NvdHRsQGZyZWVic2Qub3JnPg0KU3ViamVjdDogUmU6 IExvdy1sZXZlbCB0cmFjZS1idWZmZXJzIGluIENBTQ0KDQo+T24gVHVlLCBPY3QgMjcsIDIwMTUg YXQgMDI6MjI6MzNBTSArMDAwMCwgUG9rYWxhLCBSYXZpIHdyb3RlOg0KPg0KPj4gSGkgZm9sa3Ms DQo+PiANCj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0NCj4+IFRoaXMgaXMgYW4gdXBkYXRlZCByZS1zZW5kIG9mIGEgbWVz c2FnZSBJIG9yaWdpbmFsbHkgc2VudCBhYm91dCBhIHllYXIgYWdvLCBkdXJpbmcgTWVldEJTRCAy MDE0LiBBIGZldyBwZW9wbGUgZXhwcmVzc2VkIGludGVyZXN0IGluIHBlcnNvbiwgYnV0IG5vIG9u ZSBldmVyIGZvbGxvd2VkIHVwIG9uIHRoZSBsaXN0cy4gSSdtIGJyaW5naW5nIHRoaXMgdXAgYWdh aW4sIGluIHRoZSBob3BlcyB0aGF0IEkgY2FuIGdldCBzb21lIGZlZWRiYWNrIGJlZm9yZSAvIGR1 cmluZyBuZXh0IHdlZWsncyBEZXYvVmVuZG9yIFN1bW1pdC4gSSdtIENDaW5nIHNvbWUgZm9sa3Mg d2hvIGV4cHJlc3NlZCBpbnRlcmVzdCBhdCB0aGF0IHRpbWUsIGFuZCBzb21lIGZvbGtzIHRoYXQg SSB3YXMgdG9sZCB3b3VsZCBiZSBpbnRlcmVzdGVkLg0KPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPg0KPldoYXQgYWJv dXQgYWxzbyBleHBvcnQgYXZlcmFnZSBxdWV1ZSBsZW5ndGg/IE1heSBiZSByZXF1ZXN0IHdhaXQg dGltZSBpbiBxdWV1ZS4NCg0KVGhvc2UgYXJlIGNlcnRhaW5seSBnb29kIHRvIGhhdmUsIGJ1dCBh cmUgYXQgYSBoaWdoZXIgbGF5ZXIgdGhhbiB3aGF0IEknbSB0cnlpbmcgdG8gY2FwdHVyZS4gSSdt IHJlYWxseSBpbnRlcmVzdGVkIGluIHdoYXQncyBnb2luZyBpbnRvIGFuZCBvdXQgb2YgdGhlIGhh cmR3YXJlIC0gdGhlIHZhbHVlcyBvZiB0aGUgQ0RCIGZpZWxkcyBqdXN0IGJlZm9yZSB0aGV5IGdl dCBzZW50IHRvIHRoZSBoYXJkd2FyZSwgYW5kIHRoZSBlbGFwc2VkIHRpbWUgYW5kIHJldHVybi1D REIgZmllbGRzIHdoZW4gdGhlIFNJTSBkcml2ZXIncyBpbnRlcnJ1cHQgaGFuZGxlciBmaXJlcyBh dCBjb21tYW5kIGNvbXBsZXRpb24uIEFkbWl0dGVkbHksIG1vc3QgcGVvcGxlIGRvbid0IG5lZWQg dGhhdCBsZXZlbCBvZiBkZXRhaWwsIGJ1dCBJIHdvcmsgZm9yIGEgc3RvcmFnZSBjb21wYW55LCBz byAuLi4gOy0pDQoNCi1SYXZpDQo=