From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 99559 invoked by alias); 20 Sep 2017 11:00:03 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Received: (qmail 96425 invoked by uid 89); 20 Sep 2017 11:00:01 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.5 required=5.0 tests=AWL,BAYES_00,MIME_BASE64_BLANKS,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=Hx-languages-length:1890, HAccept-Language:en-GB X-Spam-User: qpsmtpd, 2 recipients X-HELO: EUR01-HE1-obe.outbound.protection.outlook.com Received: from mail-he1eur01on0057.outbound.protection.outlook.com (HELO EUR01-HE1-obe.outbound.protection.outlook.com) (104.47.0.57) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 20 Sep 2017 10:59:59 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com (10.160.211.19) by AM3PR08MB0166.eurprd08.prod.outlook.com (10.161.35.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11; Wed, 20 Sep 2017 10:59:55 +0000 Received: from AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::916d:2b75:34f2:da29]) by AM3PR08MB0101.eurprd08.prod.outlook.com ([fe80::916d:2b75:34f2:da29%17]) with mapi id 15.20.0056.018; Wed, 20 Sep 2017 10:59:55 +0000 From: Alan Hayward To: Dave P Martin CC: "linux-arm-kernel@lists.infradead.org" , Catalin Marinas , Will Deacon , Ard Biesheuvel , =?utf-8?B?QWxleCBCZW5uw6ll?= , Szabolcs Nagy , "Richard Sandiford" , "kvmarm@lists.cs.columbia.edu" , "libc-alpha@sourceware.org" , "linux-arch@vger.kernel.org" , "gdb@sourceware.org" , "Yao Qi" , nd Subject: Re: [PATCH v2 14/28] arm64/sve: Backend logic for setting the vector length Date: Wed, 20 Sep 2017 11:00:00 -0000 Message-ID: References: <1504198860-12951-1-git-send-email-Dave.Martin@arm.com> <1504198860-12951-15-git-send-email-Dave.Martin@arm.com> In-Reply-To: <1504198860-12951-15-git-send-email-Dave.Martin@arm.com> authentication-results: spf=none (sender IP is ) smtp.mailfrom=Alan.Hayward@arm.com; x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;AM3PR08MB0166;6:xcNdcj4GfeGn4lp+/qz81028oMDHHJ1BSM4PiUe/6uraIhRvAnC7KYbP6qSClIr5u/NGvQNlbseKsSurQNLVD7OdQnq9Znw+IRFJXR8QXERHUhzuvLVCIRBHIhxKGM/R4CIQ2JKE7S13qx99iMPLmj20wiHG3UF9y8eoThwwOPqPrAF9bF4vchTewFRJoIVEoaCcsQujKXxjgH7r8CsapsaFjrwu0UpzqNjKaTlCWh8JA0iXx5Wx+mwYPec+EKpjD1hN5DXRNXydK4bJ3NMugbyLtCLYhqnpMeYzKzrX4dCZ49iJ3JAoaQLPPcztcduPcsJNBcDAD8XX8mq9tFGOlw==;5:zs4z02AvNY8cGWwPselDc/qpaHLDvdCc7KNAAjfNpAn9W7QdKQismnYM7H4LhLIypdBgNHjaRWnH12pPw3/lvgG9gYii+MJFynUPbflrbLFm6rhuYJeEH7L7l9KEGvkb519ayYCaep54SMaHemFyJw==;24:63MLlhR+BNArWjYPLaO4vR/Om8UGCqDB/sC1MM7cNvMiXbsQJPeTY0yp6283qOHqv/I9OUOn3X5DKcGIC3ZM+sGtft37M3y23oHkyZwhsEE=;7:zJrmOAWOyPp9IfRdKsiY7zIQ9KqcoIwOjt/VdP5dCFult8QQprhE9F/SGCUZV7ie4Py02S0bDlmR2G26lERX8PbvH4NztkrBH2pKxqaaxHg3TsvT1K8yzcH8POBqlDqn5HudTv4iF/SLVM1GGM/fmgLwAOE9Z4xroWtcLPoAha16PKmxqMA9tJTuWsReLZOFsRMKy4hoTL517+OsB3imp9uHY8lKS7BJHu7ygQf1G3U= x-ms-exchange-antispam-srfa-diagnostics: SSOS; x-ms-office365-filtering-correlation-id: a9531a05-b192-4357-f491-08d50016ba63 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(48565401081)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095);SRVR:AM3PR08MB0166; x-ms-traffictypediagnostic: AM3PR08MB0166: nodisclaimer: True x-exchange-antispam-report-test: UriScan:(180628864354917); x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(8121501046)(5005006)(10201501046)(3002001)(100000703101)(100105400095)(93006095)(93001095)(6055026)(6041248)(20161123555025)(20161123560025)(20161123558100)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:AM3PR08MB0166;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:AM3PR08MB0166; x-forefront-prvs: 04362AC73B x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(6009001)(39860400002)(346002)(376002)(189002)(199003)(24454002)(229853002)(6436002)(54906003)(6506006)(82746002)(36756003)(316002)(8676002)(81156014)(81166006)(37006003)(53546010)(7736002)(5250100002)(305945005)(6486002)(101416001)(6862004)(5660300001)(68736007)(189998001)(2906002)(4326008)(86362001)(3280700002)(3660700001)(8936002)(50986999)(76176999)(54356999)(478600001)(2900100001)(97736004)(72206003)(66066001)(6246003)(25786009)(14454004)(83716003)(6512007)(105586002)(6116002)(106356001)(2950100002)(6636002)(53936002)(102836003)(3846002)(33656002)(99286003);DIR:OUT;SFP:1101;SCL:1;SRVR:AM3PR08MB0166;H:AM3PR08MB0101.eurprd08.prod.outlook.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <6B3111D0F66877459DFF3822341B37B7@eurprd08.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Sep 2017 10:59:55.8092 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR08MB0166 X-SW-Source: 2017-09/txt/msg00049.txt.bz2 KFJlc2VuZGluZyB3aXRob3V0IGRpc2NsYWltZXIpDQoNCj4gT24gMzEgQXVn IDIwMTcsIGF0IDE4OjAwLCBEYXZlIE1hcnRpbiA8RGF2ZS5NYXJ0aW5AYXJt LmNvbT4gd3JvdGU6DQoNCj4gDQo+ICtpbnQgc3ZlX3NldF92ZWN0b3JfbGVu Z3RoKHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzaywNCj4gKwkJCSAgdW5zaWdu ZWQgbG9uZyB2bCwgdW5zaWduZWQgbG9uZyBmbGFncykNCj4gK3sNCj4gKwlX QVJOX09OKHRhc2sgPT0gY3VycmVudCAmJiBwcmVlbXB0aWJsZSgpKTsNCj4g Kw0KPiArCWlmIChmbGFncyAmIH4odW5zaWduZWQgbG9uZykoUFJfU1ZFX1ZM X0lOSEVSSVQgfA0KPiArCQkJCSAgICAgUFJfU1ZFX1NFVF9WTF9PTkVYRUMp KQ0KPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gKw0KPiArCWlmICghc3ZlX3Zs X3ZhbGlkKHZsKSkNCj4gKwkJcmV0dXJuIC1FSU5WQUw7DQo+ICsNCj4gKwkv Kg0KPiArCSAqIENsYW1wIHRvIHRoZSBtYXhpbXVtIHZlY3RvciBsZW5ndGgg dGhhdCBWTC1hZ25vc3RpYyBTVkUgY29kZSBjYW4NCj4gKwkgKiB3b3JrIHdp dGguICBBIGZsYWcgbWF5IGJlIGFzc2lnbmVkIGluIHRoZSBmdXR1cmUgdG8g YWxsb3cgc2V0dGluZw0KPiArCSAqIG9mIGxhcmdlciB2ZWN0b3IgbGVuZ3Ro cyB3aXRob3V0IGNvbmZ1c2luZyBvbGRlciBzb2Z0d2FyZS4NCj4gKwkgKi8N Cj4gKwlpZiAodmwgPiBTVkVfVkxfQVJDSF9NQVgpDQo+ICsJCXZsID0gU1ZF X1ZMX0FSQ0hfTUFYOw0KPiArDQo+ICsJdmwgPSBmaW5kX3N1cHBvcnRlZF92 ZWN0b3JfbGVuZ3RoKHZsKTsNCj4gKw0KDQoNCkdpdmVuLCBzdmVfc2V0X3Zl Y3Rvcl9sZW5ndGggaXMgY2FsbGVkIHdoZW4gc2V0dGluZyB0aGUgdmVjdG9y IGxlbmd0aCBpbg0KUFRSQUNFX1NFVFJFR1NFVCwgaXQgbG9va3MgdG8gbWUg bGlrZSBpZiB5b3Ugc2V0IFZMIHRvIGEgdmFsdWUgdGhhdOKAmXMgbm90DQpz dXBwb3J0ZWQgYnkgdGhlIGhhcmR3YXJlLCB0aGVuIGl04oCZcyBnb2luZyB0 byByb3VuZCBkb3duIHRvIHRoZSBwcmV2aW91cyB2YWx1ZS4NCklzIHRoYXQg Y29ycmVjdD8gSeKAmW0gbm90IHN1cmUgaWYgdGhhdOKAmXMgZXhwbGFpbmVk IGluIHRoZSBkb2NzPw0KDQpXaGF0IGhhcHBlbnMgaWYgeW91IGdpdmUgYSB2 bCB2YWx1ZSBsb3dlciB0aGFuIHRoZSBtaW4gc3VwcG9ydGVkIHZhbHVlIGlu IHRoZQ0KaGFyZHdhcmU/DQoNCg0KPiArLyoNCj4gKyAqIEFsbCB2ZWN0b3Ig bGVuZ3RoIHNlbGVjdGlvbiBmcm9tIHVzZXJzcGFjZSBjb21lcyB0aHJvdWdo IGhlcmUuDQo+ICsgKiBXZSdyZSBvbiBhIHNsb3cgcGF0aCwgc28gc29tZSBz YW5pdHktY2hlY2tzIGFyZSBpbmNsdWRlZC4NCj4gKyAqIElmIHRoaW5ncyBn byB3cm9uZyB0aGVyZSdzIGEgYnVnIHNvbWV3aGVyZSwgYnV0IHRyeSB0byBm YWxsIGJhY2sgdG8gYQ0KPiArICogc2FmZSBjaG9pY2UuDQo+ICsgKi8NCj4g K3N0YXRpYyB1bnNpZ25lZCBpbnQgZmluZF9zdXBwb3J0ZWRfdmVjdG9yX2xl bmd0aCh1bnNpZ25lZCBpbnQgdmwpDQo+ICt7DQo+ICsJaW50IGJpdDsNCj4g KwlpbnQgbWF4X3ZsID0gc3ZlX21heF92bDsNCj4gKw0KPiArCWlmIChXQVJO X09OKCFzdmVfdmxfdmFsaWQodmwpKSkNCj4gKwkJdmwgPSBTVkVfVkxfTUlO Ow0KPiArDQo+ICsJaWYgKFdBUk5fT04oIXN2ZV92bF92YWxpZChtYXhfdmwp KSkNCj4gKwkJbWF4X3ZsID0gU1ZFX1ZMX01JTjsNCj4gKw0KPiArCWlmICh2 bCA+IG1heF92bCkNCj4gKwkJdmwgPSBtYXhfdmw7DQo+ICsNCj4gKwliaXQg PSBmaW5kX25leHRfYml0KHN2ZV92cV9tYXAsIFNWRV9WUV9NQVgsDQo+ICsJ CQkgICAgdnFfdG9fYml0KHN2ZV92cV9mcm9tX3ZsKHZsKSkpOw0KPiArCXJl dHVybiBzdmVfdmxfZnJvbV92cShiaXRfdG9fdnEoYml0KSk7DQo+ICt9DQo+ ICsNCg0KDQpUaGFua3MsDQpBbGFuLg== >From gdb-return-45978-listarch-gdb=sources.redhat.com@sourceware.org Wed Sep 20 11:09:13 2017 Return-Path: Delivered-To: listarch-gdb@sources.redhat.com Received: (qmail 21016 invoked by alias); 20 Sep 2017 11:09:13 -0000 Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org Delivered-To: mailing list gdb@sourceware.org Received: (qmail 20914 invoked by uid 89); 20 Sep 2017 11:09:12 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=disclaimer X-Spam-User: qpsmtpd, 2 recipients X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 20 Sep 2017 11:09:11 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 72B0780D; Wed, 20 Sep 2017 04:09:09 -0700 (PDT) Received: from e103592.cambridge.arm.com (usa-sjc-imap-foss1.foss.arm.com [10.72.51.249]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id D64C83F578; Wed, 20 Sep 2017 04:09:06 -0700 (PDT) Date: Wed, 20 Sep 2017 11:09:00 -0000 From: Dave Martin To: Alan Hayward Cc: Dave P Martin , "linux-arch@vger.kernel.org" , "libc-alpha@sourceware.org" , "gdb@sourceware.org" , Ard Biesheuvel , Szabolcs Nagy , Catalin Marinas , Yao Qi , Will Deacon , Richard Sandiford , nd , Alex =?iso-8859-1?Q?Benn=E9e?= , "kvmarm@lists.cs.columbia.edu" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v2 14/28] arm64/sve: Backend logic for setting the vector length Message-ID: <20170920110902.GG24231@e103592.cambridge.arm.com> References: <1504198860-12951-1-git-send-email-Dave.Martin@arm.com> <1504198860-12951-15-git-send-email-Dave.Martin@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-SW-Source: 2017-09/txt/msg00050.txt.bz2 Content-length: 3076 On Wed, Sep 20, 2017 at 10:59:55AM +0000, Alan Hayward wrote: > (Resending without disclaimer) > > > On 31 Aug 2017, at 18:00, Dave Martin wrote: > > > > > +int sve_set_vector_length(struct task_struct *task, > > + unsigned long vl, unsigned long flags) > > +{ > > + WARN_ON(task == current && preemptible()); > > + > > + if (flags & ~(unsigned long)(PR_SVE_VL_INHERIT | > > + PR_SVE_SET_VL_ONEXEC)) > > + return -EINVAL; > > + > > + if (!sve_vl_valid(vl)) > > + return -EINVAL; > > + > > + /* > > + * Clamp to the maximum vector length that VL-agnostic SVE code can > > + * work with. A flag may be assigned in the future to allow setting > > + * of larger vector lengths without confusing older software. > > + */ > > + if (vl > SVE_VL_ARCH_MAX) > > + vl = SVE_VL_ARCH_MAX; > > + > > + vl = find_supported_vector_length(vl); > > + > > > Given, sve_set_vector_length is called when setting the vector length in > PTRACE_SETREGSET, it looks to me like if you set VL to a value that’s not > supported by the hardware, then it’s going to round down to the previous value. > Is that correct? I’m not sure if that’s explained in the docs? Does this cover it? "On success, the calling thread's vector length is changed to the largest value supported by the system that is less than or equal to vl." (For ptrace, I just cross-reference the PR_SVE_SET_VL behaviour, above.) > What happens if you give a vl value lower than the min supported value in the > hardware? This is impossible, unless vl < SVE_VL_MIN (which is rejected explicitly by the !sve_vl_valid() check in sve_set_vector_length()). The architecture required support for all power-of-two vector lengths less than the maximum supported vector length, so by construction SVE_VL_MIN is supported by all hardware. To be defensive, if we fail to detect support for SVE_VL_MIN, I set the corresponding bit in sve_vq_map and WARN. This is just to help ensure find_supported_vector_length doesn't fall off the end of sve_vq_map. Does that sounds correct? There may be a clearer way of achieving this. Cheers ---Dave > > > > +/* > > + * All vector length selection from userspace comes through here. > > + * We're on a slow path, so some sanity-checks are included. > > + * If things go wrong there's a bug somewhere, but try to fall back to a > > + * safe choice. > > + */ > > +static unsigned int find_supported_vector_length(unsigned int vl) > > +{ > > + int bit; > > + int max_vl = sve_max_vl; > > + > > + if (WARN_ON(!sve_vl_valid(vl))) > > + vl = SVE_VL_MIN; > > + > > + if (WARN_ON(!sve_vl_valid(max_vl))) > > + max_vl = SVE_VL_MIN; > > + > > + if (vl > max_vl) > > + vl = max_vl; > > + > > + bit = find_next_bit(sve_vq_map, SVE_VQ_MAX, > > + vq_to_bit(sve_vq_from_vl(vl))); > > + return sve_vl_from_vq(bit_to_vq(bit)); > > +} > > + > > > Thanks, > Alan. > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel