From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751837AbcGOT1q (ORCPT ); Fri, 15 Jul 2016 15:27:46 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:14168 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751350AbcGOT1m (ORCPT ); Fri, 15 Jul 2016 15:27:42 -0400 Date: Fri, 15 Jul 2016 15:27:29 -0400 From: Dave Jones To: Linux Kernel CC: Paolo Bonzini , Radim =?utf-8?B?S3LEjW3DocWZ?= Subject: RFC: silencing kvm unimplemented msr spew. Message-ID: <20160715192729.GA4712@fb.com> Mail-Followup-To: Dave Jones , Linux Kernel , Paolo Bonzini , Radim =?utf-8?B?S3LEjW3DocWZ?= MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Disposition: inline User-Agent: Mutt/1.6.0 (2016-04-01) X-Originating-IP: [2620:10d:c091:200::9:d7cd] X-ClientProxiedBy: CY1PR14CA0080.namprd14.prod.outlook.com (10.164.65.176) To BY1PR15MB0056.namprd15.prod.outlook.com (10.161.97.15) X-MS-Office365-Filtering-Correlation-Id: 8763f446-c4cc-47e0-9831-08d3ace614cd X-Microsoft-Exchange-Diagnostics: 1;BY1PR15MB0056;2:Kjb6HIeopL59Pw8u5mXgbNJQItlCzaQSNaWzAmpXus7vvIwcTXRe/VZh+fi+O8ODHCUHsotuzLS3cNw/UkLAqYnt8UCVCit7ffgRidBysuFklbpRobZv10ItP5rSJR9pS5f4RjBPSilHkCg2BgQos+eFdLELfepoghJlnKPTRw8abeE9H8w4xqbZvocv9sJg;3:evUU6kYSfIFTlOH2Mb4oBI2YiSpiNVjmrjdiT+ucHVDA6ym4NA0kbLjMFbDDzKIOEeoFPqgSNCerUvOG8xZR0w7LFA5XcSK194DMvAV3pdN8kYxumtl1EchO9BYj+NII X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BY1PR15MB0056; X-Microsoft-Exchange-Diagnostics: 1;BY1PR15MB0056;25:JxOi8pMndPrpKgnPKYGQZD3sUNLOGrPRPMZV41W3q9Vu9uZ3tjqRM8AQfVsgYrfzChABuDzgfj2jdwS9loT5AGEcOupYHQ+ayqAaabSJzF56eBzEiq+c+N4BUA2GxasB3G+IK7E2qup+mmEywUpQFMGs3a+dFDJr3Dt+bAwMqvwupEJfwz/JoGacQFA/Ro12k9IQlQbJknJyYBVwl2k3oO8IHAdm1SYsaspQWsqUmbt4+xGEiy/2CGYiBEs+Y+DeiD7CqZwCYX0fr1lx4BAjZXufz1QR3LzptobhCh91x23rla3fRW9CGvn6Adny9oBtAhVShx4x7Nvl5o4hZlFzZsG9aSRnlt851o2mnm5QHwH05+f4ba9tVhEiRYPShfEQ4xLyZXCYwBuRKjLgAe0mvfwZ3ExmOfasmOswutDBOSwc4o27amGUoMYjgBqjg2ScAcU/3LuXwC6Kg84V6r9fCHO56Srt2IAyDa4OYUl8MbakWJy/CM5oUYrxEhVhp+Eic9PyQQt32EL5FpvkAbC00tsxihUHw6CH1mJaJe9AleqzOo/Ex3WWX5in3eU1UF1fQtD1bwRADj34J5ZuJ7XGopAVfKJ1MMGUo5DVBT8aYw9LisBWdbP+yX3cuomIhh6wKEK41zJUh0H0MacpizCB14BXBY0w/4MQh/kRcgRgBtYQV+Nz7aq32FpDQv1WLtnW7eUTfi8mRTHWq6PG5Bzjjg==;31:w4HFwtW2V/MwNysKhGgdE8ISlooqkUL4pJtTdGZ8A30Awx9X8VQhuvf+jdP8aN3eeoPVXXFlJIfrthr5U1Q2oGWoPAmQtlW3uRnVd1rEMizsjVHXmtts2cq1jyqJW4owsNuHdq/8fS8OEvkjt2kRTf2tD9BaUYqKV7hmWg2Ye2jpcceQOicYUDta8YvpWHFUAnWo7A0WgljN+mHKbqSgyQ== X-Microsoft-Exchange-Diagnostics: 1;BY1PR15MB0056;20:+bGoiffKfmE85Iczhg2R/g7Er35AFc6l2uUxWJP3DhK543kdEW9jubDlmIRd1nDsX8Km24mP1/8DsOgp8dV7tmSw+CVmPa0kKhKLC1BxlCjYI4Ae5tXUYvdGV3v+lHoj5iA847e8lbTJcEOBYKurckpCrAS5xMklHK4bnFjKZpk=;4:YRYg/l+tGgmUivqZEYMrqJGVkAyhqO80101U0wOftfaDBPa3LFxogUjzddH6ysX1/Wq4A44hk6BOf+TB3S58oYHKLR0BsmA4S6cmf9/lnPdWZuftlHwaQ4F6h772xe7CUvB+IqnGBCaxOz1+fbFLow9PbY0UgVFDsivH9PnA5NTaJnX4JIzPR557KBzjCg+VS86AtHqKfnDMzhNNhHE2WCa0gB8K+tFr7PvU8OPwhbFBC+c851G4vDKzNQPGnoOo5OnQLMDfcFu2pp7Oc7/B8rZkbK+wvUpQiatMAJQzs6YguIyTNI7l7yyoEG0NDAEQ3EYheFVRKvX0M/1DfEJ6/1T/BJZojm63mHSuaAttklWF7+uYTh3129mxi6sGjmL3 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:BY1PR15MB0056;BCL:0;PCL:0;RULEID:;SRVR:BY1PR15MB0056; X-Forefront-PRVS: 00046D390F X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(7916002)(189002)(199003)(97756001)(50466002)(86362001)(46406003)(42186005)(21086003)(77096005)(1076002)(6116002)(586003)(23726003)(33656002)(4326007)(2906002)(106356001)(101416001)(47776003)(54356999)(50986999)(8676002)(68736007)(4001350100001)(110136002)(229853001)(92566002)(97736004)(7736002)(36756003)(305945005)(83506001)(189998001)(105586002)(81166006)(81156014)(7846002)(18370500001)(51496004)(44646005)(3826002)(42262002);DIR:OUT;SFP:1102;SCL:1;SRVR:BY1PR15MB0056;H:fb.com;FPR:;SPF:None;PTR:InfoNoRecords;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;BY1PR15MB0056;23:01hgGh2VwgSf0qtr9P03PuUzIr12Wbm2Kji10j9yL?= =?us-ascii?Q?WQcoGgSba1J+X0xj1KX0Ao3R0hCiTaj9F2D/M3lK3IObwWO2vaZgNcEOhF7w?= =?us-ascii?Q?JRbkwAC/qRJVt24bFd5KooZpzyhSbWJ7Q9d9trybD7JN9tNPxaAfGTuH7hPP?= =?us-ascii?Q?omzLYpIsPzUT8z1rdjbEyPCapRD0gT20/ufl43tApD1fHbnYLTpgynWq+q2i?= =?us-ascii?Q?CWQPerfnWRCcmHrDsjjAbjJ/lUlJ78u9SCCsbtAmquXdEICKK7Q+/kPTXc07?= =?us-ascii?Q?GVHmTIkkeXWOne8YoSawjsVQV0CDQ1Ph/je5P+zhb0WVF5u03INVCFvMmTN2?= =?us-ascii?Q?UuxOm2TIUHxOOlEKCKnx0dtG4sYcqvcWpfOlzYQ1gcKGeTDi67uY6a/EmKfH?= =?us-ascii?Q?5PJ0JLgKeXoU5NdczgxdgnMSEka2ls38qOhdxGlhKqSdm6qG6Swn0nh3AEmX?= =?us-ascii?Q?hM6ZkcEe174N1g8bxrgbaDURHY79TZ0OYV24bG04wHIHhZag54V2lZlCa6ao?= =?us-ascii?Q?j+4Dz7HW31wT+5J0AhQGW3Cq1Yk6QIAstvk/zo/G5UFpdIh8/hyfU0uvKyAh?= =?us-ascii?Q?8sgKr3mRzPISVrK/Um5Z5cqE8SGUP/6hbOKUR6doz1q1N+ml1zHxrGkymrDe?= =?us-ascii?Q?Mtp2zYlfbpKJa1niRfJuUidEcO5Ebie9Zl3Fj2KYo1Q1CWdsxjJXAnz6tM8y?= =?us-ascii?Q?YAnai06akEaKIENVsH/PTZxFcqAFu79pb4OHBObsBJhWq5MDXcW5ldt6cRCM?= =?us-ascii?Q?M//f2ih1eir53K3qttNuZvDHpSgi6MDn9QKTjjY/29iDm5jCIuW5u1JLjmd5?= =?us-ascii?Q?nVk11XXcQJhcVDKPE5mtrMWyqXvOFvCmwebOPQnyE0pWDD7NB+qYdLFoO7VP?= =?us-ascii?Q?LK24plxE/92S9G+5JL8lAEQUNiYlB8p5EY9823PXwNP2ihZt90CUbo8Ib/0R?= =?us-ascii?Q?ed+kFaDHgDwmXeis+iHG2NRxMwzixiRImuVCYW2DWB8VjgbTHkFx25mBiIIZ?= =?us-ascii?Q?G1Zw4b5pjnqB4YBnp9lewJRIPy9aHZkcZboR5tiYZeJMOCoZ/MDAmX9a8Oys?= =?us-ascii?Q?YUPIPpqjc8itb1DLzCQxCVM438NT5ovDf2Md2/+H4VyQDZKD3yWAmO4N8h5s?= =?us-ascii?Q?YZk009lLO8=3D?= X-Microsoft-Exchange-Diagnostics: 1;BY1PR15MB0056;6:Xbq+dyNrNp3Q4Z2kmtU96AERjGlUNp4br7OAANGXmCUeeAR1T4IijOMMxzd7NqhxdlV+Nm6QsnlChY4E3kpkGPd/mT1PsPFyyPqYIovI7Crmxxm0zuhyoKt4sBVGvAdj0Zlh63PbB7hN4qwVn/ubmwPF6NB7mq8wmiesJrAaGdS0XEFS8OTYlSSfaMHWEAxOObn53UKEe67wZQlZbhzNN/VQmWHrPwzj74zB2lrpvV5AnEMfcIFP2zoWAkMewzusiD9zYA0VbCEqxdFyyxqjLsibVfq4aAboKZ+sc0fsa2I=;5:dyySmeIlP/cuEL43Q/QIn9JW9Jy/91yZhqCGCPTAOk16IYTF0utvDJiuT9n73WVnDgiiMUXu4pIdlIyOs4fM/buZCSGOIlRm8E0E2hDiVZr8fF+dqSvRltvMRJXExDnLOXHDiqKltrmL46HixIK2rw==;24:+7CZu2Y73VOTvMB1Ca9YsHER2+iWpYwP51HHJek73XoH7aK8qXDCBEcMMEDfJN5XYULR9rJjAKTlZwJ3FvNdNE7juGaNdhkP1PLbLEyiius=;7:tzlioKSIhaOBCaetjz2oXYDF7sJm4Z5oNHPtSiGN7qSopYnulDIUGa+B3tbQBDTu27Jv9cUVVYidDmn+guJhxGV3njWx+DKt9C2CTLCX+hvUzVC19heCChERxh6i+weuNhjRU4TKJ0VxCV4j+6Uq3mxy6u4plfr5o3sS7/e3AdzsAZLSrlRrBEzAVtZGPFj5TFJKCdEcdB4Y4XeZ8NZDhhdfoZiz22bskKL6RcPe9jX5thNOBZ/RIpBFsP2kdkX5 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;BY1PR15MB0056;20:Ss/rzzzQhd/O8cbgCJfntw4HJV+F6vQl7tbyahPcBJL1SAG0Ch/H8k+mDckS0DKEelMjV0eEAfDAOV8keeeofovE6RdROEDBqNcNAWZnKxQTfC0QVgIR3dD2/tuvQLn1nJKFfTbr1Iac49ocOnk/Ls5mSvwIqF2EEuV/VjaYz+0= X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Jul 2016 19:27:37.0257 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR15MB0056 X-OriginatorOrg: fb.com X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-07-15_11:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org kvm is pretty noisy when you have guests poking at MSRs that the kernel doesn't implement. The conveniently named 'ignore_msrs' option initially seemed like it was what I was looking for, but it changes the printk instead of eliding it. Untested patch below converts ignore_msrs to a bitmask and adds an option to be completely silent. The idea being if after testing, things still work and you don't care about those messages, you can deploy in production with the silence option. Would something like this be acceptable ? Dave diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 7da5dd2057a9..f9db287118d0 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -96,8 +96,12 @@ static void __kvm_set_rflags(struct kvm_vcpu *vcpu, unsigned long rflags); struct kvm_x86_ops *kvm_x86_ops __read_mostly; EXPORT_SYMBOL_GPL(kvm_x86_ops); -static bool __read_mostly ignore_msrs = 0; -module_param(ignore_msrs, bool, S_IRUGO | S_IWUSR); +#define UNHANDLED_UNIMPL_MSR 0 +#define IGNORE_UNIMPL_MSR 1 +#define SILENT_UNHANDLED_MSR 2 +#define SILENT_IGNORED_MSR 3 +static int __read_mostly ignore_msrs = UNHANDLED_UNIMPL_MSR; +module_param(ignore_msrs, int, S_IRUGO | S_IWUSR); unsigned int min_timer_period_us = 500; module_param(min_timer_period_us, uint, S_IRUGO | S_IWUSR); @@ -2228,15 +2232,22 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info) return xen_hvm_config(vcpu, data); if (kvm_pmu_is_valid_msr(vcpu, msr)) return kvm_pmu_set_msr(vcpu, msr_info); - if (!ignore_msrs) { + + switch (ignore_msrs) { + case UNHANDLED_UNIMPL_MSR: vcpu_unimpl(vcpu, "unhandled wrmsr: 0x%x data %llx\n", - msr, data); + msr, data); + /* fallthrough */ + case SILENT_UNHANDLED_MSR: return 1; - } else { + case IGNORE_UNIMPL_MSR: vcpu_unimpl(vcpu, "ignored wrmsr: 0x%x data %llx\n", - msr, data); + msr, data); + /* fallthrough */ + case SILENT_IGNORED_MSR: break; } + break; } return 0; }