Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753526AbbG1TuS (ORCPT ); Tue, 28 Jul 2015 15:50:18 -0400 Received: from mail-db3on0080.outbound.protection.outlook.com ([157.55.234.80]:45221 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1753485AbbG1TuM (ORCPT ); Tue, 28 Jul 2015 15:50:12 -0400 Authentication-Results: spf=fail (sender IP is 12.216.194.146) smtp.mailfrom=ezchip.com; ezchip.com; dkim=none (message not signed) header.d=none; From: Chris Metcalf To: Gilad Ben Yossef , Steven Rostedt , Ingo Molnar , Peter Zijlstra , Andrew Morton , "Rik van Riel" , Tejun Heo , Frederic Weisbecker , Thomas Gleixner , "Paul E. McKenney" , Christoph Lameter , Viresh Kumar , Catalin Marinas , Will Deacon , , , CC: Chris Metcalf Subject: [PATCH v5 4/6] cpu_isolated: provide strict mode configurable signal Date: Tue, 28 Jul 2015 15:49:38 -0400 Message-ID: <1438112980-9981-5-git-send-email-cmetcalf@ezchip.com> X-Mailer: git-send-email 2.1.2 In-Reply-To: <1438112980-9981-1-git-send-email-cmetcalf@ezchip.com> References: <1438112980-9981-1-git-send-email-cmetcalf@ezchip.com> X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;DB3FFO11FD032;1:XKkGApVLYwcT0BUlcFK/nHY6OKxtvP6zWg6h95OELmmsY/JBvMvovWrXBjFM51hv63NrnbzG4+uELRcjoG/sDV1Xt6cgne5BiIhv6XJHUvXRzjaFQpSzBEivE2Lx2fbyYWJc2AsySdyQn1MI/Yve8r+mkQ32rnp3CiUX01NmtwJoGCsX8wAf0RAVP4pd6HNSke1Xlsijhu13Q+9VkWoxg9upSgJpL2FXW/GCFIZpO+h1xrI18UjUT9PcOqF3LcQvmvlhEwQLm7ZuhxvE2A2bK2eWhjgzMTMPapFX3QuzBs4= X-Forefront-Antispam-Report: CIP:12.216.194.146;CTRY:US;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(339900001)(199003)(189002)(2201001)(47776003)(106466001)(86362001)(50466002)(42186005)(105606002)(48376002)(87936001)(46102003)(19580405001)(6806004)(85426001)(19580395003)(104016003)(229853001)(62966003)(92566002)(50986999)(2950100001)(50226001)(33646002)(107886002)(5001920100001)(36756003)(76176999)(5001770100001)(189998001)(5001960100002)(77156002)(921003)(4001430100001)(1121003);DIR:OUT;SFP:1101;SCL:1;SRVR:DB3PR02MB0426;H:ld-1.internal.tilera.com;FPR:;SPF:Fail;MLV:sfv;A:1;MX:1;LANG:en; MIME-Version: 1.0 Content-Type: text/plain X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB0426;2:jaF2pwDjqK5EYiSy50HkIHLAW1di2s/RY+e5ZtVIjNx+OVn1niGNS6VQPBV3WgqyPBb0QHiNNmvQHuGuFT9OJMsyn/QiNiEv8mDynXtVLXicoCOJLhd0bFxLAQug7WcNHXPw8ySSe8EtQoXZ/dJ/UKAvigb4cYJFfQ8hfg+rAnk=;3:5/QIDMZ0WESvUG9y6+GYK2h30oTEk15b8w39KeZAL4k3ExOvf4uXB0jL5oEZ6D4T4HrzUtdiK4XpOAiFRqq0mRRbNJn6rIG9II3Y9xU71vd1f5KtBUrxpvVTMg3M5CpQG1xsXVrRvX6V6crHzM5utmXfVttaGKEr7fjzOQS2ELng+qoRpE8FwKOv3hwpgcdiZJqIFzcNtPlNrNtqAKQyqiQjXaHPnSBGng3Hz5I1q1bfhvRzF379KX4skbR7mw1X;25:2raPrWJcXQsXqwaiB78aTf+bShqjvQxZxqar3XCjcS3sEoYUHkk1n7GTfvErUjWW62ifeb6uFffqaQQ6z2FW8Mfy62vsCnBXpAWdgYSZEfMpW7K7G6LjbopHdxyo0vBEwx364aIoS6F3zd+igfWHsWHA8JvicialEyN+r9msPoRCI8Sylmi7JfojBKYAp1uk6lIFGdKxD/GzRDixD/TLPCYa7Y9OwQmnlbuKYBWACoi6n47CgHEV0uWr0dDNsgBYqxAFKeemy17jbhQDRmvpYg==;20:JUqloD/sZRlaO5c0kIXvcEr0Ptam36rlnMNd+WsBjEYa7c30AF1rFpJhKp5YSMDf2onIR32stH2rVfalBAh/eu31p9TQy8hkMIqTbnYld6nkPec0QilA56+9zeZX2zaCd00W/5XKYU3qMKDGKVbQDU94anoU1zumxoYanlsUob4= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB3PR02MB0426;UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB3PR02MB122; DB3PR02MB0426: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(5005006)(3002001);SRVR:DB3PR02MB0426;BCL:0;PCL:0;RULEID:;SRVR:DB3PR02MB0426; X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB0426;4:Ce9tRocntXIazk5Vd8J+uYnjDoXHgbcI8TPNBOIWXPgyeEow01Toy0bEMSqxF40pR3EhfEsX9LqqATCIdXQR99DTnN82phrA82B4KbhnmfiSv9bckiPTZHvS30seZNtPLMjqSG5CpnkWbJRfKFd5K8gu2pqltbReCwFAgNSNHO5Bpci33o/zhgw4+Mc8tM1RlkQROkGXQHn3AGBulyokSoi+JTGeF5m2Mg0/KSSgPbbbOBQpCFdtf/1SAlrlv+L+5RfE2cWwvs9bX4Lu1Hn5I76ArEU3lLdXC6MVZpS2ry0= X-Forefront-PRVS: 06515DA04B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;DB3PR02MB0426;23:JnCybVcKDrWXV2MWarOeKIGbdzXr/mJX2ItiGKj/0?= =?us-ascii?Q?apluKo6I5eGqhzKkiax7KeOnNYvd4w8vqyh4rmA7zQmOO8fkWMTlITJcPsa2?= =?us-ascii?Q?4OjVkGiXIa8trQ7eYzudKjwT6wVa4MHf6jq5hwUayAYInd/0XR0KBL9XSzUa?= =?us-ascii?Q?97XL15tYf/yUVX/TEijWGzFXcft0wkGDZwPqiotpmcI5mQFrb0P52W/Jn4qY?= =?us-ascii?Q?0nJvq+xkwnsHFksl6v+wtQnyx0d+L1030j7KhP8mo70vDAx0iesh9O2RAZw5?= =?us-ascii?Q?RAieXxEi5rKkq7rm1Mx70Q7OwZxVKRV7uklWxTSUkXJD47xxeMO4z3o+jUB2?= =?us-ascii?Q?MhPF18S2Ql9Tu+6lXvS+1ls3baWu7VoM+DDawlb3lg4EXhWsrYqNJvipMCZi?= =?us-ascii?Q?M3KGspDOqpW6T3aHbh4QNYZefJCIQC18xpIWG1/O4W3vfX41wfvietiFXljw?= =?us-ascii?Q?NkrFgfJNE36jZooMzol5vy6ejvdoPfkD07514cdj1YMjJUBYPHjoa31poaum?= =?us-ascii?Q?JeBQTCbzemPkKQHaaWVw2rBJ1ue+PZdmllDejNbgJi4MYFgc5nT+u9kzY6f8?= =?us-ascii?Q?6wQIt3fIkkUWQgKXFX0P8qtk09Kbw8l5V8WDiLDBhCalLjlINQ+1JmGWT00g?= =?us-ascii?Q?ExE1BPeFOKoYExtdV8rPsdyYwHgNXyvS/VNyfEi05QdmrPD8ikbZQ7EJBDMJ?= =?us-ascii?Q?mg2BAlax5Ve625P+07vGyCQbseWL/QtDVZwoIGGnC+7CGZrvehdO0/Sw4QnH?= =?us-ascii?Q?l82oib2x//o6m0+GjHfAyVpLpHwA+2Skvre5T0rTc2LiXDTU3QOBVHpKfZJu?= =?us-ascii?Q?bLyr0Nd14kzx3h0+wF1iRuoIlxKLi5ys+jixesZESw4dnOk+1q+hjaBulidg?= =?us-ascii?Q?zp23BZewzXOphlax6tqSEKTbJSaQAaZQNMGMV1lsqvd8m0msi0chTTgRtgFc?= =?us-ascii?Q?WDmPHd7dk10vBRyWuZnJrY0sY1nOLIb9i9jlasVX8ExwEQ2875k7kt1r8Aba?= =?us-ascii?Q?mrUEuC5XFLwUkYfUjyX21jQ?= X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB0426;5:0uklibVtNfoHaBm95vinuZijNpFUs2ILP2/TMPxoMG3C0G//paf1sGWSnginRD3BJvsowwMrKPY/dmhRSLvH4DoL7jxb5pENxRYT88qPYDu3SbWqdijYB5MXS1jD3eX50OZhYBwvGHKulVdYz4kZnA==;24:S/GF/lWDtgIAVD/joHGJYszXcDhbNnEoSAkx+i7LtAqkUW83Y1+jPfoSfsBpxTLQSjJzil5uItPxSMs87VTB7dV/jaTmZlNT7DJZFaTJHFs=;20:ydjbV9DYy53/VZWq+IKwqiZfv44gj2bh10fTYImBKUYWf71lDsIXxQO14pkBFlN7NaH1Q69O3nxfbyM1qTABEA== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Jul 2015 19:50:08.4681 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3;Ip=[12.216.194.146];Helo=[ld-1.internal.tilera.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR02MB0426 X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB122;2:Mwy2id896/POwlrSB93r3w1b6bmUaQGOOP+0Zgm6IQselzhQWs7itASsaOA6uBYcEw7RV689oSYekuFonLIlvjWEnci1vFSkesw0ACl0fyDObVPcg+QOnDFqetFaTCtzI8nu/8SQwE8DaEre9/iI5yGpHfTnYhQRUxkN4e11l8w=;3:5CKfYP8fhDTY0RNirMbmXktf3br+vFluy9GIRd/e8ns8QI/I1BMV4T/wJKoFfHTeOfL9WvFfbLf7dzkfKdc2LdLXpY6EDkB0C5dnChPlT0s+7qtB510hFPC7hXP/cKIq0ZxsLEwlINXyrnCiOwvCR7Ph2aMXu5dKZerysqchfaUK2+DMKMiQAWSft6b6y/q3rv17nlRteNYEcXcjsv0YWA6rVwqOjsFx66vPHqpgUjWTIwSEM4U57n4H5vxX4Iuy;25:lfM+tGQAttMeBgNbEM0tHod1BFOWa/rOtdzhoTqBJ96EAteEmt5QiyFnmy64vJ/JuAV2zj8UHUR1EfsgUNwDcyUu/QChE2q8yeUGTQNZyjVZUy0dMFO0NYzZcxNfIpfk3Ipb97mYz1awGE7u559zzom/4THLKga1hi6hAAZ4hjGp1nphP1BUdUYgw5oarE7wjNg7g115AAS/QKyL1CkXDXSQmE60AnCk3zyt8KXqDmFTAREtcwlB97mrdDAA23C5UEnlqmwE03Bm3lU1Xl+5iw==;20:7sVA5InI556J8s2PoBzCMTFh5Btpr6CMkp1r6oRsKqWbLr0FHvJGrnmidiG/KSvtQYpC79X/iOI9Daj95cRFCQ== DB3PR02MB122: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB122;23:XXvWyQFVhf4qVuLHjcCD93H+C2NzyH9C2REvJR5Hs7ofIpnViVY1Lol8FwaJmFdeZ9YruBVo825pqhOkhSCEJy5jeWwmTMsFDrVHOw/LoxpDPNLGCf5B3HPTwxI+DintGyc239fyimR5iE6AFkuCwZxvWQSpOm9b/sIbG2rJRnTMycqmUCoO8FxtfxgPz70JQ6uAm7IV90c6B/PyDFbdKWgJCxk1Z3LpdPNw0Za6iOCt3WkS9DywJ7pptYOf/rT8 X-OriginatorOrg: ezchip.com Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2404 Lines: 76 Allow userspace to override the default SIGKILL delivered when a cpu_isolated process in STRICT mode does a syscall or otherwise synchronously enters the kernel. In addition to being able to set the signal, we now also pass whether or not the interruption was from a syscall in the si_code field of the siginfo. Signed-off-by: Chris Metcalf --- include/uapi/linux/prctl.h | 2 ++ kernel/time/cpu_isolated.c | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/include/uapi/linux/prctl.h b/include/uapi/linux/prctl.h index 0c11238a84fb..ab45bd3d5799 100644 --- a/include/uapi/linux/prctl.h +++ b/include/uapi/linux/prctl.h @@ -195,5 +195,7 @@ struct prctl_mm_map { #define PR_GET_CPU_ISOLATED 48 # define PR_CPU_ISOLATED_ENABLE (1 << 0) # define PR_CPU_ISOLATED_STRICT (1 << 1) +# define PR_CPU_ISOLATED_SET_SIG(sig) (((sig) & 0x7f) << 8) +# define PR_CPU_ISOLATED_GET_SIG(bits) (((bits) >> 8) & 0x7f) #endif /* _LINUX_PRCTL_H */ diff --git a/kernel/time/cpu_isolated.c b/kernel/time/cpu_isolated.c index d30bf3852897..9f8fcbd97770 100644 --- a/kernel/time/cpu_isolated.c +++ b/kernel/time/cpu_isolated.c @@ -71,11 +71,18 @@ void cpu_isolated_enter(void) } } -static void kill_cpu_isolated_strict_task(void) -{ +static void kill_cpu_isolated_strict_task(int is_syscall) + { + siginfo_t info = {}; + int sig; + dump_stack(); current->cpu_isolated_flags &= ~PR_CPU_ISOLATED_ENABLE; - send_sig(SIGKILL, current, 1); + + sig = PR_CPU_ISOLATED_GET_SIG(current->cpu_isolated_flags) ?: SIGKILL; + info.si_signo = sig; + info.si_code = is_syscall; + send_sig_info(sig, &info, current); } /* @@ -94,7 +101,7 @@ void cpu_isolated_syscall(int syscall) pr_warn("%s/%d: cpu_isolated strict mode violated by syscall %d\n", current->comm, current->pid, syscall); - kill_cpu_isolated_strict_task(); + kill_cpu_isolated_strict_task(1); } /* @@ -105,5 +112,5 @@ void cpu_isolated_exception(void) { pr_warn("%s/%d: cpu_isolated strict mode violated by exception\n", current->comm, current->pid); - kill_cpu_isolated_strict_task(); + kill_cpu_isolated_strict_task(0); } -- 2.1.2 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/