From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932943AbdKAB6O (ORCPT ); Tue, 31 Oct 2017 21:58:14 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:54746 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932210AbdKAB6M (ORCPT ); Tue, 31 Oct 2017 21:58:12 -0400 Subject: Re: [PATCH 0/2][v2] Add the ability to do BPF directed error injection To: David Miller , References: <1509464757-2222-1-git-send-email-josef@toxicpanda.com> <20171101.105502.2238912905275925246.davem@davemloft.net> CC: , , , From: Alexei Starovoitov Message-ID: Date: Tue, 31 Oct 2017 18:58:00 -0700 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <20171101.105502.2238912905275925246.davem@davemloft.net> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2620:10d:c090:180::1:7d90] X-ClientProxiedBy: DM5PR21CA0019.namprd21.prod.outlook.com (2603:10b6:3:ac::29) To SN2PR15MB0976.namprd15.prod.outlook.com (2603:10b6:804:20::26) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 291b0162-1fba-49d4-884f-08d520cbfd0d X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(4534020)(4602075)(2017052603199);SRVR:SN2PR15MB0976; X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0976;3:YN/zkbOrrQ1J8NAR9mKJRsz8+Cvkam/5x/TgaDJ4nu+MfxK/s2+DwuKsDxtKCFlBAWmICRKHaG9xtx04PpzWp/2Mq6f9cT70Y5kIqE3dpAoM6tZdzV9T6HGy22Ly5WivTCq9PAes1immalHvheqZf3V++et7EMqkkumsWGFoWQ+tpuybZCKmgEBjrNIgWe74TykCSBuC/aGjg5Np7s66NOcff/MlYCkCiTfzxpFT9UMXTYYjNMadLnO2PXlTGXxV;25:EmXYs6auWBJSVEAHuVEje8XOH42GwoH92n3r1XtUpxgg8kUGbEeK7BTRrZgRJOOJQfTMlGRM+1kd6FoJi4uM7KHif/nXLjFJzoM+ghMRLf04Vf/zJBLxvRANJZRzmpmxpfDTbtY/8o8BYCpwaURx83yQLxaHVBn01ytgbhe2bg/9s/PHM1ShsI4yW4KetqE68A07IImnVIUKVMlRd7Eh6OkjrQETbSwPzoISTzNzISlHzbNe5DJxiio3XcGdhmPAQV1uX9t29jHKIEUCDpubOT7FZxGUne1vrYHxwJDrd6hkVfrcIopfnOQeCzVakwPG5gog5+etU6gqAiWlSgLiDA==;31:PdkBcMu2YhVPX9tMuKIbN/rJAuIjKtY99v9ow9H+1pHoJcevAu1AaoLgPdxGMA2JeH7/HU/KTXHFqvU6W0wdbNtrOstj7YtTtd6sHJS+4M24XOG7zKYL2J5cIVnGsuAS3pl8+XCymdKGqhXN0gVDsOE5jCkvpLcWEhMrW1uHfb0dK9Qc3/JyGMq/l2Ezr9la+hLGxVWTFxb0YTBmAHxAu+rQNw0c0DiqXqgcreWs9Oc= X-MS-TrafficTypeDiagnostic: SN2PR15MB0976: X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0976;20:Wi0WGoz7AeZ9Q8x8eeKtQzHp0jy7Skode8rz9AcGdZqVY+JoteHw/69zrc2Pg41HJsB+e7SYNxDvQW90XEfXmb5g4ZdCxT7QH4rugPeaKwQlRsl8zUWDeyhgJw+h3t/xg2t6v0gEG8fxNrRE3SGRUM1oVaNLnUxqWVWcV7L999CUbcJcOdGiZiE30uFy5xzv8iMpcQSfN/JZHjX18Fv/lL8ATnhf8zSACcU6a/hHgyPzun8876zIwv5F/uz05kmL4kTYyDRAIcKqy1yYsKpKEmUQbH4mLSCWt2+pTHL5N93FqSqU8He0IJdD9GxesIfN1Vu1yXVAGVkECrGiLHtYPC0UyES3tOYo8qS37tvUJZqWuo6xt5Wqt+0GvdOttzuy2BcO1IspuXCQ/MkqJNQeD+kqa0DxbITCrQvxZ7INYHScieHnnGweyZUar41LxF+IvzGWFvXWANMb/OIb3xzShyzXiCOP0i1IljEkNauDos37TmxGfOksDlgni1laqOYZ;4:DI8ZLUbbiV7uklMynFb3QgrloeVdSkZ6lILZjUJEmmBd5YNBUJJau95y+5+J4paRRcgkWY99KKpELm9LvCfFHZNECcznPqLhdAtUU3J1gjflB0Bu+uaOnpZgmifs24Ju78FdCSyql8JL5RYF3+EZhhecAxVeqH/WJhTB21C9v3KAzBIIS0G8tawSkAbw1Lree5Zn/SLMY6rg+LDvaVkERATcyyUTHfpiW1fvPo5SqEKbm37nzO0YGaccx24v0CnRqlYYqsBwskUfdVZjKwO07Q== X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(11241501159)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(3002001)(3231020)(10201501046)(93006095)(93001095)(6041248)(20161123558100)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123564025)(20161123562025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095);SRVR:SN2PR15MB0976;BCL:0;PCL:0;RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095);SRVR:SN2PR15MB0976; X-Forefront-PRVS: 0478C23FE0 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6009001)(346002)(376002)(24454002)(199003)(189002)(305945005)(81166006)(81156014)(50466002)(105586002)(106356001)(2906002)(189998001)(83506002)(1706002)(5660300001)(316002)(6116002)(65826007)(31696002)(8676002)(2950100002)(230700001)(8936002)(31686004)(25786009)(64126003)(58126008)(65806001)(6246003)(4326008)(53546010)(101416001)(23746002)(86362001)(50986999)(6486002)(53936002)(54356999)(65956001)(229853002)(76176999)(97736004)(7736002)(478600001)(68736007)(36756003)(47776003)(67846002)(33646002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:SN2PR15MB0976;H:[IPv6:2620:10d:c081:1131::112d];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;SN2PR15MB0976;23:7Q3wmzEgPKzlLbgUWo6WqoNfLwh28niwrqDJu?= =?Windows-1252?Q?OnC8jIrGFHCw9GqBp7bWk6cUtrlCJVwYzHBW8E523tLs1613PyHXI+zk?= =?Windows-1252?Q?5BkeOMjBg7zk+zj8A7HupqQ5ksHWQmJ89lIp6knlyz1jA4wPmu2NLPru?= =?Windows-1252?Q?6xia04M86ukTPcgghFTI/RNvgZ9a3C1Fiy3ZZvOWceQladR4QnkL3AQ2?= =?Windows-1252?Q?9qQxulKdnWPCS6xTzOTTRZW69RJh7gJ46Bu2gQOx5VwDglPLb2D4OTGK?= =?Windows-1252?Q?OG9ndC5JW/KA8FjQoJGxCM6KfWDatiBt87Oamm5qtm7bJfsi0e1/fSqW?= =?Windows-1252?Q?AwwVh63W81H9uZVCigLnN4PLj8ygQvjNcjrNwV9PLtNblyp+CqSz2Bhx?= =?Windows-1252?Q?bHveFQBKCKKIAXR9idjFAfP7rBJMR9n2kYMmdT6orbZz0kC5wFmz0BEr?= =?Windows-1252?Q?nQ3fgPUBjIpo6RByXkn6RJHhRtjHNw2nn4ke3f9XEN+LLB3CjXhLeHZt?= =?Windows-1252?Q?n4b3tHTEuCgNcbRvzBi6Uw/m2kaec0sNNEyPAWiyPYhhob7uH8hJuVsb?= =?Windows-1252?Q?VdG+RfzNTiBHjgaN+JXZpV+vAmx9Yr/8Ry2u2L4O8RCj5NSs0thF+m7V?= =?Windows-1252?Q?KmkDPuyGA2NoMypLVvX4apTC5ZAwHS/xg7Hxf12Fg/AWujD+pu3ZyZzk?= =?Windows-1252?Q?KQcMIw7IGE6fS8JNXGHilP4e4fq57gwsC1f8PbqLuMRBZ8w+/sY06j7a?= =?Windows-1252?Q?cwGuDKOpBLMdpU0JDRcNfBBc359+RqVByr8V4DPym++S+E2gjkttvBD2?= =?Windows-1252?Q?Swn3u8TMxTvuGV48bOzXsFes/etaM6JVDwdckDDa/991JLp/JUxCeuBe?= =?Windows-1252?Q?Hr0I4mKM/9ephWh8J6vf0MPrhKVCP8gBLyJFp6a+jzAnz5P0w9jDxrAT?= =?Windows-1252?Q?+XS5v8UE/EbMKX+5q913zoeQoXax0PWupQFSefj0qFY9Xidt7jAF4CiQ?= =?Windows-1252?Q?e5GF/0diCHAupCAc8QZlJASn2/la4L/UBCY90sCIApondpyUEWGWDdUA?= =?Windows-1252?Q?EhpbkacoLH9t3SQly/x329AKWbVzV+RODt4nIRXVPvSWE0M1s60TuJMm?= =?Windows-1252?Q?qqQTWzY4+shcmrh6qmef2x4cTs/IAuXmxb0JV3vcpgwt6RG0G+2L+sxv?= =?Windows-1252?Q?skjHk0Eaas3f5TBlhboDaQmICgru+ee+4UbbyJwhdi774O0ECTUbLDoN?= =?Windows-1252?Q?EWkL7uFTDabllEloNX/uYK7MX4WlKl86rNA9g+N5sSrBCd/h2IFpAwmo?= =?Windows-1252?Q?8RR?= X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0976;6:uyMDnUwpyTuV5jEDdEE3n2WldqDT/OZs6eXc5ORnvU4Gpnn0bUoTOUGbDusEwi+wjnfiBn2wl/K3mx30rI5mUTPso8EbOMKTpPI3NN9b9z3UMmUtFwXjWn8BMNy/ruqpjHWXznZq4L1ZT4nV3/D2SI5bwHxbH77TFeN78s6Py7k1k02CVrMRduisljf1Fkr20n2CimyLzdb27CWpJ3o1vSrvYZREpfPrmcFXWxgiEfqZuI6+UuT2SkluOlJc5C8H8b8JlSHkvEAK2+2fxF8QeXvRYN4B3Sd4/Lj261cLr9HVQF2NJry6tWK5FxkKe1vjiB/NytY5g9WEy/QPmAD84lPVcoJgIJsGX+xR1TtqL5Q=;5:fkBpUdthOGeMiUTaMsPdMftlSJFS7qOxtWK357O+o8smLZ4y6gdQ1XrFA9ZyISUTRJqeAFnny3CBeweaYd3l+RE6+3JRDiq35bNoZhau3mYMWG0wkAAg9LjDy4Kf/03XX8bnYU53OJcXUz72d4gKdHT7Nob6La+u9ljOKXsvRTU=;24:GIsKpuk5XjHDAS/croPQ9jdxp8H+Wg/P4Szjbo69r2SIT7GzvIjNloEWQvckn7KSr/YFx6mBlRoDMTrYKB9uSbI1M6ypDGoXHvn/Q3BLwGM=;7:lWbOBQSKm+nzritf8kfSjAsNHJXdLmTyAthlS5nm9ql4YowjxK9haSPGU5eonrr3PWSmtBW0o4/4slCYCj7BNqNJVL/rQVb07NdX5nSxMU0kqpJmzUvgueXd7l+fcGPQsSeVreJZngxjIHdTHs3n8/dHppYpK2eQmjEB2fjCVjE1HNGFatWUmOW8oizdjF1a3X+UmiRxSppVnbm6SyKu0l1gOomPoJjMP+MZ+zKfLybbeftAZbKN3me2J0X2ZX4O SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;SN2PR15MB0976;20:58ksodQGN/rjgUkqmduWMMr6omSBrgG940GjU/GvdIotDJHXcfkJA/Mx1H8z52e+pTpOx47jObm12tAev6m6mKdkkKrFQDf0E8NpF5NG1tukGJhla/y4FrS2Dq0QQzAlr0HV5Rdk0T+BajJgRaCe8Rr8njAt9+T+WTDy938MvKI= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Nov 2017 01:58:02.8765 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 291b0162-1fba-49d4-884f-08d520cbfd0d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8ae927fe-1255-47a7-a2af-5f3a069daaa2 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN2PR15MB0976 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-10-31_14:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/31/17 6:55 PM, David Miller wrote: > From: Josef Bacik > Date: Tue, 31 Oct 2017 11:45:55 -0400 > >> v1->v2: >> - moved things around to make sure that bpf_override_return could really only be >> used for an ftrace kprobe. >> - killed the special return values from trace_call_bpf. >> - renamed pc_modified to bpf_kprobe_state so bpf_override_return could tell if >> it was being called from an ftrace kprobe context. >> - reworked the logic in kprobe_perf_func to take advantage of bpf_kprobe_state. >> - updated the test as per Alexei's review. >> >> A lot of our error paths are not well tested because we have no good way of >> injecting errors generically. Some subystems (block, memory) have ways to >> inject errors, but they are random so it's hard to get reproduceable results. >> >> With BPF we can add determinism to our error injection. We can use kprobes and >> other things to verify we are injecting errors at the exact case we are trying >> to test. This patch gives us the tool to actual do the error injection part. >> It is very simple, we just set the return value of the pt_regs we're given to >> whatever we provide, and then override the PC with a dummy function that simply >> returns. >> >> Right now this only works on x86, but it would be simple enough to expand to >> other architectures. Thanks, > > This appears to moreso target the tracing tree than the networking tree. > > Let me know if that's not the case and I should be the one intergrating > these changes. i don't think it will apply to anything but net-next. If it goes any other tree we will have major conflicts during merge window. btw I haven't reviewed them for the second time.