From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A7D1E332914; Wed, 11 Mar 2026 13:44:25 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=217.140.110.172 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773236670; cv=none; b=jeLbMiIt4TCsm/lLzEWrE6Xqyl1cRzizlpN3qKknay931OASja9Y7bnumKms3DabFkQ0KqpZM43HeY3OnbYvB06vzA7kZAXYip/mc2EbwqP8r8JDwscYr9Jpw5+nn9xJrhNfTEKx4MXU89qwcC1yk53nhtLrDOgDSlQO6VJodUM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773236670; c=relaxed/simple; bh=oNLoJViffjTko7pY/UNHF83PcmY2QUwZRYg4EmZ5B8c=; h=Content-Type:Message-ID:Date:MIME-Version:Subject:To:Cc: References:From:In-Reply-To; b=TN1/hVogkD/FrsradBaQgwEM1U+Z2nbGC75AUae5FOpvtDEQwJqJXOBW6r2rd7i7nv4LF7aBP8dMoyi3WvuG/GyGYcPFUuup5FYns498jiGBlBvWpvO6LUdx12JTrMyWyt+uy+SxkiHgKnT4s5In6ZSlTXDTYnySsf6W0Nq5e8Y= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com; spf=pass smtp.mailfrom=arm.com; arc=none smtp.client-ip=217.140.110.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=arm.com Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 47A8E165C; Wed, 11 Mar 2026 06:44:18 -0700 (PDT) Received: from [10.1.25.79] (e127648.arm.com [10.1.25.79]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9F6BB3F73B; Wed, 11 Mar 2026 06:44:22 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------oAafXUsr4LmZ8D04efvi9v4X" Message-ID: Date: Wed, 11 Mar 2026 13:44:21 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH RFC 5/7] selftests/sched: Add SCHED_DEADLINE bandwidth tests to kselftest To: Juri Lelli Cc: Shuah Khan , Peter Zijlstra , Ingo Molnar , Vincent Guittot , Dietmar Eggemann , Steven Rostedt , Valentin Schneider , Clark Williams , Gabriele Monaco , Tommaso Cucinotta , Luca Abeni , linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org References: <20260306-upstream-deadline-kselftests-v1-0-2b23ef74c46a@redhat.com> <20260306-upstream-deadline-kselftests-v1-5-2b23ef74c46a@redhat.com> <129bb66c-74fa-4795-8d79-6c8e10a66e17@arm.com> Content-Language: en-US From: Christian Loehle In-Reply-To: This is a multi-part message in MIME format. --------------oAafXUsr4LmZ8D04efvi9v4X Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 3/11/26 13:23, Juri Lelli wrote: > On 11/03/26 09:31, Christian Loehle wrote: >> On 3/6/26 16:10, Juri Lelli wrote: > > ... > >>> + /* Start one cpuhog per CPU at max bandwidth */ >>> + printf(" Starting %d cpuhog tasks at max bandwidth...\n", num_cpus); >>> + >>> + for (i = 0; i < num_cpus; i++) { >>> + pids[i] = dl_create_cpuhog(runtime_ns, deadline_ns, period_ns, 0); >>> + if (pids[i] < 0) { >>> + printf(" Task %d failed to start: %s\n", >>> + i + 1, strerror(errno)); >>> + goto cleanup; >>> + } >>> + started++; >>> + } >> >> Would it be okay to just have one task per max-cap CPU to make this pass on HMP? >> Or something more sophisticated? >> > > On HMP we should probably have max bandwidth hogs on big CPUs and then > scale runtime (bandwidth) considering smaller CPUs capacities. Cannot > quickly check atm, but that info (max cap per-CPU) is available > somewhere in sys or proc, is it? Yes it's here: /sys/devices/system/cpu/cpu0/cpu_capacity FWIW I've attached the two patches to get a pass out of arm64 HMP. --------------oAafXUsr4LmZ8D04efvi9v4X Content-Type: text/x-patch; charset=UTF-8; name="0001-selftests-sched-Account-for-asymmetric-CPU-bw.patch" Content-Disposition: attachment; filename="0001-selftests-sched-Account-for-asymmetric-CPU-bw.patch" Content-Transfer-Encoding: base64 RnJvbSA0OWYyNGYwMGM2YWYyYjdlODU2ZjdhNzIyM2ExOWZjODdlMmE0YWFmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RpYW4gTG9laGxlIDxjaHJpc3RpYW4ubG9l aGxlQGFybS5jb20+CkRhdGU6IFdlZCwgMTEgTWFyIDIwMjYgMTM6MzE6MDUgKzAwMDAKU3Vi amVjdDogW1BBVENIIDEvMl0gc2VsZnRlc3RzL3NjaGVkOiBBY2NvdW50IGZvciBhc3ltbWV0 cmljIENQVSBidwoKVGhlIGJhbmR3aWR0aCB0ZXN0cyBwcmV2aW91c2x5IGFzc3VtZWQgYSBz eW1tZXRyaWMgc3lzdGVtLCBzdGFydGluZyBvbmUKbWF4LWJhbmR3aWR0aCB0YXNrIHBlciBv bmxpbmUgQ1BVLiBPbiBITVAgc3lzdGVtcyB0aGlzIG92ZXJjb3VudHMKYXZhaWxhYmxlIGJh bmR3aWR0aCwgc2luY2Ugc21hbGwgQ1BVcyBoYXZlIGxlc3MgY2FwYWNpdHkgdGhhbiAxMDI0 LgoKRml4IHRoaXMgYnkgcmVhZGluZyBjcHVfY2FwYWNpdHkgZm9yIGVhY2ggb25saW5lIENQ VSBmcm9tIHN5c2ZzIGFuZApjb21wdXRpbmcgdGhlIG51bWJlciBvZiBleHBlY3RlZCB0YXNr cyBhcyB0b3RhbCByb290LWRvbWFpbiBiYW5kd2lkdGgKZGl2aWRlZCBieSBvbmUgbWF4LWNh cGFjaXR5IHRhc2sncyBiYW5kd2lkdGguIEFsc28gcmVhZCBETCBzZXJ2ZXIKb3ZlcmhlYWQg cGVyLUNQVSBmcm9tIGRlYnVnZnMgc28gaXQgaXMgY29ycmVjdGx5IHN1YnRyYWN0ZWQgYmVm b3JlCmNvbXB1dGluZyBhdmFpbGFibGUgYmFuZHdpZHRoLgoKU2lnbmVkLW9mZi1ieTogQ2hy aXN0aWFuIExvZWhsZSA8Y2hyaXN0aWFuLmxvZWhsZUBhcm0uY29tPgotLS0KIC4uLi9zZWxm dGVzdHMvc2NoZWQvZGVhZGxpbmUvYmFuZHdpZHRoLmMgICAgICB8IDM2MyArKysrKysrKysr KystLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyNTIgaW5zZXJ0aW9ucygrKSwgMTExIGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3NjaGVkL2Rl YWRsaW5lL2JhbmR3aWR0aC5jIGIvdG9vbHMvdGVzdGluZy9zZWxmdGVzdHMvc2NoZWQvZGVh ZGxpbmUvYmFuZHdpZHRoLmMKaW5kZXggNzI3NTVhMjAwZGIyLi5mOTMxYjZiZGRhYzYgMTAw NjQ0Ci0tLSBhL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3NjaGVkL2RlYWRsaW5lL2JhbmR3 aWR0aC5jCisrKyBiL3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3NjaGVkL2RlYWRsaW5lL2Jh bmR3aWR0aC5jCkBAIC0zLDggKzMsOCBAQAogICogU0NIRURfREVBRExJTkUgYmFuZHdpZHRo IGFkbWlzc2lvbiBjb250cm9sIHRlc3RzCiAgKgogICogVmFsaWRhdGVzIHRoYXQgdGhlIGtl cm5lbCBjb3JyZWN0bHkgZW5mb3JjZXMgYmFuZHdpZHRoIGxpbWl0cyBmb3IKLSAqIFNDSEVE X0RFQURMSU5FIHRhc2tzLCBpbmNsdWRpbmcgcGVyLUNQVSBiYW5kd2lkdGggcmVwbGljYXRp b24gYW5kCi0gKiBvdmVyZmxvdyByZWplY3Rpb24uCisgKiBTQ0hFRF9ERUFETElORSB0YXNr cywgaW5jbHVkaW5nIGNhcGFjaXR5LXNjYWxlZCBiYW5kd2lkdGggcmVwbGljYXRpb24KKyAq IGFuZCBvdmVyZmxvdyByZWplY3Rpb24uCiAgKi8KIAogI2RlZmluZSBfR05VX1NPVVJDRQpA QCAtMTYsNjkgKzE2LDI0OCBAQAogI2luY2x1ZGUgPHNpZ25hbC5oPgogI2luY2x1ZGUgPGVy cm5vLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CisjaW5jbHVkZSA8Z2xvYi5oPgogI2luY2x1 ZGUgImRsX3Rlc3QuaCIKICNpbmNsdWRlICJkbF91dGlsLmgiCiAKLS8qCi0gKiBUZXN0OiBC YW5kd2lkdGggYWRtaXNzaW9uIGNvbnRyb2wgd2l0aCBtYXggYmFuZHdpZHRoIHBlciBDUFUK LSAqCi0gKiBWZXJpZmllcyB0aGF0IFNDSEVEX0RFQURMSU5FIGJhbmR3aWR0aCBpcyByZXBs aWNhdGVkIHBlciBDUFUsIGFsbG93aW5nCi0gKiBvbmUgdGFzayBwZXIgQ1BVIHRvIHVzZSB0 aGUgbWF4aW11bSBhdmFpbGFibGUgYmFuZHdpZHRoICh0eXBpY2FsbHkgOTUlKS4KLSAqLwot c3RhdGljIGVudW0gZGxfdGVzdF9zdGF0dXMgdGVzdF9iYW5kd2lkdGhfYWRtaXNzaW9uX3J1 bih2b2lkICpjdHgpCisjZGVmaW5lIERMX0JXX1NDQUxFIDEwMDAwMDAwMDBVTEwKKyNkZWZp bmUgRExfREVGQVVMVF9DUFVfQ0FQQUNJVFkgMTAyNFVMCisKK3N0cnVjdCBkbF9id190ZXN0 X2NvbmZpZyB7CisJdWludDY0X3QgcnRfcnVudGltZV91czsKKwl1aW50NjRfdCBydF9wZXJp b2RfdXM7CisJdWludDY0X3QgcnRfYndfc2NhbGVkOworCXVpbnQ2NF90IHRvdGFsX3NlcnZl cl9id19zY2FsZWQ7CisJdWludDY0X3QgbWF4X2NwdV9zZXJ2ZXJfYndfc2NhbGVkOworCXVp bnQ2NF90IHJ1bnRpbWVfbnM7CisJdWludDY0X3QgZGVhZGxpbmVfbnM7CisJdWludDY0X3Qg cGVyaW9kX25zOworCXVpbnQ2NF90IHRhc2tfYndfc2NhbGVkOworCXVuc2lnbmVkIGxvbmcg dG90YWxfY3B1X2NhcGFjaXR5OworCXVuc2lnbmVkIGxvbmcgbWF4X2NwdV9jYXBhY2l0eTsK KwlpbnQgbnVtX2NwdXM7CisJaW50IG1heF9jcHU7CisJaW50IGV4cGVjdGVkX3Rhc2tzOwor fTsKKworc3RhdGljIGludCBid19yZWFkX3VpbnQ2NChjb25zdCBjaGFyICpwYXRoLCB1aW50 NjRfdCAqdmFsdWUpCiB7Ci0JdWludDY0X3QgcnRfcnVudGltZV91cywgcnRfcGVyaW9kX3Vz OwotCWludCBtYXhfYndfcGVyY2VudDsKLQl1aW50NjRfdCBydW50aW1lX25zLCBkZWFkbGlu ZV9ucywgcGVyaW9kX25zOwotCWludCBudW1fY3B1cywgaTsKLQlwaWRfdCAqcGlkcyA9IE5V TEw7Ci0JaW50IHN0YXJ0ZWQgPSAwLCBydW5uaW5nID0gMDsKLQllbnVtIGRsX3Rlc3Rfc3Rh dHVzIHJldCA9IERMX1RFU1RfRkFJTDsKKwlGSUxFICpmOworCWludCByZXQ7CisKKwlmID0g Zm9wZW4ocGF0aCwgInIiKTsKKwlpZiAoIWYpCisJCXJldHVybiAtMTsKKworCXJldCA9IGZz Y2FuZihmLCAiJWx1IiwgdmFsdWUpOworCWZjbG9zZShmKTsKKworCXJldHVybiByZXQgPT0g MSA/IDAgOiAtMTsKK30KKworc3RhdGljIGludCBid19pc19jcHVfb25saW5lKGludCBjcHUp Cit7CisJY2hhciBwYXRoWzI1Nl07CisJaW50IG9ubGluZTsKKworCW9ubGluZSA9IGRsX2lz X2NwdV9vbmxpbmUoY3B1KTsKKwlpZiAob25saW5lID49IDApCisJCXJldHVybiBvbmxpbmU7 CisKKwlzbnByaW50ZihwYXRoLCBzaXplb2YocGF0aCksICIvc3lzL2RldmljZXMvc3lzdGVt L2NwdS9jcHUlZCIsIGNwdSk7CisJcmV0dXJuIGFjY2VzcyhwYXRoLCBGX09LKSA9PSAwOwor fQorCitzdGF0aWMgaW50IGJ3X2dldF9jcHVfY2FwYWNpdHkoaW50IGNwdSwgdW5zaWduZWQg bG9uZyAqY2FwYWNpdHkpCit7CisJY2hhciBwYXRoWzI1Nl07CisJdWludDY0X3QgdmFsdWU7 CiAKLQkvKiBHZXQgUlQgYmFuZHdpZHRoIHNldHRpbmdzICovCi0JRExfRkFJTF9JRihkbF9n ZXRfcnRfYmFuZHdpZHRoKCZydF9ydW50aW1lX3VzLCAmcnRfcGVyaW9kX3VzKSA8IDAsCisJ c25wcmludGYocGF0aCwgc2l6ZW9mKHBhdGgpLAorCQkgIi9zeXMvZGV2aWNlcy9zeXN0ZW0v Y3B1L2NwdSVkL2NwdV9jYXBhY2l0eSIsIGNwdSk7CisKKwlpZiAoYndfcmVhZF91aW50NjQo cGF0aCwgJnZhbHVlKSA8IDApCisJCXZhbHVlID0gRExfREVGQVVMVF9DUFVfQ0FQQUNJVFk7 CisKKwlpZiAoIXZhbHVlKQorCQl2YWx1ZSA9IERMX0RFRkFVTFRfQ1BVX0NBUEFDSVRZOwor CisJKmNhcGFjaXR5ID0gdmFsdWU7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB1aW50NjRf dCBid19nZXRfc2VydmVyX2J3X3NjYWxlZChpbnQgY3B1KQoreworCWdsb2JfdCBnbG9iYnVm OworCWNoYXIgcGF0dGVybls1MTJdOworCXNpemVfdCBpOworCXVpbnQ2NF90IHRvdGFsX2J3 ID0gMDsKKworCXNucHJpbnRmKHBhdHRlcm4sIHNpemVvZihwYXR0ZXJuKSwgIi9zeXMva2Vy bmVsL2RlYnVnL3NjaGVkLypfc2VydmVyIik7CisJaWYgKGdsb2IocGF0dGVybiwgMCwgTlVM TCwgJmdsb2JidWYpICE9IDApCisJCXJldHVybiAwOworCisJZm9yIChpID0gMDsgaSA8IGds b2JidWYuZ2xfcGF0aGM7IGkrKykgeworCQljaGFyIHJ1bnRpbWVfcGF0aFs1MTJdOworCQlj aGFyIHBlcmlvZF9wYXRoWzUxMl07CisJCXVpbnQ2NF90IHJ1bnRpbWVfbnMsIHBlcmlvZF9u czsKKworCQlzbnByaW50ZihydW50aW1lX3BhdGgsIHNpemVvZihydW50aW1lX3BhdGgpLCAi JXMvY3B1JWQvcnVudGltZSIsCisJCQkgZ2xvYmJ1Zi5nbF9wYXRodltpXSwgY3B1KTsKKwkJ c25wcmludGYocGVyaW9kX3BhdGgsIHNpemVvZihwZXJpb2RfcGF0aCksICIlcy9jcHUlZC9w ZXJpb2QiLAorCQkJIGdsb2JidWYuZ2xfcGF0aHZbaV0sIGNwdSk7CisKKwkJaWYgKGJ3X3Jl YWRfdWludDY0KHJ1bnRpbWVfcGF0aCwgJnJ1bnRpbWVfbnMpIDwgMCkKKwkJCWNvbnRpbnVl OworCQlpZiAoYndfcmVhZF91aW50NjQocGVyaW9kX3BhdGgsICZwZXJpb2RfbnMpIDwgMCkK KwkJCWNvbnRpbnVlOworCQlpZiAoIXBlcmlvZF9ucykKKwkJCWNvbnRpbnVlOworCisJCXRv dGFsX2J3ICs9ICgoX191aW50MTI4X3QpcnVudGltZV9ucyAqIERMX0JXX1NDQUxFKSAvIHBl cmlvZF9uczsKKwl9CisKKwlnbG9iZnJlZSgmZ2xvYmJ1Zik7CisJcmV0dXJuIHRvdGFsX2J3 OworfQorCitzdGF0aWMgZG91YmxlIGJ3X3NjYWxlZF90b19wZXJjZW50KHVpbnQ2NF90IHNj YWxlZCkKK3sKKwlyZXR1cm4gKGRvdWJsZSlzY2FsZWQgKiAxMDAuMCAvIERMX0JXX1NDQUxF OworfQorCitzdGF0aWMgZW51bSBkbF90ZXN0X3N0YXR1cyBid19wcmVwYXJlX3Rlc3Qoc3Ry dWN0IGRsX2J3X3Rlc3RfY29uZmlnICpjZmcpCit7CisJaW50IGNwdTsKKwlpbnQgbWF4X2Nw dXM7CisJX191aW50MTI4X3QgdG90YWxfcnRfYnc7CisJX191aW50MTI4X3QgdG90YWxfc2Vy dmVyX2J3OworCV9fdWludDEyOF90IHRvdGFsX2F2YWlsYWJsZV9idzsKKwlfX3VpbnQxMjhf dCB0YXNrX2J3X2NhcGFjaXR5OworCisJbWVtc2V0KGNmZywgMCwgc2l6ZW9mKCpjZmcpKTsK KwljZmctPm1heF9jcHUgPSAtMTsKKworCURMX0ZBSUxfSUYoZGxfZ2V0X3J0X2JhbmR3aWR0 aCgmY2ZnLT5ydF9ydW50aW1lX3VzLAorCQkJICAgICAgICZjZmctPnJ0X3BlcmlvZF91cykg PCAwLAogCQkgICAiRmFpbGVkIHRvIHJlYWQgUlQgYmFuZHdpZHRoIHNldHRpbmdzIik7CisJ RExfRkFJTF9JRighY2ZnLT5ydF9wZXJpb2RfdXMsICJSVCBiYW5kd2lkdGggcGVyaW9kIGlz IHplcm8iKTsKIAotCXByaW50ZigiICBSVCBiYW5kd2lkdGg6IHJ1bnRpbWU9JWx1wrVzLCBw ZXJpb2Q9JWx1wrVzICglLjBmJSUpXG4iLAotCSAgICAgICBydF9ydW50aW1lX3VzLCBydF9w ZXJpb2RfdXMsCi0JICAgICAgIChkb3VibGUpcnRfcnVudGltZV91cyAqIDEwMC4wIC8gcnRf cGVyaW9kX3VzKTsKKwljZmctPnJ0X2J3X3NjYWxlZCA9ICgoX191aW50MTI4X3QpY2ZnLT5y dF9ydW50aW1lX3VzICogRExfQldfU0NBTEUpIC8KKwkJCQkgICAgY2ZnLT5ydF9wZXJpb2Rf dXM7CisJY2ZnLT5wZXJpb2RfbnMgPSBkbF9tc190b19ucygxMDApOworCWNmZy0+ZGVhZGxp bmVfbnMgPSBjZmctPnBlcmlvZF9uczsKIAotCS8qIFNob3cgc2VydmVyIG92ZXJoZWFkICov Ci0JaW50IHNlcnZlcl9vdmVyaGVhZCA9IGRsX2dldF9zZXJ2ZXJfYmFuZHdpZHRoX292ZXJo ZWFkKCk7CisJbWF4X2NwdXMgPSAoaW50KXN5c2NvbmYoX1NDX05QUk9DRVNTT1JTX0NPTkYp OworCURMX0ZBSUxfSUYobWF4X2NwdXMgPD0gMCwgIkZhaWxlZCB0byByZWFkIGNvbmZpZ3Vy ZWQgQ1BVIGNvdW50Iik7CiAKLQlpZiAoc2VydmVyX292ZXJoZWFkID4gMCkKLQkJcHJpbnRm KCIgIERMIHNlcnZlciBvdmVyaGVhZDogJWQlJSBwZXIgQ1BVXG4iLCBzZXJ2ZXJfb3Zlcmhl YWQpOworCWZvciAoY3B1ID0gMDsgY3B1IDwgbWF4X2NwdXM7IGNwdSsrKSB7CisJCXVuc2ln bmVkIGxvbmcgY2FwYWNpdHk7CisJCXVpbnQ2NF90IHNlcnZlcl9idzsKIAotCS8qIENhbGN1 bGF0ZSBtYXhpbXVtIGJhbmR3aWR0aCBwZXJjZW50YWdlICovCi0JbWF4X2J3X3BlcmNlbnQg PSBkbF9jYWxjX21heF9iYW5kd2lkdGhfcGVyY2VudCgpOwotCURMX0ZBSUxfSUYobWF4X2J3 X3BlcmNlbnQgPCAwLCAiRmFpbGVkIHRvIGNhbGN1bGF0ZSBtYXggYmFuZHdpZHRoIik7CisJ CWlmICghYndfaXNfY3B1X29ubGluZShjcHUpKQorCQkJY29udGludWU7CiAKLQlwcmludGYo IiAgQXZhaWxhYmxlIGJhbmR3aWR0aCBwZXIgQ1BVOiAlZCUlXG4iLCBtYXhfYndfcGVyY2Vu dCk7CisJCWJ3X2dldF9jcHVfY2FwYWNpdHkoY3B1LCAmY2FwYWNpdHkpOworCQlzZXJ2ZXJf YncgPSBid19nZXRfc2VydmVyX2J3X3NjYWxlZChjcHUpOwogCi0JLyogQ2FsY3VsYXRlIHRh c2sgcGFyYW1ldGVyczogMTAwbXMgcGVyaW9kIGZvciBlYXN5IGNhbGN1bGF0aW9uICovCi0J cGVyaW9kX25zID0gZGxfbXNfdG9fbnMoMTAwKTsgIC8qIDEwMG1zICovCi0JcnVudGltZV9u cyA9IChwZXJpb2RfbnMgKiBtYXhfYndfcGVyY2VudCkgLyAxMDA7Ci0JZGVhZGxpbmVfbnMg PSBwZXJpb2RfbnM7CisJCWNmZy0+bnVtX2NwdXMrKzsKKwkJY2ZnLT50b3RhbF9jcHVfY2Fw YWNpdHkgKz0gY2FwYWNpdHk7CisJCWNmZy0+dG90YWxfc2VydmVyX2J3X3NjYWxlZCArPSBz ZXJ2ZXJfYnc7CisKKwkJaWYgKGNhcGFjaXR5ID4gY2ZnLT5tYXhfY3B1X2NhcGFjaXR5KSB7 CisJCQljZmctPm1heF9jcHVfY2FwYWNpdHkgPSBjYXBhY2l0eTsKKwkJCWNmZy0+bWF4X2Nw dV9zZXJ2ZXJfYndfc2NhbGVkID0gc2VydmVyX2J3OworCQkJY2ZnLT5tYXhfY3B1ID0gY3B1 OworCQl9CisJfQorCisJRExfRkFJTF9JRihjZmctPm51bV9jcHVzIDw9IDAsICJGYWlsZWQg dG8gZmluZCBvbmxpbmUgQ1BVcyIpOworCURMX0ZBSUxfSUYoIWNmZy0+bWF4X2NwdV9jYXBh Y2l0eSwKKwkJICAgIkZhaWxlZCB0byBkZXRlcm1pbmUgbWF4aW11bSBDUFUgY2FwYWNpdHki KTsKKwlETF9GQUlMX0lGKGNmZy0+cnRfYndfc2NhbGVkIDw9IGNmZy0+bWF4X2NwdV9zZXJ2 ZXJfYndfc2NhbGVkLAorCQkgICAiREwgc2VydmVycyBsZWF2ZSBubyBiYW5kd2lkdGggZm9y IHRhc2tzIG9uIG1heC1jYXBhY2l0eSBDUFUiKTsKKworCWNmZy0+cnVudGltZV9ucyA9ICgo X191aW50MTI4X3QpY2ZnLT5wZXJpb2RfbnMgKgorCQkJICAoY2ZnLT5ydF9id19zY2FsZWQg LSBjZmctPm1heF9jcHVfc2VydmVyX2J3X3NjYWxlZCkpIC8KKwkJCSBETF9CV19TQ0FMRTsK KwlETF9GQUlMX0lGKCFjZmctPnJ1bnRpbWVfbnMsICJDYWxjdWxhdGVkIHRhc2sgcnVudGlt ZSBpcyB6ZXJvIik7CisKKwljZmctPnRhc2tfYndfc2NhbGVkID0gKChfX3VpbnQxMjhfdClj ZmctPnJ1bnRpbWVfbnMgKiBETF9CV19TQ0FMRSkgLworCQkJICAgICAgY2ZnLT5wZXJpb2Rf bnM7CisJRExfRkFJTF9JRighY2ZnLT50YXNrX2J3X3NjYWxlZCwgIkNhbGN1bGF0ZWQgdGFz ayBiYW5kd2lkdGggaXMgemVybyIpOworCisJdG90YWxfcnRfYncgPSAoX191aW50MTI4X3Qp Y2ZnLT50b3RhbF9jcHVfY2FwYWNpdHkgKiBjZmctPnJ0X2J3X3NjYWxlZDsKKwl0b3RhbF9z ZXJ2ZXJfYncgPSAoX191aW50MTI4X3QpY2ZnLT5tYXhfY3B1X2NhcGFjaXR5ICoKKwkJCSAg Y2ZnLT50b3RhbF9zZXJ2ZXJfYndfc2NhbGVkOworCURMX0ZBSUxfSUYodG90YWxfcnRfYncg PD0gdG90YWxfc2VydmVyX2J3LAorCQkgICAiREwgc2VydmVycyBjb25zdW1lIGFsbCByb290 LWRvbWFpbiBiYW5kd2lkdGgiKTsKKworCXRvdGFsX2F2YWlsYWJsZV9idyA9IHRvdGFsX3J0 X2J3IC0gdG90YWxfc2VydmVyX2J3OworCXRhc2tfYndfY2FwYWNpdHkgPSAoX191aW50MTI4 X3QpY2ZnLT5tYXhfY3B1X2NhcGFjaXR5ICoKKwkJCSAgIGNmZy0+dGFza19id19zY2FsZWQ7 CisKKwlETF9GQUlMX0lGKCF0YXNrX2J3X2NhcGFjaXR5LCAiQ2FsY3VsYXRlZCB0YXNrIGNh cGFjaXR5IGlzIHplcm8iKTsKKworCWNmZy0+ZXhwZWN0ZWRfdGFza3MgPSB0b3RhbF9hdmFp bGFibGVfYncgLyB0YXNrX2J3X2NhcGFjaXR5OworCURMX0ZBSUxfSUYoY2ZnLT5leHBlY3Rl ZF90YXNrcyA8PSAwLAorCQkgICAiQ2FsY3VsYXRlZCB0YXNrIGNvdW50IGlzIHplcm8iKTsK KworCXJldHVybiBETF9URVNUX1BBU1M7Cit9CisKK3N0YXRpYyB2b2lkIGJ3X3ByaW50X3Rl c3RfY29uZmlnKGNvbnN0IHN0cnVjdCBkbF9id190ZXN0X2NvbmZpZyAqY2ZnKQoreworCXBy aW50ZigiICBSVCBiYW5kd2lkdGg6IHJ1bnRpbWU9JWx1wrVzLCBwZXJpb2Q9JWx1wrVzICgl LjBmJSUpXG4iLAorCSAgICAgICBjZmctPnJ0X3J1bnRpbWVfdXMsIGNmZy0+cnRfcGVyaW9k X3VzLAorCSAgICAgICAoZG91YmxlKWNmZy0+cnRfcnVudGltZV91cyAqIDEwMC4wIC8gY2Zn LT5ydF9wZXJpb2RfdXMpOworCXByaW50ZigiICBOdW1iZXIgb2Ygb25saW5lIENQVXM6ICVk XG4iLCBjZmctPm51bV9jcHVzKTsKKwlwcmludGYoIiAgRXF1aXZhbGVudCBtYXgtY2FwYWNp dHkgQ1BVczogJS4yZlxuIiwKKwkgICAgICAgKGRvdWJsZSljZmctPnRvdGFsX2NwdV9jYXBh Y2l0eSAvIGNmZy0+bWF4X2NwdV9jYXBhY2l0eSk7CisJcHJpbnRmKCIgIE1heC1jYXBhY2l0 eSBDUFU6ICVkIChjYXBhY2l0eT0lbHUpXG4iLAorCSAgICAgICBjZmctPm1heF9jcHUsIGNm Zy0+bWF4X2NwdV9jYXBhY2l0eSk7CisKKwlpZiAoY2ZnLT5tYXhfY3B1X3NlcnZlcl9id19z Y2FsZWQpIHsKKwkJcHJpbnRmKCIgIERMIHNlcnZlciBvdmVyaGVhZCBvbiBtYXgtY2FwYWNp dHkgQ1BVOiAlLjJmJSVcbiIsCisJCSAgICAgICBid19zY2FsZWRfdG9fcGVyY2VudChjZmct Pm1heF9jcHVfc2VydmVyX2J3X3NjYWxlZCkpOworCX0KIAogCXByaW50ZigiICBUYXNrIHBh cmFtczogcnVudGltZT0lbHVtcywgZGVhZGxpbmU9JWx1bXMsIHBlcmlvZD0lbHVtc1xuIiwK LQkgICAgICAgZGxfbnNfdG9fbXMocnVudGltZV9ucyksIGRsX25zX3RvX21zKGRlYWRsaW5l X25zKSwKLQkgICAgICAgZGxfbnNfdG9fbXMocGVyaW9kX25zKSk7CisJICAgICAgIGRsX25z X3RvX21zKGNmZy0+cnVudGltZV9ucyksIGRsX25zX3RvX21zKGNmZy0+ZGVhZGxpbmVfbnMp LAorCSAgICAgICBkbF9uc190b19tcyhjZmctPnBlcmlvZF9ucykpOworCXByaW50ZigiICBF eHBlY3RlZCB0YXNrcyBhdCBtYXgtY2FwYWNpdHkgYmFuZHdpZHRoOiAlZFxuIiwKKwkgICAg ICAgY2ZnLT5leHBlY3RlZF90YXNrcyk7Cit9CiAKLQkvKiBHZXQgbnVtYmVyIG9mIENQVXMg Ki8KLQludW1fY3B1cyA9IGRsX2dldF9vbmxpbmVfY3B1cygpOwotCURMX0ZBSUxfSUYobnVt X2NwdXMgPD0gMCwgIkZhaWxlZCB0byBnZXQgbnVtYmVyIG9mIENQVXMiKTsKKy8qCisgKiBU ZXN0OiBCYW5kd2lkdGggYWRtaXNzaW9uIGNvbnRyb2wgd2l0aCBtYXgtY2FwYWNpdHkgdGFz ayBiYW5kd2lkdGgKKyAqCisgKiBWZXJpZmllcyB0aGF0IFNDSEVEX0RFQURMSU5FIGJhbmR3 aWR0aCBpcyByZXBsaWNhdGVkIGFjcm9zcyB0aGUgcm9vdAorICogZG9tYWluIGNhcGFjaXR5 LCBhbGxvd2luZyBvbmUgbWF4LWNhcGFjaXR5IHRhc2sgcGVyIGVxdWl2YWxlbnQgQ1BVLgor ICovCitzdGF0aWMgZW51bSBkbF90ZXN0X3N0YXR1cyB0ZXN0X2JhbmR3aWR0aF9hZG1pc3Np b25fcnVuKHZvaWQgKmN0eCkKK3sKKwlzdHJ1Y3QgZGxfYndfdGVzdF9jb25maWcgY2ZnOwor CWludCBpOworCXBpZF90ICpwaWRzID0gTlVMTDsKKwlpbnQgc3RhcnRlZCA9IDAsIHJ1bm5p bmcgPSAwOworCWVudW0gZGxfdGVzdF9zdGF0dXMgcmV0ID0gRExfVEVTVF9GQUlMOwogCi0J cHJpbnRmKCIgIE51bWJlciBvZiBvbmxpbmUgQ1BVczogJWRcbiIsIG51bV9jcHVzKTsKKwlE TF9GQUlMX0lGKGJ3X3ByZXBhcmVfdGVzdCgmY2ZnKSAhPSBETF9URVNUX1BBU1MsCisJCSAg ICJGYWlsZWQgdG8gcHJlcGFyZSBiYW5kd2lkdGggdGVzdCBwYXJhbWV0ZXJzIik7CisJYndf cHJpbnRfdGVzdF9jb25maWcoJmNmZyk7CiAKIAkvKiBBbGxvY2F0ZSBQSUQgYXJyYXkgKi8K LQlwaWRzID0gY2FsbG9jKG51bV9jcHVzLCBzaXplb2YocGlkX3QpKTsKKwlwaWRzID0gY2Fs bG9jKGNmZy5leHBlY3RlZF90YXNrcywgc2l6ZW9mKHBpZF90KSk7CiAJRExfRkFJTF9JRigh cGlkcywgIkZhaWxlZCB0byBhbGxvY2F0ZSBQSUQgYXJyYXkiKTsKIAotCS8qIFN0YXJ0IG9u ZSBjcHVob2cgcGVyIENQVSBhdCBtYXggYmFuZHdpZHRoICovCi0JcHJpbnRmKCIgIFN0YXJ0 aW5nICVkIGNwdWhvZyB0YXNrcyBhdCBtYXggYmFuZHdpZHRoLi4uXG4iLCBudW1fY3B1cyk7 CisJLyogU3RhcnQgb25lIGNwdWhvZyBwZXIgZXF1aXZhbGVudCBtYXgtY2FwYWNpdHkgQ1BV ICovCisJcHJpbnRmKCIgIFN0YXJ0aW5nICVkIGNwdWhvZyB0YXNrcyBhdCBtYXgtY2FwYWNp dHkgYmFuZHdpZHRoLi4uXG4iLAorCSAgICAgICBjZmcuZXhwZWN0ZWRfdGFza3MpOwogCi0J Zm9yIChpID0gMDsgaSA8IG51bV9jcHVzOyBpKyspIHsKLQkJcGlkc1tpXSA9IGRsX2NyZWF0 ZV9jcHVob2cocnVudGltZV9ucywgZGVhZGxpbmVfbnMsIHBlcmlvZF9ucywgMCk7CisJZm9y IChpID0gMDsgaSA8IGNmZy5leHBlY3RlZF90YXNrczsgaSsrKSB7CisJCXBpZHNbaV0gPSBk bF9jcmVhdGVfY3B1aG9nKGNmZy5ydW50aW1lX25zLCBjZmcuZGVhZGxpbmVfbnMsCisJCQkJ CSAgY2ZnLnBlcmlvZF9ucywgMCk7CiAJCWlmIChwaWRzW2ldIDwgMCkgewogCQkJcHJpbnRm KCIgIFRhc2sgJWQgZmFpbGVkIHRvIHN0YXJ0OiAlc1xuIiwKIAkJCSAgICAgICBpICsgMSwg c3RyZXJyb3IoZXJybm8pKTsKQEAgLTEwNSwxNSArMjg0LDE1IEBAIHN0YXRpYyBlbnVtIGRs X3Rlc3Rfc3RhdHVzIHRlc3RfYmFuZHdpZHRoX2FkbWlzc2lvbl9ydW4odm9pZCAqY3R4KQog CX0KIAogCXByaW50ZigiICBTdGFydGVkICVkLyVkIHRhc2tzLCAlZCBydW5uaW5nIHdpdGgg U0NIRURfREVBRExJTkVcbiIsCi0JICAgICAgIHN0YXJ0ZWQsIG51bV9jcHVzLCBydW5uaW5n KTsKKwkgICAgICAgc3RhcnRlZCwgY2ZnLmV4cGVjdGVkX3Rhc2tzLCBydW5uaW5nKTsKIAot CS8qIFRlc3QgcGFzc2VzIGlmIHdlIHN0YXJ0ZWQgYWxsIE4gdGFza3MgYW5kIHRoZXkncmUg YWxsIHJ1bm5pbmcgKi8KLQlpZiAoc3RhcnRlZCA9PSBudW1fY3B1cyAmJiBydW5uaW5nID09 IG51bV9jcHVzKSB7Ci0JCXByaW50ZigiICBTVUNDRVNTOiBBbGwgJWQgdGFza3MgcnVubmlu ZyBhdCBtYXggYmFuZHdpZHRoXG4iLAotCQkgICAgICAgbnVtX2NwdXMpOworCS8qIFRlc3Qg cGFzc2VzIGlmIHdlIHN0YXJ0ZWQgYWxsIGV4cGVjdGVkIHRhc2tzIGFuZCB0aGV5J3JlIGFs bCBydW5uaW5nICovCisJaWYgKHN0YXJ0ZWQgPT0gY2ZnLmV4cGVjdGVkX3Rhc2tzICYmIHJ1 bm5pbmcgPT0gY2ZnLmV4cGVjdGVkX3Rhc2tzKSB7CisJCXByaW50ZigiICBTVUNDRVNTOiBB bGwgJWQgdGFza3MgcnVubmluZyBhdCBtYXgtY2FwYWNpdHkgYmFuZHdpZHRoXG4iLAorCQkg ICAgICAgY2ZnLmV4cGVjdGVkX3Rhc2tzKTsKIAkJcmV0ID0gRExfVEVTVF9QQVNTOwotCX0g ZWxzZSBpZiAoc3RhcnRlZCAhPSBudW1fY3B1cykgewotCQlETF9FUlIoIk9ubHkgc3RhcnRl ZCAlZC8lZCB0YXNrcyIsIHN0YXJ0ZWQsIG51bV9jcHVzKTsKKwl9IGVsc2UgaWYgKHN0YXJ0 ZWQgIT0gY2ZnLmV4cGVjdGVkX3Rhc2tzKSB7CisJCURMX0VSUigiT25seSBzdGFydGVkICVk LyVkIHRhc2tzIiwgc3RhcnRlZCwgY2ZnLmV4cGVjdGVkX3Rhc2tzKTsKIAkJcmV0ID0gRExf VEVTVF9GQUlMOwogCX0gZWxzZSB7CiAJCURMX0VSUigiU3RhcnRlZCAlZCB0YXNrcyBidXQg b25seSAlZCB1c2luZyBTQ0hFRF9ERUFETElORSIsCkBAIC0xMzQsNyArMzEzLDcgQEAgc3Rh dGljIGVudW0gZGxfdGVzdF9zdGF0dXMgdGVzdF9iYW5kd2lkdGhfYWRtaXNzaW9uX3J1bih2 b2lkICpjdHgpCiAKIHN0YXRpYyBzdHJ1Y3QgZGxfdGVzdCB0ZXN0X2JhbmR3aWR0aF9hZG1p c3Npb24gPSB7CiAJLm5hbWUgPSAiYmFuZHdpZHRoX2FkbWlzc2lvbiIsCi0JLmRlc2NyaXB0 aW9uID0gIlZlcmlmeSBwZXItQ1BVIGJhbmR3aWR0aCByZXBsaWNhdGlvbiAoTiB0YXNrcyBh dCBtYXggYmFuZHdpZHRoKSIsCisJLmRlc2NyaXB0aW9uID0gIlZlcmlmeSBjYXBhY2l0eS1z Y2FsZWQgYmFuZHdpZHRoIHJlcGxpY2F0aW9uIChOIGVxdWl2YWxlbnQgdGFza3MgYXQgbWF4 IGJhbmR3aWR0aCkiLAogCS5ydW4gPSB0ZXN0X2JhbmR3aWR0aF9hZG1pc3Npb25fcnVuLAog fTsKIFJFR0lTVEVSX0RMX1RFU1QoJnRlc3RfYmFuZHdpZHRoX2FkbWlzc2lvbik7CkBAIC0x NDIsNzMgKzMyMSwzNCBAQCBSRUdJU1RFUl9ETF9URVNUKCZ0ZXN0X2JhbmR3aWR0aF9hZG1p c3Npb24pOwogLyoKICAqIFRlc3Q6IEJhbmR3aWR0aCBhZG1pc3Npb24gY29udHJvbCBvdmVy ZmxvdyByZWplY3Rpb24KICAqCi0gKiBWZXJpZmllcyB0aGF0IHRoZSBrZXJuZWwgcmVqZWN0 cyB0YXNrcyB0aGF0IHdvdWxkIGV4Y2VlZCBhdmFpbGFibGUKLSAqIGJhbmR3aWR0aCBvbiBh IENQVS4gQ3JlYXRlcyBOLTEgdGFza3MgYXQgbWF4IGJhbmR3aWR0aCwgdGhlbiBhdHRlbXB0 cwotICogdG8gY3JlYXRlIG9uZSBtb3JlIGF0IHNsaWdodGx5IGhpZ2hlciBiYW5kd2lkdGgg KHNob3VsZCBmYWlsKS4KKyAqIFZlcmlmaWVzIHRoYXQgdGhlIGtlcm5lbCByZWplY3RzIHRh c2tzIHRoYXQgd291bGQgZXhjZWVkIHRoZSBhdmFpbGFibGUKKyAqIHJvb3QtZG9tYWluIGJh bmR3aWR0aC4gQ3JlYXRlcyBhbGwgZXF1aXZhbGVudCBtYXgtY2FwYWNpdHkgdGFza3MsIHRo ZW4KKyAqIGF0dGVtcHRzIHRvIGNyZWF0ZSBvbmUgbW9yZSBhdCBzbGlnaHRseSBoaWdoZXIg YmFuZHdpZHRoIChzaG91bGQgZmFpbCkuCiAgKi8KIHN0YXRpYyBlbnVtIGRsX3Rlc3Rfc3Rh dHVzIHRlc3RfYmFuZHdpZHRoX292ZXJmbG93X3J1bih2b2lkICpjdHgpCiB7Ci0JdWludDY0 X3QgcnRfcnVudGltZV91cywgcnRfcGVyaW9kX3VzOwotCWludCBtYXhfYndfcGVyY2VudDsK LQl1aW50NjRfdCBydW50aW1lX25zLCBkZWFkbGluZV9ucywgcGVyaW9kX25zOworCXN0cnVj dCBkbF9id190ZXN0X2NvbmZpZyBjZmc7CiAJdWludDY0X3Qgb3ZlcmZsb3dfcnVudGltZV9u czsKLQlpbnQgbnVtX2NwdXMsIGk7Ci0JaW50IHRhcmdldF90YXNrczsKKwlpbnQgaTsKIAlw aWRfdCAqcGlkcyA9IE5VTEw7CiAJcGlkX3Qgb3ZlcmZsb3dfcGlkOwogCWludCBzdGFydGVk ID0gMDsKIAllbnVtIGRsX3Rlc3Rfc3RhdHVzIHJldCA9IERMX1RFU1RfRkFJTDsKIAotCS8q IEdldCBSVCBiYW5kd2lkdGggc2V0dGluZ3MgKi8KLQlETF9GQUlMX0lGKGRsX2dldF9ydF9i YW5kd2lkdGgoJnJ0X3J1bnRpbWVfdXMsICZydF9wZXJpb2RfdXMpIDwgMCwKLQkJICAgIkZh aWxlZCB0byByZWFkIFJUIGJhbmR3aWR0aCBzZXR0aW5ncyIpOwotCi0JcHJpbnRmKCIgIFJU IGJhbmR3aWR0aDogcnVudGltZT0lbHXCtXMsIHBlcmlvZD0lbHXCtXMgKCUuMGYlJSlcbiIs Ci0JICAgICAgIHJ0X3J1bnRpbWVfdXMsIHJ0X3BlcmlvZF91cywKLQkgICAgICAgKGRvdWJs ZSlydF9ydW50aW1lX3VzICogMTAwLjAgLyBydF9wZXJpb2RfdXMpOwotCi0JLyogU2hvdyBz ZXJ2ZXIgb3ZlcmhlYWQgKi8KLQlpbnQgc2VydmVyX292ZXJoZWFkID0gZGxfZ2V0X3NlcnZl cl9iYW5kd2lkdGhfb3ZlcmhlYWQoKTsKLQotCWlmIChzZXJ2ZXJfb3ZlcmhlYWQgPiAwKQot CQlwcmludGYoIiAgREwgc2VydmVyIG92ZXJoZWFkOiAlZCUlIHBlciBDUFVcbiIsIHNlcnZl cl9vdmVyaGVhZCk7Ci0KLQkvKiBDYWxjdWxhdGUgbWF4aW11bSBiYW5kd2lkdGggcGVyY2Vu dGFnZSAqLwotCW1heF9id19wZXJjZW50ID0gZGxfY2FsY19tYXhfYmFuZHdpZHRoX3BlcmNl bnQoKTsKLQlETF9GQUlMX0lGKG1heF9id19wZXJjZW50IDwgMCwgIkZhaWxlZCB0byBjYWxj dWxhdGUgbWF4IGJhbmR3aWR0aCIpOwotCi0JcHJpbnRmKCIgIEF2YWlsYWJsZSBiYW5kd2lk dGggcGVyIENQVTogJWQlJVxuIiwgbWF4X2J3X3BlcmNlbnQpOwotCi0JLyogR2V0IG51bWJl ciBvZiBDUFVzICovCi0JbnVtX2NwdXMgPSBkbF9nZXRfb25saW5lX2NwdXMoKTsKLQlETF9G QUlMX0lGKG51bV9jcHVzIDw9IDAsICJGYWlsZWQgdG8gZ2V0IG51bWJlciBvZiBDUFVzIik7 Ci0KLQlpZiAobnVtX2NwdXMgPCAyKSB7Ci0JCXByaW50ZigiICBOZWVkIGF0IGxlYXN0IDIg Q1BVcyBmb3IgdGhpcyB0ZXN0IChoYXZlICVkKVxuIiwKLQkJICAgICAgIG51bV9jcHVzKTsK LQkJcmV0dXJuIERMX1RFU1RfU0tJUDsKLQl9Ci0KLQlwcmludGYoIiAgTnVtYmVyIG9mIG9u bGluZSBDUFVzOiAlZFxuIiwgbnVtX2NwdXMpOwotCi0JLyogQ2FsY3VsYXRlIHRhc2sgcGFy YW1ldGVycyAqLwotCXBlcmlvZF9ucyA9IGRsX21zX3RvX25zKDEwMCk7ICAvKiAxMDBtcyAq LwotCXJ1bnRpbWVfbnMgPSAocGVyaW9kX25zICogbWF4X2J3X3BlcmNlbnQpIC8gMTAwOwot CWRlYWRsaW5lX25zID0gcGVyaW9kX25zOwotCi0JcHJpbnRmKCIgIFRhc2sgcGFyYW1zOiBy dW50aW1lPSVsdW1zLCBkZWFkbGluZT0lbHVtcywgcGVyaW9kPSVsdW1zXG4iLAotCSAgICAg ICBkbF9uc190b19tcyhydW50aW1lX25zKSwgZGxfbnNfdG9fbXMoZGVhZGxpbmVfbnMpLAot CSAgICAgICBkbF9uc190b19tcyhwZXJpb2RfbnMpKTsKKwlETF9GQUlMX0lGKGJ3X3ByZXBh cmVfdGVzdCgmY2ZnKSAhPSBETF9URVNUX1BBU1MsCisJCSAgICJGYWlsZWQgdG8gcHJlcGFy ZSBiYW5kd2lkdGggdGVzdCBwYXJhbWV0ZXJzIik7CisJYndfcHJpbnRfdGVzdF9jb25maWco JmNmZyk7CiAKLQkvKiBTdGFydCBOLTEgdGFza3MgYXQgbWF4IGJhbmR3aWR0aCAqLwotCXRh cmdldF90YXNrcyA9IG51bV9jcHVzIC0gMTsKLQlwaWRzID0gY2FsbG9jKHRhcmdldF90YXNr cywgc2l6ZW9mKHBpZF90KSk7CisJLyogU3RhcnQgYWxsIGV4cGVjdGVkIHRhc2tzIGF0IG1h eC1jYXBhY2l0eSBiYW5kd2lkdGggKi8KKwlwaWRzID0gY2FsbG9jKGNmZy5leHBlY3RlZF90 YXNrcywgc2l6ZW9mKHBpZF90KSk7CiAJRExfRkFJTF9JRighcGlkcywgIkZhaWxlZCB0byBh bGxvY2F0ZSBQSUQgYXJyYXkiKTsKIAotCXByaW50ZigiICBTdGFydGluZyAlZCB0YXNrcyBh dCBtYXggYmFuZHdpZHRoLi4uXG4iLCB0YXJnZXRfdGFza3MpOworCXByaW50ZigiICBTdGFy dGluZyAlZCB0YXNrcyBhdCBtYXgtY2FwYWNpdHkgYmFuZHdpZHRoLi4uXG4iLAorCSAgICAg ICBjZmcuZXhwZWN0ZWRfdGFza3MpOwogCi0JZm9yIChpID0gMDsgaSA8IHRhcmdldF90YXNr czsgaSsrKSB7Ci0JCXBpZHNbaV0gPSBkbF9jcmVhdGVfY3B1aG9nKHJ1bnRpbWVfbnMsIGRl YWRsaW5lX25zLCBwZXJpb2RfbnMsIDApOworCWZvciAoaSA9IDA7IGkgPCBjZmcuZXhwZWN0 ZWRfdGFza3M7IGkrKykgeworCQlwaWRzW2ldID0gZGxfY3JlYXRlX2NwdWhvZyhjZmcucnVu dGltZV9ucywgY2ZnLmRlYWRsaW5lX25zLAorCQkJCQkgIGNmZy5wZXJpb2RfbnMsIDApOwog CQlpZiAocGlkc1tpXSA8IDApIHsKIAkJCXByaW50ZigiICBUYXNrICVkIGZhaWxlZCB0byBz dGFydDogJXNcbiIsCiAJCQkgICAgICAgaSArIDEsIHN0cmVycm9yKGVycm5vKSk7CkBAIC0y MTcsMTkgKzM1NywyMCBAQCBzdGF0aWMgZW51bSBkbF90ZXN0X3N0YXR1cyB0ZXN0X2JhbmR3 aWR0aF9vdmVyZmxvd19ydW4odm9pZCAqY3R4KQogCQlzdGFydGVkKys7CiAJfQogCi0JcHJp bnRmKCIgIFN1Y2Nlc3NmdWxseSBzdGFydGVkICVkLyVkIHRhc2tzXG4iLCBzdGFydGVkLCB0 YXJnZXRfdGFza3MpOworCXByaW50ZigiICBTdWNjZXNzZnVsbHkgc3RhcnRlZCAlZC8lZCB0 YXNrc1xuIiwKKwkgICAgICAgc3RhcnRlZCwgY2ZnLmV4cGVjdGVkX3Rhc2tzKTsKIAogCS8q IEJyaWVmIHdhaXQgKi8KIAl1c2xlZXAoNTAwMDAwKTsgIC8qIDUwMG1zICovCiAKIAkvKiBU cnkgdG8gc3RhcnQgb25lIG1vcmUgdGFzayBhdCBtYXgrMSUgYmFuZHdpZHRoIChzaG91bGQg ZmFpbCkgKi8KLQlvdmVyZmxvd19ydW50aW1lX25zID0gKHJ1bnRpbWVfbnMgKiAxMDEpIC8g MTAwOyAgLyogQWRkIDElICovCisJb3ZlcmZsb3dfcnVudGltZV9ucyA9IChjZmcucnVudGlt ZV9ucyAqIDEwMSkgLyAxMDA7CiAKIAlwcmludGYoIiAgQXR0ZW1wdGluZyBvdmVyZmxvdyB0 YXNrIHdpdGggcnVudGltZT0lbHVtcyAoKzElJSkuLi5cbiIsCiAJICAgICAgIGRsX25zX3Rv X21zKG92ZXJmbG93X3J1bnRpbWVfbnMpKTsKIAotCW92ZXJmbG93X3BpZCA9IGRsX2NyZWF0 ZV9jcHVob2cob3ZlcmZsb3dfcnVudGltZV9ucywgZGVhZGxpbmVfbnMsCi0JCQkJCXBlcmlv ZF9ucywgMCk7CisJb3ZlcmZsb3dfcGlkID0gZGxfY3JlYXRlX2NwdWhvZyhvdmVyZmxvd19y dW50aW1lX25zLCBjZmcuZGVhZGxpbmVfbnMsCisJCQkJCWNmZy5wZXJpb2RfbnMsIDApOwog CiAJaWYgKG92ZXJmbG93X3BpZCA8IDApIHsKIAkJLyogRXhwZWN0ZWQ6IGFkbWlzc2lvbiBj b250cm9sIHJlamVjdGVkIGl0ICovCkBAIC0yNjQsNyArNDA1LDcgQEAgc3RhdGljIGVudW0g ZGxfdGVzdF9zdGF0dXMgdGVzdF9iYW5kd2lkdGhfb3ZlcmZsb3dfcnVuKHZvaWQgKmN0eCkK IAogc3RhdGljIHN0cnVjdCBkbF90ZXN0IHRlc3RfYmFuZHdpZHRoX292ZXJmbG93ID0gewog CS5uYW1lID0gImJhbmR3aWR0aF9vdmVyZmxvdyIsCi0JLmRlc2NyaXB0aW9uID0gIlZlcmlm eSBiYW5kd2lkdGggb3ZlcmZsb3cgcmVqZWN0aW9uIChOLTEgKyBvdmVyZmxvdyBmYWlscyki LAorCS5kZXNjcmlwdGlvbiA9ICJWZXJpZnkgYmFuZHdpZHRoIG92ZXJmbG93IHJlamVjdGlv biBiZXlvbmQgZXF1aXZhbGVudCBjYXBhY2l0eSIsCiAJLnJ1biA9IHRlc3RfYmFuZHdpZHRo X292ZXJmbG93X3J1biwKIH07CiBSRUdJU1RFUl9ETF9URVNUKCZ0ZXN0X2JhbmR3aWR0aF9v dmVyZmxvdyk7Ci0tIAoyLjM0LjEKCg== --------------oAafXUsr4LmZ8D04efvi9v4X Content-Type: text/x-patch; charset=UTF-8; name="0002-selftests-sched-Remove-cpuhog-from-test-binaries.patch" Content-Disposition: attachment; filename*0="0002-selftests-sched-Remove-cpuhog-from-test-binaries.patch" Content-Transfer-Encoding: base64 RnJvbSBiYWJjMjA4MWY1OThhNTliYTRiY2ViZTliNDc0MWY0Y2ZhMGY2N2VmIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaHJpc3RpYW4gTG9laGxlIDxjaHJpc3RpYW4ubG9l aGxlQGFybS5jb20+CkRhdGU6IFdlZCwgMTEgTWFyIDIwMjYgMTM6MzI6MzUgKzAwMDAKU3Vi amVjdDogW1BBVENIIDIvMl0gc2VsZnRlc3RzL3NjaGVkOiBSZW1vdmUgY3B1aG9nIGZyb20g dGVzdCBiaW5hcmllcwoKY3B1aG9nIGlzIGEgaGVscGVyIGJpbmFyeSBpbnZva2VkIGJ5IHRo ZSB0ZXN0IHJ1bm5lciwgbm90IGEgc3RhbmRhbG9uZQp0ZXN0LiBMaXN0aW5nIGl0IGluIFRF U1RfR0VOX1BST0dTIGNhdXNlcyB0aGUga3NlbGZ0ZXN0IGZyYW1ld29yayB0bwpleGVjdXRl IGl0IGRpcmVjdGx5IGFzIGEgdGVzdCBjYXNlLiBNb3ZlIGl0IHRvIFRFU1RfR0VOX0ZJTEVT IHNvIGl0CmlzIGJ1aWx0IGJ1dCBub3QgcnVuIGluZGVwZW5kZW50bHkuCgpBbHNvIGRyb3Ag dGhlIGhhbmQtd3JpdHRlbiBjbGVhbiB0YXJnZXQgYW5kIHVzZSBFWFRSQV9DTEVBTiBpbnN0 ZWFkLApkZWZlcnJpbmcgdG8gbGliLm1rLgoKU2lnbmVkLW9mZi1ieTogQ2hyaXN0aWFuIExv ZWhsZSA8Y2hyaXN0aWFuLmxvZWhsZUBhcm0uY29tPgotLS0KIHRvb2xzL3Rlc3Rpbmcvc2Vs ZnRlc3RzL3NjaGVkL2RlYWRsaW5lL01ha2VmaWxlIHwgMTMgKysrKystLS0tLS0tLQogMSBm aWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS90b29scy90ZXN0aW5nL3NlbGZ0ZXN0cy9zY2hlZC9kZWFkbGluZS9NYWtlZmlsZSBi L3Rvb2xzL3Rlc3Rpbmcvc2VsZnRlc3RzL3NjaGVkL2RlYWRsaW5lL01ha2VmaWxlCmluZGV4 IGFhNzc1MmRhMWJkYy4uMjJjZGZmYTRkMDhhIDEwMDY0NAotLS0gYS90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9zY2hlZC9kZWFkbGluZS9NYWtlZmlsZQorKysgYi90b29scy90ZXN0aW5n L3NlbGZ0ZXN0cy9zY2hlZC9kZWFkbGluZS9NYWtlZmlsZQpAQCAtMSw2ICsxLDcgQEAKICMg U1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKIAotVEVTVF9HRU5fUFJPR1MgOj0g cnVubmVyIGNwdWhvZworVEVTVF9HRU5fUFJPR1MgOj0gcnVubmVyCitURVNUX0dFTl9GSUxF UyA6PSBjcHVob2cKIAogIyBvdmVycmlkZSBsaWIubWsncyBkZWZhdWx0IHJ1bGVzCiBPVkVS UklERV9UQVJHRVRTIDo9IDEKQEAgLTksNiArMTAsNyBAQCBpbmNsdWRlIC4uLy4uL2xpYi5t awogQ0ZMQUdTICs9IC1XYWxsIC1PMiAtZyAtcHRocmVhZAogCiBPVVRQVVRfRElSIDo9ICQo T1VUUFVUKQorRVhUUkFfQ0xFQU4gKz0gJChPVVRQVVQpLyoubyAqLm8KIAogIyBVdGlsaXR5 IG9iamVjdCBmaWxlcwogVVRJTF9PQkpTIDo9ICQoT1VUUFVUKS9kbF91dGlsLm8KQEAgLTQ0 LDExICs0Niw2IEBAICQoT1VUUFVUKS9yZXBsZW5pc2hfYnVnLm86IHJlcGxlbmlzaF9idWcu YyBkbF90ZXN0LmggZGxfdXRpbC5oIHwgJChPVVRQVVRfRElSKQogJChPVVRQVVRfRElSKToK IAlta2RpciAtcCAkQAogCi0uUEhPTlk6IGFsbCBjbGVhbgorLlBIT05ZOiBhbGwKIAotYWxs OiAkKFRFU1RfR0VOX1BST0dTKQotCi1jbGVhbjoKLQlybSAtZiAkKE9VVFBVVCkvcnVubmVy ICQoT1VUUFVUKS9jcHVob2cKLQlybSAtZiAkKE9VVFBVVCkvKi5vCi0Jcm0gLWYgKi5vCith bGw6ICQoVEVTVF9HRU5fUFJPR1MpICQoVEVTVF9HRU5fRklMRVMpCi0tIAoyLjM0LjEKCg== --------------oAafXUsr4LmZ8D04efvi9v4X--