From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1423192AbcBQNsu (ORCPT ); Wed, 17 Feb 2016 08:48:50 -0500 Received: from www.linutronix.de ([62.245.132.108]:43896 "EHLO Galois.linutronix.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1422987AbcBQNsr (ORCPT ); Wed, 17 Feb 2016 08:48:47 -0500 Message-Id: <20160217132903.767990400@linutronix.de> User-Agent: quilt/0.63-1 Date: Wed, 17 Feb 2016 13:47:31 -0000 From: Thomas Gleixner To: LKML Cc: Peter Zijlstra , Ingo Molnar , Borislav Petkov , Stephane Eranian , Harish Chegondi , Kan Liang , Andi Kleen Subject: [patch 00/11] x86/perf/intel_uncore: Cleanup and enhancements X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org While working on the hotplug rewrite I stumbled over the uncore drivers. The intel_uncore driver particular is a complete trainwreck: - Lacks any form of proper error handling. Most errors are simply ignored. - Leaks memory and hardware state in case of failures - Tries to mimick a per cpu machinery for a facility which is strictly per package. That is implemented with convoluted alloc/free dancing during cpu hotplug with magic loops over the online cpus The series cleans up the mess - Implement proper error handling - Switch to a per package storage model - Make MSR and PCI independent as far as it goes - Allow it to build as a module Thanks, tglx --- arch/x86/Kconfig | 14 arch/x86/include/asm/topology.h | 3 arch/x86/kernel/cpu/Makefile | 3 arch/x86/kernel/cpu/perf_event_intel_uncore.c | 587 +++++++++----------- arch/x86/kernel/cpu/perf_event_intel_uncore.h | 24 arch/x86/kernel/cpu/perf_event_intel_uncore_nhmex.c | 6 arch/x86/kernel/cpu/perf_event_intel_uncore_snb.c | 13 arch/x86/kernel/cpu/perf_event_intel_uncore_snbep.c | 57 + lib/cpumask.c | 1 9 files changed, 400 insertions(+), 308 deletions(-)