From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755378AbcAXWiS (ORCPT ); Sun, 24 Jan 2016 17:38:18 -0500 Received: from mail.kernel.org ([198.145.29.136]:41739 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753531AbcAXWiP (ORCPT ); Sun, 24 Jan 2016 17:38:15 -0500 From: Andy Lutomirski To: x86@kernel.org, linux-kernel@vger.kernel.org Cc: Borislav Petkov , Fenghua Yu , Oleg Nesterov , Peter Zijlstra , Sai Praneeth Prakhya , yu-cheng yu , Dave Hansen , Rik van Riel , Linus Torvalds , Andy Lutomirski Subject: [PATCH v2 0/5] x86/fpu: eagerfpu fixes, speedups, and default enablement Date: Sun, 24 Jan 2016 14:38:05 -0800 Message-Id: X-Mailer: git-send-email 2.5.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi all- Here's v2 to celebrate the end of the merge window :) Patches 1, 2, and 3 are fixes. Patch 4 is probably a small speedup. It also only matters in lazy FPU mode, which means that, most likely, no one cares. Apply or don't -- I don't care much. Patch 5 is, in some sense, a radical change. Currently we select eager or lazy mode depending on CPU type. I think that lazy mode sucks and that we should deprecate and remove it. With patches 1-3 applied, I think that eagerfpu works on all systems. Patch 5 will use it on all systems subject to a chicken flag -- eagerfpu=off will still disable it. I propose that we apply patch 5, let it soak in -next until the 4.6 merge window opens, possibly let it actually land in 4.6, and then remove lazy mode entirely for 4.7. This will open up enormous cleanup possibilities, and it will make the fpu code vastly more comprehensible. Changes from v1: - Get rid of cpu_has_fpu (Boris) Andy Lutomirski (5): x86/fpu: Fix math emulation in eager fpu mode x86/fpu: Fix FNSAVE usage in eagerfpu mode x86/fpu: Fold fpu_copy into fpu__copy x86/fpu: Speed up lazy FPU restores slightly x86/fpu: Default eagerfpu=on on all CPUs arch/x86/include/asm/fpu/internal.h | 3 ++- arch/x86/kernel/fpu/core.c | 52 +++++++++++++++++++------------------ arch/x86/kernel/fpu/init.c | 13 ++++------ arch/x86/kernel/traps.c | 3 +-- 4 files changed, 35 insertions(+), 36 deletions(-) -- 2.5.0